Skip to main content
GET
/
responses
/
ws
Open Responses websocket session
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.phaseo.app/v1/responses/ws', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
{
  "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": [
    {}
  ]
}

Documentation Index

Fetch the complete documentation index at: https://docs.ai-stats.phaseo.app/llms.txt

Use this file to discover all available pages before exploring further.

Experimental endpoint. Use openai/<model> format only, and prefer POST /v1/responses for production workloads.
Successful connection is HTTP 101 Switching Protocols (not 200). After upgrade, failures are emitted as WebSocket error events. If websocket mode is disabled for the current deployment, the handshake returns HTTP 501 with error.code = "responses_websocket_disabled" before upgrade or auth processing begins. For a full gateway walkthrough (connect, send turns, continue with previous_response_id, and recover from errors), see WebSocket Mode guide.

Authorizations

Authorization
string
header
required

Bearer token authentication

Response

WebSocket upgrade accepted.

Last modified on May 6, 2026