Skip to main content
GET
/
workspaces
List workspaces
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.phaseo.ai/v1/workspaces', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
import requests

url = "https://api.phaseo.ai/v1/workspaces"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
curl --request GET \
  --url https://api.phaseo.ai/v1/workspaces \
  --header 'Authorization: Bearer <token>'
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.phaseo.ai/v1/workspaces"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.phaseo.ai/v1/workspaces")
  .header("Authorization", "Bearer <token>")
  .asString();
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.phaseo.ai/v1/workspaces",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer <token>"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
require 'uri'
require 'net/http'

url = URI("https://api.phaseo.ai/v1/workspaces")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
{
  "data": [
    {
      "id": "33333333-3333-4333-8333-333333333333",
      "name": "Production",
      "slug": "production",
      "created_by": "user_abc123",
      "created_at": "2026-04-28T12:00:00Z",
      "updated_at": "2026-04-28T12:15:00Z"
    }
  ],
  "total_count": 2
}
{
  "error": "error_type",
  "ok": false,
  "message": "Human-readable error message",
  "description": "Additional error details.",
  "generation_id": "G-abc123",
  "status_code": 502,
  "error_type": "system",
  "error_origin": "upstream",
  "reason": "all_candidates_failed",
  "attempt_count": 2,
  "failed_providers": [
    "google-ai-studio",
    "openai"
  ],
  "failed_statuses": [
    403,
    429
  ],
  "upstream_error": {
    "code": "PERMISSION_DENIED",
    "message": "The caller does not have permission.",
    "description": "<string>",
    "param": "<string>"
  },
  "failure_sample": [
    {
      "provider": "<string>",
      "type": "<string>",
      "status": 123,
      "upstream_error_code": "<string>",
      "upstream_error_message": "<string>",
      "upstream_error_description": "<string>",
      "upstream_error_param": "<string>",
      "upstream_payload_preview": "<string>",
      "retryable": true
    }
  ],
  "provider_failure_diagnostics": {
    "hint": "<string>",
    "provider": "<string>"
  },
  "routing_diagnostics": {
    "filterStages": [
      {
        "stage": "<string>",
        "beforeCount": 123,
        "afterCount": 123,
        "droppedProviders": [
          {
            "providerId": "<string>",
            "reason": "<string>"
          }
        ]
      }
    ]
  },
  "provider_candidate_diagnostics": {
    "totalProviders": 123,
    "supportsEndpointCount": 123,
    "candidateCount": 123,
    "droppedUnsupportedEndpoint": [
      "<string>"
    ],
    "droppedMissingAdapter": [
      {
        "providerId": "<string>",
        "endpoint": "<string>"
      }
    ]
  },
  "provider_enablement": {
    "capability": "<string>",
    "providersBefore": [
      "<string>"
    ],
    "providersAfter": [
      "<string>"
    ],
    "dropped": [
      {
        "providerId": "<string>",
        "reason": "<string>"
      }
    ]
  },
  "missing_pricing_providers": [
    "<string>"
  ],
  "provider_payment_required_provider": "openai",
  "provider_payment_required_support_notice": "Our upstream provider billing appears to be unavailable. If this persists, contact support.",
  "details": [
    {}
  ]
}
{
  "error": "error_type",
  "ok": false,
  "message": "Human-readable error message",
  "description": "Additional error details.",
  "generation_id": "G-abc123",
  "status_code": 502,
  "error_type": "system",
  "error_origin": "upstream",
  "reason": "all_candidates_failed",
  "attempt_count": 2,
  "failed_providers": [
    "google-ai-studio",
    "openai"
  ],
  "failed_statuses": [
    403,
    429
  ],
  "upstream_error": {
    "code": "PERMISSION_DENIED",
    "message": "The caller does not have permission.",
    "description": "<string>",
    "param": "<string>"
  },
  "failure_sample": [
    {
      "provider": "<string>",
      "type": "<string>",
      "status": 123,
      "upstream_error_code": "<string>",
      "upstream_error_message": "<string>",
      "upstream_error_description": "<string>",
      "upstream_error_param": "<string>",
      "upstream_payload_preview": "<string>",
      "retryable": true
    }
  ],
  "provider_failure_diagnostics": {
    "hint": "<string>",
    "provider": "<string>"
  },
  "routing_diagnostics": {
    "filterStages": [
      {
        "stage": "<string>",
        "beforeCount": 123,
        "afterCount": 123,
        "droppedProviders": [
          {
            "providerId": "<string>",
            "reason": "<string>"
          }
        ]
      }
    ]
  },
  "provider_candidate_diagnostics": {
    "totalProviders": 123,
    "supportsEndpointCount": 123,
    "candidateCount": 123,
    "droppedUnsupportedEndpoint": [
      "<string>"
    ],
    "droppedMissingAdapter": [
      {
        "providerId": "<string>",
        "endpoint": "<string>"
      }
    ]
  },
  "provider_enablement": {
    "capability": "<string>",
    "providersBefore": [
      "<string>"
    ],
    "providersAfter": [
      "<string>"
    ],
    "dropped": [
      {
        "providerId": "<string>",
        "reason": "<string>"
      }
    ]
  },
  "missing_pricing_providers": [
    "<string>"
  ],
  "provider_payment_required_provider": "openai",
  "provider_payment_required_support_notice": "Our upstream provider billing appears to be unavailable. If this persists, contact support.",
  "details": [
    {}
  ]
}
This endpoint requires a management API key. Standard Gateway API keys are not accepted.
Returns workspaces visible to the authenticated management context with offset and limit pagination.

Authorizations

Authorization
string
header
required

Bearer token authentication

Query Parameters

offset
integer
default:0

Number of workspaces to skip for pagination.

Required range: x >= 0
limit
integer
default:100

Maximum number of workspaces to return.

Required range: 1 <= x <= 250

Response

Workspace list

data
object[]
required
total_count
integer
required
Required range: x >= 0
Example:

2

Last modified on April 29, 2026