GET /api/v1/projects/{id}/workspaces

Returns all workspaces in the project identified by the route id path parameter. Requires a valid Bearer token and project role.

Path parameters

  • id string Required

    Project ID

Responses

  • Unsupported or malformed API version, an operation unavailable in the selected published contract, or an unacceptable representation (including unsupported media-type parameters or excluded SSE). Existing authentication, authorization, and rate-limit failures take precedence.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Optional validation details defined by the standard error schema; API negotiation errors do not emit this field.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Fields with validation failures.

        Hide fields attributes Show fields attributes object

        A field and its validation failure.

        • description string Required

          Human-readable validation failure.

        • field string Required

          Name or path of the invalid request field.

    • detail string Required

      Human-readable error details.

    • error integer Required

      HTTP status code.

    • errorCode string Required

      Machine-readable error code.

    • parameters array[string]

      Request parameter names associated with the error; omitted when none apply.

    • reason string Required

      HTTP status reason phrase.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Optional validation details defined by the standard error schema; API negotiation errors do not emit this field.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Fields with validation failures.

        Hide fields attributes Show fields attributes object

        A field and its validation failure.

        • description string Required

          Human-readable validation failure.

        • field string Required

          Name or path of the invalid request field.

    • detail string Required

      Human-readable error details.

    • error integer Required

      HTTP status code.

    • errorCode string Required

      Machine-readable error code.

    • parameters array[string]

      Request parameter names associated with the error; omitted when none apply.

    • reason string Required

      HTTP status reason phrase.

  • 200

    OK

    Hide response attributes Show response attributes object
    • total integer
    • workspaces array[object]
      Hide workspaces attributes Show workspaces attributes object
      • aer_http_endpoint string

        AERHTTPEndpoint is the legacy name of the agent sandbox HTTP endpoint.

      • agent_card object
        Hide agent_card attributes Show agent_card attributes object
        • a2a_allowed_callers array[string]

          A2AAllowedCallers restricts which workspace IDs may invoke this agent via A2A. An empty list means any caller is permitted.

        • a2a_enabled boolean

          A2AEnabled controls whether this agent is discoverable for A2A calls.

        • capabilities array[string]
        • input_modes array[string]

          InputModes lists MIME types the agent accepts (e.g. "text/plain", "application/json").

        • output_modes array[string]

          OutputModes lists MIME types the agent can produce.

        • skills array[object]

          Skills advertises discrete tasks the agent can perform.

          Hide skills attributes Show skills attributes object
          • description string
          • example_input string
          • example_output string
          • name string
        • summary string
      • agent_grpc_endpoint string
      • agent_http_endpoint string

        AgentHTTPEndpoint is the agent sandbox HTTP endpoint. Same value as aer_http_endpoint.

      • auto_deploy boolean

        AutoDeploy is the ECP-owned per-app auto-deploy toggle. ECP-owned, fetched on each detail GET (not persisted in the gateway DB). Absent when ECP has no value or is unreachable; the UI treats absent as off.

      • completion_rate number
      • created_date string
      • current_deployment_id string
      • current_payload_ref string
      • description string
      • features object
        Hide features attributes Show features attributes object
        • guardrails boolean
        • memory boolean
        • playground boolean

          Playground reports whether playground UI is provisioned for the workspace (nil/true = provisioned, today's behavior). When false, callers use the invoke API directly.

        • use_custom_parser boolean

          UseCustomParser, when true, makes the Gateway emit only the agent's output-parser custom events on the invoke stream (dropping platform frames). Persisted from agent.yaml features at agentengine init.

      • framework string
      • github_installation_id integer

        GithubInstallationID is the GitHub App installation that owns the repo. ECP-owned, fetched on each detail GET (not persisted in the gateway DB), so it works for workspaces created before this field existed. The UI needs it to list the repo's branches when editing the tracked branch.

      • gitops object
        Hide gitops attributes Show gitops attributes object
        • branch string
        • connection_ref string
        • github_installation_id integer(int64)
        • manifest_path string
        • provider string
        • repo_url string
      • id string
      • instances object

        Instances reports the workspace's instance counts (active, standby, and starting), fetched read-time from the workspace's OE cell. Absent when OE is unreachable or the workspace does not run pooled (e.g. container mode). Deliberately free of any internal implementation naming: this is a customer-facing field.

        Hide instances attributes Show instances attributes object
        • active integer
        • pooled boolean
        • standby integer
        • starting integer
      • invocations integer

        Execution metrics over a rolling 24h window. All five fields are pointers so the wire can distinguish two cases the UI needs to render differently: (a) the OE metrics fetch failed (soft-fail — all five fields absent), or (b) the window contains zero invocations / no completed executions (Invocations is set to 0 and the latency/rate fields are absent). UI distinguishes "—" from "0 invocations" via Invocations != nil.

      • language string
      • last_invoked_at string(date-time)
      • metrics_computed_at string(date-time)
      • metrics_window_start string(date-time)
      • name string
      • org_id string
      • p95_latency_ms number
      • project_id string
      • release_mode string

        ReleaseMode is the ECP-owned webhook release policy ("push" | "tag-release" | "api-only"). Fetched on each detail GET; absent when ECP has no value or is unreachable.

      • status string

        Status is the ECP-owned active/paused signal. The gateway fetches it from ECP on each detail GET — it is not persisted locally. Absent when ECP is unreachable; UI treats absent as not-paused.

        Values are active, paused, error, disconnected, or deleting.

      • subdirectory string
      • updated_date string
      • workspace_id string
      • workspace_name string
    Hide response attributes Show response attributes object
    • total integer
    • workspaces array[object]
      Hide workspaces attributes Show workspaces attributes object
      • aer_http_endpoint string

        AERHTTPEndpoint is the legacy name of the agent sandbox HTTP endpoint.

      • agent_card object
        Hide agent_card attributes Show agent_card attributes object
        • a2a_allowed_callers array[string]

          A2AAllowedCallers restricts which workspace IDs may invoke this agent via A2A. An empty list means any caller is permitted.

        • a2a_enabled boolean

          A2AEnabled controls whether this agent is discoverable for A2A calls.

        • capabilities array[string]
        • input_modes array[string]

          InputModes lists MIME types the agent accepts (e.g. "text/plain", "application/json").

        • output_modes array[string]

          OutputModes lists MIME types the agent can produce.

        • skills array[object]

          Skills advertises discrete tasks the agent can perform.

          Hide skills attributes Show skills attributes object
          • description string
          • example_input string
          • example_output string
          • name string
        • summary string
      • agent_grpc_endpoint string
      • agent_http_endpoint string

        AgentHTTPEndpoint is the agent sandbox HTTP endpoint. Same value as aer_http_endpoint.

      • auto_deploy boolean

        AutoDeploy is the ECP-owned per-app auto-deploy toggle. ECP-owned, fetched on each detail GET (not persisted in the gateway DB). Absent when ECP has no value or is unreachable; the UI treats absent as off.

      • completion_rate number
      • created_date string
      • current_deployment_id string
      • current_payload_ref string
      • description string
      • features object
        Hide features attributes Show features attributes object
        • guardrails boolean
        • memory boolean
        • playground boolean

          Playground reports whether playground UI is provisioned for the workspace (nil/true = provisioned, today's behavior). When false, callers use the invoke API directly.

        • use_custom_parser boolean

          UseCustomParser, when true, makes the Gateway emit only the agent's output-parser custom events on the invoke stream (dropping platform frames). Persisted from agent.yaml features at agentengine init.

      • framework string
      • github_installation_id integer

        GithubInstallationID is the GitHub App installation that owns the repo. ECP-owned, fetched on each detail GET (not persisted in the gateway DB), so it works for workspaces created before this field existed. The UI needs it to list the repo's branches when editing the tracked branch.

      • gitops object
        Hide gitops attributes Show gitops attributes object
        • branch string
        • connection_ref string
        • github_installation_id integer(int64)
        • manifest_path string
        • provider string
        • repo_url string
      • id string
      • instances object

        Instances reports the workspace's instance counts (active, standby, and starting), fetched read-time from the workspace's OE cell. Absent when OE is unreachable or the workspace does not run pooled (e.g. container mode). Deliberately free of any internal implementation naming: this is a customer-facing field.

        Hide instances attributes Show instances attributes object
        • active integer
        • pooled boolean
        • standby integer
        • starting integer
      • invocations integer

        Execution metrics over a rolling 24h window. All five fields are pointers so the wire can distinguish two cases the UI needs to render differently: (a) the OE metrics fetch failed (soft-fail — all five fields absent), or (b) the window contains zero invocations / no completed executions (Invocations is set to 0 and the latency/rate fields are absent). UI distinguishes "—" from "0 invocations" via Invocations != nil.

      • language string
      • last_invoked_at string(date-time)
      • metrics_computed_at string(date-time)
      • metrics_window_start string(date-time)
      • name string
      • org_id string
      • p95_latency_ms number
      • project_id string
      • release_mode string

        ReleaseMode is the ECP-owned webhook release policy ("push" | "tag-release" | "api-only"). Fetched on each detail GET; absent when ECP has no value or is unreachable.

      • status string

        Status is the ECP-owned active/paused signal. The gateway fetches it from ECP on each detail GET — it is not persisted locally. Absent when ECP is unreachable; UI treats absent as not-paused.

        Values are active, paused, error, disconnected, or deleting.

      • subdirectory string
      • updated_date string
      • workspace_id string
      • workspace_name string
  • Bad Request

    Hide response attributes Show response attributes object
    • code string
    • error string
    • success boolean
    Hide response attributes Show response attributes object
    • code string
    • error string
    • success boolean
  • Unauthorized

    Hide response attributes Show response attributes object
    • code string
    • error string
    • success boolean
    Hide response attributes Show response attributes object
    • code string
    • error string
    • success boolean
  • Internal Server Error

    Hide response attributes Show response attributes object
    • code string
    • error string
    • success boolean
    Hide response attributes Show response attributes object
    • code string
    • error string
    • success boolean
GET /api/v1/projects/{id}/workspaces
curl \
 --request GET 'https://agentengine.mongodb.com/api/v1/projects/{id}/workspaces' \
 --header "Authorization: $API_KEY"
Response examples (406)
{
  "detail": "This operation is not available in API version 2026-09-20-preview.",
  "error": 406,
  "errorCode": "OPERATION_NOT_IN_API_VERSION",
  "parameters": [
    "Accept"
  ],
  "reason": "Not Acceptable"
}
{
  "detail": "This operation supports text/event-stream, which the Accept header excludes. Remove unsupported media-type parameters or accept this type with a positive q value.",
  "error": 406,
  "errorCode": "UNACCEPTABLE_MEDIA_TYPE",
  "parameters": [
    "Accept"
  ],
  "reason": "Not Acceptable"
}
{
  "detail": "The requested API version is not supported. Supported versions: 2026-09-20-preview.",
  "error": 406,
  "errorCode": "UNSUPPORTED_API_VERSION",
  "parameters": [
    "Accept"
  ],
  "reason": "Not Acceptable"
}
Response examples (406)
{
  "detail": "This operation is not available in API version 2026-09-20-preview.",
  "error": 406,
  "errorCode": "OPERATION_NOT_IN_API_VERSION",
  "parameters": [
    "Accept"
  ],
  "reason": "Not Acceptable"
}
Response examples (200)
{
  "total": 42,
  "workspaces": [
    {
      "aer_http_endpoint": "string",
      "agent_card": {
        "a2a_allowed_callers": [
          "string"
        ],
        "a2a_enabled": true,
        "capabilities": [
          "string"
        ],
        "input_modes": [
          "string"
        ],
        "output_modes": [
          "string"
        ],
        "skills": [
          {
            "description": "string",
            "example_input": "string",
            "example_output": "string",
            "name": "string"
          }
        ],
        "summary": "string"
      },
      "agent_grpc_endpoint": "string",
      "agent_http_endpoint": "string",
      "auto_deploy": true,
      "completion_rate": 42.0,
      "created_date": "string",
      "current_deployment_id": "string",
      "current_payload_ref": "string",
      "description": "string",
      "features": {
        "guardrails": true,
        "memory": true,
        "playground": true,
        "use_custom_parser": true
      },
      "framework": "string",
      "github_installation_id": 42,
      "gitops": {
        "branch": "string",
        "connection_ref": "string",
        "github_installation_id": 42,
        "manifest_path": "string",
        "provider": "string",
        "repo_url": "string"
      },
      "id": "string",
      "instances": {
        "active": 42,
        "pooled": true,
        "standby": 42,
        "starting": 42
      },
      "invocations": 42,
      "language": "string",
      "last_invoked_at": "2026-05-04T09:42:00Z",
      "metrics_computed_at": "2026-05-04T09:42:00Z",
      "metrics_window_start": "2026-05-04T09:42:00Z",
      "name": "string",
      "org_id": "string",
      "p95_latency_ms": 42.0,
      "project_id": "string",
      "release_mode": "string",
      "status": "active",
      "subdirectory": "string",
      "updated_date": "string",
      "workspace_id": "string",
      "workspace_name": "string"
    }
  ]
}
Response examples (200)
{
  "total": 42,
  "workspaces": [
    {
      "aer_http_endpoint": "string",
      "agent_card": {
        "a2a_allowed_callers": [
          "string"
        ],
        "a2a_enabled": true,
        "capabilities": [
          "string"
        ],
        "input_modes": [
          "string"
        ],
        "output_modes": [
          "string"
        ],
        "skills": [
          {
            "description": "string",
            "example_input": "string",
            "example_output": "string",
            "name": "string"
          }
        ],
        "summary": "string"
      },
      "agent_grpc_endpoint": "string",
      "agent_http_endpoint": "string",
      "auto_deploy": true,
      "completion_rate": 42.0,
      "created_date": "string",
      "current_deployment_id": "string",
      "current_payload_ref": "string",
      "description": "string",
      "features": {
        "guardrails": true,
        "memory": true,
        "playground": true,
        "use_custom_parser": true
      },
      "framework": "string",
      "github_installation_id": 42,
      "gitops": {
        "branch": "string",
        "connection_ref": "string",
        "github_installation_id": 42,
        "manifest_path": "string",
        "provider": "string",
        "repo_url": "string"
      },
      "id": "string",
      "instances": {
        "active": 42,
        "pooled": true,
        "standby": 42,
        "starting": 42
      },
      "invocations": 42,
      "language": "string",
      "last_invoked_at": "2026-05-04T09:42:00Z",
      "metrics_computed_at": "2026-05-04T09:42:00Z",
      "metrics_window_start": "2026-05-04T09:42:00Z",
      "name": "string",
      "org_id": "string",
      "p95_latency_ms": 42.0,
      "project_id": "string",
      "release_mode": "string",
      "status": "active",
      "subdirectory": "string",
      "updated_date": "string",
      "workspace_id": "string",
      "workspace_name": "string"
    }
  ]
}
Response examples (400)
{
  "code": "string",
  "error": "string",
  "success": true
}
Response examples (400)
{
  "code": "string",
  "error": "string",
  "success": true
}
Response examples (401)
{
  "code": "string",
  "error": "string",
  "success": true
}
Response examples (401)
{
  "code": "string",
  "error": "string",
  "success": true
}
Response examples (500)
{
  "code": "string",
  "error": "string",
  "success": true
}
Response examples (500)
{
  "code": "string",
  "error": "string",
  "success": true
}