{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/UnauthorizedResponse",
"title": "UnauthorizedResponse",
"type": "object",
"x-apideck-schema-id": "Unauthorized",
"properties": {
"status_code": {
"type": "number",
"description": "HTTP status code",
"example": 401
},
"error": {
"type": "string",
"description": "Contains an explanation of the status_code as defined in HTTP/1.1 standard (RFC 7231)",
"example": "Unauthorized"
},
"type_name": {
"type": "string",
"description": "The type of error returned",
"example": "UnauthorizedError"
},
"message": {
"type": "string",
"description": "A human-readable message providing more details about the error.",
"example": "Unauthorized Request",
"x-speakeasy-error-message": true
},
"detail": {
"anyOf": [
{
"type": "string",
"example": "Missing authentication"
},
{
"type": "object",
"x-speakeasy-detail": true,
"properties": {
"type": {
"type": "string",
"description": "Error type identifier",
"example": "refresh_token_connector_error"
},
"message": {
"type": "string",
"description": "Detailed error message",
"example": "Token refresh failed"
},
"debug": {
"type": "object",
"description": "Debug information including request/response details and OAuth timing metadata",
"properties": {
"request": {
"type": "object",
"description": "HTTP request details"
},
"response": {
"type": "object",
"description": "HTTP response details"
},
"message": {
"type": "string",
"description": "Error message from downstream provider or network layer"
},
"code": {
"type": "string",
"description": "Error code (e.g., ETIMEDOUT, ECONNREFUSED)"
},
"credentials_expire_at_ms": {
"type": "number",
"description": "Unix timestamp (milliseconds) when credentials will be deleted if not refreshed. Only present for non-recoverable errors (401, 400). Credentials are preserved indefinitely for recoverable/network errors.",
"example": 1620172800000
},
"retry_after_ms": {
"type": "number",
"description": "Unix timestamp (milliseconds) when token refresh retry is allowed after cooldown period expires.",
"example": 1620000030000
},
"cooldown_remaining_ms": {
"type": "number",
"description": "Milliseconds remaining in cooldown period before retry is allowed.",
"example": 30000
}
}
}
},
"example": {
"type": "refresh_token_connector_error",
"message": "Token refresh failed with 401 error",
"debug": {
"response": {
"statusCode": 401,
"data": {
"error": "invalid_grant"
}
},
"credentials_expire_at_ms": 1620172800000,
"retry_after_ms": 1620000030000,
"cooldown_remaining_ms": 30000
}
}
}
],
"description": "Contains parameter or domain specific information related to the error and why it occurred."
},
"ref": {
"type": "string",
"description": "Link to documentation of error type",
"example": "https://developers.apideck.com/errors#unauthorizederror"
}
}
}