{
  "openapi": "3.0.3",
  "info": {
    "title": "sondahub Anthropic sandbox",
    "version": "0.10.0",
    "description": "An independent imitation of the Claude API for testing, run by sondahub — not affiliated with or endorsed by Anthropic. No model runs here: a scripted model answers, the same request getting the same answer every time.\n\nAuth: x-api-key with any key that starts with sk-ant- (sk-ant-sondahub works), and anthropic-version: 2023-06-01. Point an SDK at it with base_url https://api.sondahub.com.\n\nPhrases in the user message pick what comes back: [[tokens:N]], [[tool]], [[tools:all]], [[refuse]] ([[refuse:cyber]] sets the category), [[echo]], [[error:529]] (any status, quota, context), [[flaky:529]] (fails the first try only), [[break]] (a stream that dies halfway), [[slow]].\n\nBatches and the prompt cache live in the X-Sondahub-Session token each answer carries: send the newest one back as a header and the next request sees them. More at https://sondahub.com/sandboxes/anthropic/",
    "contact": {
      "name": "sondahub",
      "url": "https://sondahub.com/sandboxes/anthropic/"
    }
  },
  "externalDocs": {
    "description": "The sandbox, in full",
    "url": "https://sondahub.com/sandboxes/anthropic/"
  },
  "servers": [
    {
      "url": "https://api.sondahub.com"
    }
  ],
  "security": [
    {
      "anthropicKey": []
    }
  ],
  "tags": [
    {
      "name": "Messages",
      "description": "POST /v1/messages: the request checked the way the API checks it, the scripted model’s answer as a Message — or the event stream with stream: true."
    },
    {
      "name": "Message Batches",
      "description": "Up to 50 requests, kept in the session token: in_progress for a few seconds, then ended, with results as JSONL."
    },
    {
      "name": "Models",
      "description": "The Claude models the sandbox answers as, with their limits and capabilities."
    }
  ],
  "paths": {
    "/v1/messages": {
      "post": {
        "tags": [
          "Messages"
        ],
        "summary": "Create a message",
        "operationId": "CreateMessage",
        "description": "Put [[tokens:N]], [[tool]], [[refuse]], [[echo]], [[error:529]], [[flaky:529]], [[break]] or [[slow]] in the user message to pick what comes back.",
        "parameters": [
          {
            "name": "anthropic-version",
            "in": "header",
            "required": true,
            "description": "The API version: 2023-06-01.",
            "schema": {
              "type": "string",
              "default": "2023-06-01"
            },
            "example": "2023-06-01"
          },
          {
            "name": "anthropic-beta",
            "in": "header",
            "required": false,
            "description": "Beta features, comma-separated (accepted; the sandbox answers the same).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "headers": {
              "request-id": {
                "description": "The request id.",
                "schema": {
                  "type": "string"
                }
              },
              "anthropic-ratelimit-tokens-remaining": {
                "description": "Simulated quota.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "529": {
            "$ref": "#/components/responses/E529"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "model": {
                    "type": "string",
                    "description": "claude-opus-5-5, claude-sonnet-5-5, claude-haiku-4-5… (GET /v1/models lists them).",
                    "example": "claude-opus-5-5"
                  },
                  "max_tokens": {
                    "type": "integer",
                    "description": "The output limit (thinking included); running out stops with max_tokens.",
                    "example": 1024
                  },
                  "messages": {
                    "type": "array",
                    "description": "user and assistant turns; every tool_use answered by a tool_result in the next message.",
                    "items": {}
                  },
                  "system": {
                    "type": "string",
                    "description": "A string or text blocks (cache_control on them marks breakpoints)."
                  },
                  "stream": {
                    "type": "boolean",
                    "description": "message_start, content_block_start / _delta / _stop, ping, message_delta, message_stop."
                  },
                  "tools": {
                    "type": "array",
                    "description": "Custom tools (name, description, input_schema); the model calls one when the message names it, or with [[tool]].",
                    "items": {}
                  },
                  "tool_choice": {
                    "type": "object",
                    "description": "auto, any, tool (with name) or none."
                  },
                  "thinking": {
                    "type": "object",
                    "description": "{\"type\":\"enabled\",\"budget_tokens\":N} or {\"type\":\"adaptive\"}: a signed thinking block first."
                  },
                  "output_config": {
                    "type": "object",
                    "description": "effort (low … max), format: {\"type\":\"json_schema\",\"schema\":…} for structured output."
                  },
                  "stop_sequences": {
                    "type": "array",
                    "description": "Custom stop sequences; stop_reason stop_sequence names the one hit.",
                    "items": {}
                  },
                  "cache_control": {
                    "type": "object",
                    "description": "Automatic caching: a breakpoint on the last block."
                  },
                  "metadata": {
                    "type": "object",
                    "description": "user_id."
                  }
                },
                "required": [
                  "model",
                  "max_tokens",
                  "messages"
                ],
                "example": {
                  "model": "claude-opus-5-5",
                  "max_tokens": 1024,
                  "messages": [
                    {
                      "role": "user",
                      "content": "Hello, Claude"
                    }
                  ]
                }
              },
              "examples": {
                "simple": {
                  "summary": "A message",
                  "value": {
                    "model": "claude-opus-5-5",
                    "max_tokens": 1024,
                    "messages": [
                      {
                        "role": "user",
                        "content": "Hello, Claude"
                      }
                    ]
                  }
                },
                "stream": {
                  "summary": "Streamed",
                  "value": {
                    "model": "claude-sonnet-5-5",
                    "max_tokens": 1024,
                    "stream": true,
                    "messages": [
                      {
                        "role": "user",
                        "content": "[[tokens:150]] Tell me a story."
                      }
                    ]
                  }
                },
                "tools": {
                  "summary": "A tool call",
                  "value": {
                    "model": "claude-opus-5-5",
                    "max_tokens": 1024,
                    "tools": [
                      {
                        "name": "get_weather",
                        "description": "Get the current weather in a given location",
                        "input_schema": {
                          "type": "object",
                          "properties": {
                            "location": {
                              "type": "string",
                              "description": "The city and state, e.g. San Francisco, CA"
                            }
                          },
                          "required": [
                            "location"
                          ]
                        }
                      }
                    ],
                    "messages": [
                      {
                        "role": "user",
                        "content": "What's the weather like in San Francisco?"
                      }
                    ]
                  }
                },
                "thinking": {
                  "summary": "Extended thinking",
                  "value": {
                    "model": "claude-opus-5-5",
                    "max_tokens": 16000,
                    "thinking": {
                      "type": "enabled",
                      "budget_tokens": 10000
                    },
                    "messages": [
                      {
                        "role": "user",
                        "content": "What is (17 * 23) + 4?"
                      }
                    ]
                  }
                },
                "caching": {
                  "summary": "Prompt caching (send it twice with the session token)",
                  "value": {
                    "model": "claude-sonnet-5-5",
                    "max_tokens": 1024,
                    "system": [
                      {
                        "type": "text",
                        "text": "You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. You are an assistant that answers questions about a long document. ",
                        "cache_control": {
                          "type": "ephemeral"
                        }
                      }
                    ],
                    "messages": [
                      {
                        "role": "user",
                        "content": "What is the document about?"
                      }
                    ]
                  }
                },
                "structured": {
                  "summary": "Structured output",
                  "value": {
                    "model": "claude-opus-5-5",
                    "max_tokens": 1024,
                    "output_config": {
                      "format": {
                        "type": "json_schema",
                        "schema": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "email": {
                              "type": "string"
                            },
                            "demo_requested": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "email",
                            "demo_requested"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "messages": [
                      {
                        "role": "user",
                        "content": "Extract: John Smith (john@example.com) wants a demo."
                      }
                    ]
                  }
                },
                "overloaded": {
                  "summary": "Overloaded, on purpose",
                  "value": {
                    "model": "claude-opus-5-5",
                    "max_tokens": 1024,
                    "messages": [
                      {
                        "role": "user",
                        "content": "[[error:529]] hello"
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/messages/count_tokens": {
      "post": {
        "tags": [
          "Messages"
        ],
        "summary": "Count tokens",
        "operationId": "CountTokens",
        "parameters": [
          {
            "name": "anthropic-version",
            "in": "header",
            "required": true,
            "description": "The API version: 2023-06-01.",
            "schema": {
              "type": "string",
              "default": "2023-06-01"
            },
            "example": "2023-06-01"
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "model": {
                    "type": "string",
                    "description": "claude-opus-5-5, claude-sonnet-5-5, claude-haiku-4-5… (GET /v1/models lists them).",
                    "example": "claude-opus-5-5"
                  },
                  "messages": {
                    "type": "array",
                    "description": "user and assistant turns; every tool_use answered by a tool_result in the next message.",
                    "items": {}
                  },
                  "system": {
                    "type": "string",
                    "description": "A string or text blocks (cache_control on them marks breakpoints)."
                  },
                  "tools": {
                    "type": "array",
                    "description": "Custom tools (name, description, input_schema); the model calls one when the message names it, or with [[tool]].",
                    "items": {}
                  }
                },
                "required": [
                  "model",
                  "messages"
                ],
                "example": {
                  "model": "claude-opus-5-5",
                  "messages": [
                    {
                      "role": "user",
                      "content": "Hello, world"
                    }
                  ]
                }
              },
              "example": {
                "model": "claude-opus-5-5",
                "messages": [
                  {
                    "role": "user",
                    "content": "Hello, world"
                  }
                ]
              }
            }
          }
        }
      }
    },
    "/v1/messages/batches": {
      "post": {
        "tags": [
          "Message Batches"
        ],
        "summary": "Create a batch",
        "operationId": "CreateMessageBatch",
        "parameters": [
          {
            "name": "anthropic-version",
            "in": "header",
            "required": true,
            "description": "The API version: 2023-06-01.",
            "schema": {
              "type": "string",
              "default": "2023-06-01"
            },
            "example": "2023-06-01"
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "requests": {
                    "type": "array",
                    "description": "Up to 50 of {custom_id, params}; params as for /v1/messages, without stream.",
                    "items": {}
                  }
                },
                "required": [
                  "requests"
                ],
                "example": {
                  "requests": [
                    {
                      "custom_id": "first",
                      "params": {
                        "model": "claude-opus-5-5",
                        "max_tokens": 1024,
                        "messages": [
                          {
                            "role": "user",
                            "content": "Say batch one"
                          }
                        ]
                      }
                    },
                    {
                      "custom_id": "second",
                      "params": {
                        "model": "claude-haiku-4-5",
                        "max_tokens": 1024,
                        "messages": [
                          {
                            "role": "user",
                            "content": "What is 6 * 7?"
                          }
                        ]
                      }
                    }
                  ]
                }
              },
              "example": {
                "requests": [
                  {
                    "custom_id": "first",
                    "params": {
                      "model": "claude-opus-5-5",
                      "max_tokens": 1024,
                      "messages": [
                        {
                          "role": "user",
                          "content": "Say batch one"
                        }
                      ]
                    }
                  },
                  {
                    "custom_id": "second",
                    "params": {
                      "model": "claude-haiku-4-5",
                      "max_tokens": 1024,
                      "messages": [
                        {
                          "role": "user",
                          "content": "What is 6 * 7?"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Message Batches"
        ],
        "summary": "List batches",
        "operationId": "ListMessageBatches",
        "parameters": [
          {
            "name": "anthropic-version",
            "in": "header",
            "required": true,
            "description": "The API version: 2023-06-01.",
            "schema": {
              "type": "string",
              "default": "2023-06-01"
            },
            "example": "2023-06-01"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "1–1000, default 20.",
            "schema": {
              "type": "integer"
            },
            "example": 20
          },
          {
            "name": "after_id",
            "in": "query",
            "required": false,
            "description": "Page after this batch.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "before_id",
            "in": "query",
            "required": false,
            "description": "Page before this batch.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/E401"
          }
        }
      }
    },
    "/v1/messages/batches/{message_batch_id}": {
      "get": {
        "tags": [
          "Message Batches"
        ],
        "summary": "Retrieve a batch",
        "operationId": "GetMessageBatch",
        "parameters": [
          {
            "name": "message_batch_id",
            "in": "path",
            "required": true,
            "description": "A batch id from POST /v1/messages/batches (in this session), or the ended one every session starts with.",
            "schema": {
              "type": "string"
            },
            "example": "msgbatch_01Q7sondahubSeedBatch4Kx"
          },
          {
            "name": "anthropic-version",
            "in": "header",
            "required": true,
            "description": "The API version: 2023-06-01.",
            "schema": {
              "type": "string",
              "default": "2023-06-01"
            },
            "example": "2023-06-01"
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        }
      },
      "delete": {
        "tags": [
          "Message Batches"
        ],
        "summary": "Delete a batch",
        "operationId": "DeleteMessageBatch",
        "parameters": [
          {
            "name": "message_batch_id",
            "in": "path",
            "required": true,
            "description": "A batch id from POST /v1/messages/batches (in this session), or the ended one every session starts with.",
            "schema": {
              "type": "string"
            },
            "example": "msgbatch_01Q7sondahubSeedBatch4Kx"
          },
          {
            "name": "anthropic-version",
            "in": "header",
            "required": true,
            "description": "The API version: 2023-06-01.",
            "schema": {
              "type": "string",
              "default": "2023-06-01"
            },
            "example": "2023-06-01"
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        }
      }
    },
    "/v1/messages/batches/{message_batch_id}/cancel": {
      "post": {
        "tags": [
          "Message Batches"
        ],
        "summary": "Cancel a batch",
        "operationId": "CancelMessageBatch",
        "parameters": [
          {
            "name": "message_batch_id",
            "in": "path",
            "required": true,
            "description": "A batch id from POST /v1/messages/batches (in this session), or the ended one every session starts with.",
            "schema": {
              "type": "string"
            },
            "example": "msgbatch_01Q7sondahubSeedBatch4Kx"
          },
          {
            "name": "anthropic-version",
            "in": "header",
            "required": true,
            "description": "The API version: 2023-06-01.",
            "schema": {
              "type": "string",
              "default": "2023-06-01"
            },
            "example": "2023-06-01"
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        }
      }
    },
    "/v1/messages/batches/{message_batch_id}/results": {
      "get": {
        "tags": [
          "Message Batches"
        ],
        "summary": "Batch results (JSONL)",
        "operationId": "GetMessageBatchResults",
        "parameters": [
          {
            "name": "message_batch_id",
            "in": "path",
            "required": true,
            "description": "A batch id from POST /v1/messages/batches (in this session), or the ended one every session starts with.",
            "schema": {
              "type": "string"
            },
            "example": "msgbatch_01Q7sondahubSeedBatch4Kx"
          },
          {
            "name": "anthropic-version",
            "in": "header",
            "required": true,
            "description": "The API version: 2023-06-01.",
            "schema": {
              "type": "string",
              "default": "2023-06-01"
            },
            "example": "2023-06-01"
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        }
      }
    },
    "/v1/models": {
      "get": {
        "tags": [
          "Models"
        ],
        "summary": "List models",
        "operationId": "ListModels",
        "parameters": [
          {
            "name": "anthropic-version",
            "in": "header",
            "required": true,
            "description": "The API version: 2023-06-01.",
            "schema": {
              "type": "string",
              "default": "2023-06-01"
            },
            "example": "2023-06-01"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "1–1000, default 20.",
            "schema": {
              "type": "integer"
            },
            "example": 20
          },
          {
            "name": "after_id",
            "in": "query",
            "required": false,
            "description": "Page after this model.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "before_id",
            "in": "query",
            "required": false,
            "description": "Page before this model.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/E401"
          }
        }
      }
    },
    "/v1/models/{model_id}": {
      "get": {
        "tags": [
          "Models"
        ],
        "summary": "Retrieve a model",
        "operationId": "GetModel",
        "parameters": [
          {
            "name": "model_id",
            "in": "path",
            "required": true,
            "description": "A model id or alias.",
            "schema": {
              "type": "string"
            },
            "example": "claude-opus-5-5"
          },
          {
            "name": "anthropic-version",
            "in": "header",
            "required": true,
            "description": "The API version: 2023-06-01.",
            "schema": {
              "type": "string",
              "default": "2023-06-01"
            },
            "example": "2023-06-01"
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "anthropicKey": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key",
        "description": "Any key that starts with sk-ant- — sk-ant-sondahub works."
      }
    },
    "responses": {
      "E400": {
        "description": "invalid_request_error: what is wrong, in the API’s words (\"max_tokens: Field required\").",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "example": "error"
                },
                "error": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                },
                "request_id": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "E401": {
        "description": "authentication_error: no x-api-key, or one that does not start with sk-ant-.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "example": "error"
                },
                "error": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                },
                "request_id": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "E404": {
        "description": "not_found_error: no such model or batch, or a part of the API the sandbox does not model.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "example": "error"
                },
                "error": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                },
                "request_id": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "E413": {
        "description": "request_too_large: a batch over 16 KB.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "example": "error"
                },
                "error": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                },
                "request_id": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "E429": {
        "description": "rate_limit_error: asked for with [[error:429]].",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "example": "error"
                },
                "error": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                },
                "request_id": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "E529": {
        "description": "overloaded_error: asked for with [[error:529]].",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "example": "error"
                },
                "error": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                },
                "request_id": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  }
}