SPB Git forge

spb/doc-api

Public
2commits 1branches 0releases
15.7 MBsize
maindefault branch
13 days agolast push
Python 88.3% TypeScript 7.6% Shell 4.1%
61.0 KB · 936 lines json
Raw Blame History
1[2 {3  "provider": "anthropic",4  "language": "python",5  "package": "anthropic",6  "version_seen": "1.7.0 (installed in .venv; docs: Python ≥3.10, v1 migration guide)",7  "install": "pip install anthropic  # extras: anthropic[bedrock], anthropic[vertex], anthropic[aws], anthropic[aiohttp]",8  "client": "from anthropic import Anthropic, AsyncAnthropic; client = Anthropic()  # reads ANTHROPIC_API_KEY / ANTHROPIC_AUTH_TOKEN",9  "status": [10   "DOCUMENTED",11   "LIVE_VERIFIED"12  ],13  "source": "https://platform.claude.com/docs/en/cli-sdks-libraries/sdks/python",14  "messages": {15   "create": "client.messages.create(model, max_tokens, messages, …, stream=False) -> Message | Stream[RawMessageStreamEvent]",16   "stream": "with client.messages.stream(...) as stream: stream.text_stream / for event in stream / stream.get_final_message() / stream.get_final_text() / stream.until_done() / stream.current_message_snapshot / stream.request_id",17   "parse": "client.messages.parse(..., output_format=PydanticModel) — structured outputs helper (translates to output_config.format)",18   "count_tokens": "client.messages.count_tokens(model, messages, system?, tools?, thinking?, output_config?) -> MessageTokensCount",19   "batches": "client.messages.batches.*"20  },21  "beta": "client.beta.messages.create(betas=[...]) / .stream / .parse / .count_tokens / .tool_runner(tools=[@beta_tool functions]) ; client.beta.models",22  "models": "client.models.list() (auto-paginates: for m in client.models.list()) / client.models.retrieve(id) / .has_next_page() / .get_next_page()",23  "completions_legacy": "REMOVED in 1.x: `Anthropic().completions` raises AttributeError (verified on 1.7.0)",24  "removed_params_1_7_0": "LIVE_DISCOVERED: messages.create/stream/parse and beta.messages.create in anthropic 1.7.0 have NO `temperature`, `top_p`, `top_k` keyword arguments (TypeError 'unexpected keyword argument'); pass them via extra_body={'temperature': 0.2} for models that still accept them. New kwargs: user_profile_id, workspace_id. count_tokens/stream still accept legacy `output_format`.",25  "retries": "DEFAULT_MAX_RETRIES=2; retries connection errors, 408, 409, 429, >=500 (and APITimeoutError); backoff INITIAL_RETRY_DELAY 0.5s → MAX_RETRY_DELAY 8s with jitter; honors retry-after; client option max_retries / with_options(max_retries=…)",26  "timeouts": "DEFAULT_TIMEOUT = httpx2.Timeout(connect=5, read=600, write=600, pool=600) i.e. 10 min; raises APITimeoutError; non-streaming requests expected >10 min raise ValueError unless stream=True or timeout overridden; MODEL_NONSTREAMING_TOKENS caps (Opus 4/4.1 ids: 8192)",27  "raw_response": "client.messages.with_raw_response.create(...) -> APIResponse (.headers, .parse()); with_streaming_response for lazy bodies; message._request_id",28  "errors": "APIError > APIStatusError(BadRequestError 400, AuthenticationError 401, PermissionDeniedError 403, NotFoundError 404, ConflictError 409, UnprocessableEntityError 422, RateLimitError 429, RequestTooLargeError 413, InternalServerError ≥500, OverloadedError 529, ServiceUnavailableError, DeadlineExceededError), APIConnectionError, APITimeoutError, plus WIF errors (CredentialsError, WorkloadIdentityError, IdentityTokenFileError)",29  "types": "request params = TypedDicts (anthropic.types.MessageParam, …); responses = Pydantic models (.model_dump(), .to_json(), model_extra for undocumented fields)",30  "headers": "sends anthropic-version 2023-06-01; default_headers / extra_headers / extra_body / extra_query for undocumented fields; client.get/post for undocumented endpoints",31  "middleware": "client.with_middleware([...]) / middleware=[] option; built-in refusal-fallback middleware",32  "cloud_clients": "AnthropicBedrockMantle (new Bedrock), AnthropicBedrock (bedrock-runtime), AnthropicVertex / AnthropicGoogleCloud, AnthropicAWS (beta, workspace_id / ANTHROPIC_AWS_WORKSPACE_ID), AnthropicFoundry — all in the base package, async twins",33  "logging": "ANTHROPIC_LOG=debug|info",34  "verification": {35   "method": "live_api",36   "verified_at": "2026-09-18",37   "result": "success",38   "http_status": 200,39   "request_note": "examples/anthropic/messages/*.py and streaming/*.py executed with .venv/bin/python (anthropic 1.7.0)"40  },41  "_fragment": "generated/fragments/sdks/anthropic-sdks.json"42 },43 {44  "provider": "anthropic",45  "language": "typescript",46  "package": "@anthropic-ai/sdk",47  "version_seen": "0.126.0 (installed in node_modules; docs: TS ≥5.0, Node 20+, Deno, Bun, Workers, Edge; browsers need dangerouslyAllowBrowser)",48  "install": "npm install @anthropic-ai/sdk",49  "client": "import Anthropic from '@anthropic-ai/sdk'; const client = new Anthropic({ apiKey?, authToken?, maxRetries?, timeout?, logLevel? })",50  "status": [51   "DOCUMENTED",52   "LIVE_VERIFIED"53  ],54  "source": "https://platform.claude.com/docs/en/cli-sdks-libraries/sdks/typescript",55  "messages": {56   "create": "client.messages.create(params) -> Promise<Message> | (stream: true) -> Stream<RawMessageStreamEvent> (async iterable; stream.controller.abort())",57   "stream": "client.messages.stream(params) -> MessageStream: .on('text'|'message'|'contentBlock'|'streamEvent'|'error'|'finalMessage'), for await (const ev of stream), await stream.finalMessage(), stream.finalText(), stream.request_id",58   "countTokens": "client.messages.countTokens(params) -> MessageTokensCount",59   "batches": "client.messages.batches.*"60  },61  "beta": "client.beta.messages.create({betas: [...]}) / .stream / .countTokens / .toolRunner({tools: [betaTool|betaZodTool], …}) ; ToolError for tool failures; MCP helpers (convert MCP tools/prompts/resources)",62  "models": "client.models.list() (for await auto-pagination; .getNextPage()) / client.models.retrieve(id)",63  "completions_legacy": "client.completions.create({model, prompt, max_tokens_to_sample}) still typed in 0.126.0 (endpoint returns 400 deprecated live)",64  "retries": "maxRetries default 2; retries connection errors, 408, 409, 429, >=500; honors retry-after and x-should-retry",65  "timeouts": "DEFAULT_TIMEOUT 600000 ms (10 min); for non-streaming with large max_tokens the timeout scales: expected = 60min * max_tokens / 128000, and if expected > 10 min (or max_tokens > model non-streaming cap) it throws AnthropicError 'Streaming is required for operations that may take longer than 10 minutes'; APIConnectionTimeoutError on timeout",66  "raw_response": "await client.messages.create(...).asResponse() (headers only) / .withResponse() -> {data, response, request_id}; message._request_id",67  "errors": "APIError > BadRequestError, AuthenticationError, PermissionDeniedError, NotFoundError, ConflictError, UnprocessableEntityError, RateLimitError, InternalServerError; APIConnectionError, APIConnectionTimeoutError, APIUserAbortError, RetryableError, AnthropicError",68  "types": "import type { MessageParam, Message, RawMessageStreamEvent } from '@anthropic-ai/sdk/resources/messages'",69  "headers": "sends anthropic-version 2023-06-01; per-request { headers, query, body } options; // @ts-expect-error for undocumented params",70  "cloud_clients": "@anthropic-ai/vertex-sdk (AnthropicVertex), @anthropic-ai/bedrock-sdk (AnthropicBedrockMantle, AnthropicBedrock), @anthropic-ai/aws-sdk (AnthropicAws, beta), @anthropic-ai/foundry-sdk (AnthropicFoundry)",71  "logging": "ANTHROPIC_LOG or logLevel option: debug|info|warn(default)|error|off; custom logger",72  "verification": {73   "method": "live_api",74   "verified_at": "2026-09-18",75   "result": "success",76   "http_status": 200,77   "request_note": "examples *.ts executed with node --env-file=.env --experimental-strip-types (@anthropic-ai/sdk 0.126.0)"78  },79  "_fragment": "generated/fragments/sdks/anthropic-sdks.json"80 },81 {82  "provider": "anthropic",83  "language": "go",84  "package": "github.com/anthropics/anthropic-sdk-go",85  "version_seen": "docs: Go ≥1.24 (param.SetJSON needs ≥1.20.0)",86  "install": "go get github.com/anthropics/anthropic-sdk-go",87  "client": "client := anthropic.NewClient(option.WithAPIKey(...))",88  "status": [89   "DOCUMENTED"90  ],91  "source": "https://platform.claude.com/docs/en/cli-sdks-libraries/sdks/go",92  "messages": "client.Messages.New(ctx, anthropic.MessageNewParams{...}) ; client.Messages.NewStreaming(ctx, params) -> stream.Next()/Current(); message.Accumulate(event) ; client.Messages.CountTokens",93  "retries": "2 by default (connection errors, 408, 409, 429, >=500); option.WithMaxRetries",94  "timeouts": "non-streaming Messages: 10 min default; others none; context deadline or option.WithRequestTimeout (per retry)",95  "errors": "*anthropic.Error with StatusCode, Request, Response (errors.As); transport errors unwrapped (*url.Error)",96  "raw_response": "option.WithResponseInto(&httpResp) → Header.Get(\"request-id\")",97  "middleware": "option.WithMiddleware (client then method, concatenated)",98  "cloud_clients": "bedrock / vertex sub-packages",99  "_fragment": "generated/fragments/sdks/anthropic-sdks.json"100 },101 {102  "provider": "anthropic",103  "language": "java",104  "package": "com.anthropic:anthropic-java",105  "version_seen": "2.63.0 (docs); Java ≥8",106  "install": "implementation(\"com.anthropic:anthropic-java:2.63.0\")  // or Maven <dependency>",107  "client": "AnthropicClient client = AnthropicOkHttpClient.fromEnv(); AnthropicClientAsync async = AnthropicOkHttpClientAsync.fromEnv();",108  "status": [109   "DOCUMENTED"110  ],111  "source": "https://platform.claude.com/docs/en/cli-sdks-libraries/sdks/java",112  "messages": "client.messages().create(MessageCreateParams.builder()...build()) ; client.messages().createStreaming(params) -> StreamResponse<RawMessageStreamEvent> (try-with-resources, .stream()) ; MessageAccumulator.create().accumulate(event).message() ; client.async().messages().createStreaming(params).subscribe(...) ; countTokens ; batches",113  "retries": "maxRetries builder option (default 2)",114  "timeouts": "timeout builder option; 10 min default for non-streaming",115  "errors": "AnthropicException > AnthropicServiceException (HTTP: BadRequestException, AuthenticationException, PermissionDeniedException, NotFoundException, UnprocessableEntityException, RateLimitException, InternalServerException…), AnthropicIoException, AnthropicRetryableException, AnthropicInvalidDataException",116  "raw_response": "client.messages().withRawResponse().create(params) -> HttpResponseFor<Message> (.requestId(), .headers())",117  "pagination": "auto-paginating iterators for list endpoints",118  "_fragment": "generated/fragments/sdks/anthropic-sdks.json"119 },120 {121  "provider": "anthropic",122  "language": "ruby",123  "package": "anthropic (gem)",124  "version_seen": "docs (Sorbet types)",125  "install": "bundle add anthropic",126  "client": "client = Anthropic::Client.new(api_key: ENV['ANTHROPIC_API_KEY'])",127  "status": [128   "DOCUMENTED"129  ],130  "source": "https://platform.claude.com/docs/en/cli-sdks-libraries/sdks/ruby",131  "messages": "client.messages.create(model:, max_tokens:, messages:) ; client.messages.stream(...) → stream.text / .accumulated_message ; client.messages.count_tokens",132  "retries": "max_retries (default 2) on client or request_options: {max_retries:}",133  "timeouts": "timeout: (default 10 min) client or request_options",134  "errors": "Anthropic::Errors::APIError > BadRequestError 400, AuthenticationError 401, PermissionDeniedError 403, NotFoundError 404, ConflictError 409, UnprocessableEntityError 422, RateLimitError 429, InternalServerError ≥500, APIStatusError (other), APITimeoutError, APIConnectionError",135  "raw_response": "per-request middleware (request_options: {middleware: [...]}) to read response.headers['request-id']",136  "_fragment": "generated/fragments/sdks/anthropic-sdks.json"137 },138 {139  "provider": "anthropic",140  "language": "csharp",141  "package": "Anthropic (NuGet)",142  "version_seen": "≥10 is the official SDK (≤3.x was tryAGI); .NET Standard 2.0+",143  "install": "dotnet add package Anthropic",144  "client": "AnthropicClient client = new() { MaxRetries = 3, Timeout = TimeSpan.FromSeconds(42) };",145  "status": [146   "DOCUMENTED"147  ],148  "source": "https://platform.claude.com/docs/en/cli-sdks-libraries/sdks/csharp",149  "messages": "await client.Messages.Create(new MessageCreateParams {...}) ; await foreach (var ev in client.Messages.CreateStreaming(parameters)) ; .CreateStreaming(p).Aggregate() → Message ; MessageContentAggregator with .CollectAsync() ; client.WithRawResponse.Messages.Create(...) → response.RequestID ; IChatClient integration",150  "retries": "MaxRetries default 2 (client or `options with { MaxRetries = 3 }`)",151  "timeouts": "Timeout property",152  "errors": "AnthropicApiException (AnthropicBadRequestException 400, AnthropicUnauthorizedException 401, AnthropicForbiddenException 403, AnthropicNotFoundException 404, AnthropicUnprocessableEntityException 422, AnthropicRateLimitException 429, Anthropic5xxException; all 4xx inherit Anthropic4xxException), AnthropicSseException (mid-stream), AnthropicIOException",153  "_fragment": "generated/fragments/sdks/anthropic-sdks.json"154 },155 {156  "provider": "anthropic",157  "language": "php",158  "package": "anthropic-ai/sdk",159  "version_seen": "beta (docs: APIs may change); PSR-18 client, Guzzle recommended",160  "install": "composer require \"anthropic-ai/sdk\" \"guzzlehttp/guzzle:^7\"",161  "client": "$client = new Anthropic\\Client(apiKey: ...);",162  "status": [163   "DOCUMENTED",164   "BETA"165  ],166  "source": "https://platform.claude.com/docs/en/cli-sdks-libraries/sdks/php",167  "messages": "$client->messages->create(model:, maxTokens:, messages:) ; $client->messages->createStream(...) foreach $event ; Anthropic\\Lib\\Streaming\\MessageAccumulator::forMessages()->accumulate($event)->message() ; $client->messages->raw->create(...) → getHeaderLine('request-id')",168  "retries": "RequestOptions::with(maxRetries: n) (default 2; connection errors, 408, 409, 429, >=500, timeouts)",169  "errors": "APIStatusException (other HTTP), APITimeoutException, APIConnectionException (+ per-status subclasses)",170  "streaming_note": "requires an incremental PSR-18 client; buffering clients yield all events at once",171  "_fragment": "generated/fragments/sdks/anthropic-sdks.json"172 },173 {174  "provider": "anthropic",175  "language": "cli",176  "package": "ant (anthropic-cli)",177  "version_seen": "1.33.0 in docs (ant apply ≥1.30.0, sessions connect ≥1.32.0)",178  "install": "brew install anthropics/tap/ant  |  release tarball from github.com/anthropics/anthropic-cli/releases  |  go install github.com/anthropics/anthropic-cli/cmd/ant@latest",179  "client": "ant auth login (OAuth, workspace-scoped token) | ANTHROPIC_API_KEY | --api-key | ANTHROPIC_AUTH_TOKEN | WIF profiles (ant profile set …)",180  "status": [181   "DOCUMENTED"182  ],183  "source": "https://platform.claude.com/docs/en/cli-sdks-libraries/cli/quickstart",184  "messages": "ant messages create --model claude-opus-5 --max-tokens 1024 --message '{role: user, content: \"Hello\"}' [--system @file.md] [--tool …] [--stream --format jsonl] [--beta a,b] [--workspace-id wrkspc_…]",185  "count_tokens": "ant messages count-tokens … (resource action pattern; beta: prefix for beta resources adds the header automatically)",186  "models": "ant models list | ant models retrieve <id>",187  "global_flags": "--profile, --format auto|json|jsonl|yaml|pretty|raw|explore, --transform <GJSON>, -r/--raw-output, --base-url, --workspace-id, --debug (prints request/response, keys redacted), --format-error, --transform-error",188  "input": "flags for scalars; stdin JSON/YAML document (heredoc) merged with flags (flags win); @path inlines file contents (binary auto base64; @file:// / @data:// force; \\@ escapes)",189  "auth_commands": "ant auth login [--scope org:admin] | ant auth status | ant auth logout [--all] | ant auth print-credentials --access-token (use as Authorization: Bearer for curl)",190  "other": "ant apply (agents/environments/skills/memory stores/deployments as files, claude-lock.json, --dry-run --yes --force --prune) ; ant beta:sessions connect --session-id … [--web] ; ant @completion zsh|bash|fish|powershell",191  "verification": {192   "method": "docs_only",193   "verified_at": "2026-09-18",194   "result": "skipped",195   "http_status": null,196   "request_note": "ant not installed locally; documented only"197  },198  "_fragment": "generated/fragments/sdks/anthropic-sdks.json"199 },200 {201  "provider": "anthropic",202  "language": "libraries",203  "package": "openai-sdk compatibility / apple-foundation-models",204  "version_seen": "n/a",205  "install": "see pages",206  "client": "OpenAI SDK pointed at the Claude API compatibility layer; Swift package for Apple LanguageModelSession",207  "status": [208   "DOCUMENTED"209  ],210  "source": "https://platform.claude.com/docs/en/cli-sdks-libraries/libraries/openai-sdk",211  "note": "Not general-purpose Messages clients; documented under cli-sdks-libraries/libraries.",212  "_fragment": "generated/fragments/sdks/anthropic-sdks.json"213 },214 {215  "provider": "gemini",216  "language": "python",217  "package": "google-genai",218  "version_seen": "2.24.0 (installed in .venv; pyproject requires-python >=3.10)",219  "install": "pip install google-genai   # extras: google-genai[aiohttp] for a faster async transport",220  "client": "from google import genai; client = genai.Client()  # reads GEMINI_API_KEY / GOOGLE_API_KEY (GOOGLE_API_KEY wins if both set); genai.Client(api_key=...) explicit; genai.Client(vertexai=True, project=..., location=...) or env GOOGLE_GENAI_USE_VERTEXAI=true + GOOGLE_CLOUD_PROJECT + GOOGLE_CLOUD_LOCATION for Gemini Enterprise Agent Platform (Vertex AI)",221  "status": [222   "DOCUMENTED",223   "LIVE_VERIFIED"224  ],225  "source": "https://ai.google.dev/gemini-api/docs/libraries",226  "http_options": "types.HttpOptions(api_version='v1'|'v1beta'(default)|'v1alpha', base_url=, base_url_resource_scope=, headers={}, timeout=<ms>, client_args={}, async_client_args={}, extra_body={}, retry_options=HttpRetryOptions(attempts, initial_delay, max_delay, exp_base, jitter, http_status_codes), httpx_client=, httpx_async_client=); per-request via config=types.GenerateContentConfig(http_options=...)",227  "retries": "Automatic exponential backoff for transient errors (429, 5xx, timeouts, network): default up to 4 attempts, initial delay ~1 s, max 60 s (troubleshooting.md); tune with HttpRetryOptions",228  "models": "client.models.generate_content(model, contents, config=GenerateContentConfig(system_instruction, temperature, max_output_tokens, thinking_config=ThinkingConfig(thinking_level|thinking_budget, include_thoughts), response_mime_type, response_schema|response_json_schema, tools=[Tool(google_search=..., code_execution=..., url_context=..., function_declarations=...)], cached_content, safety_settings, media_resolution, ...)) -> GenerateContentResponse (.text, .parsed, .candidates, .usage_metadata); generate_content_stream(...) -> iterator of chunks; count_tokens / compute_tokens; embed_content(model, contents, config=EmbedContentConfig(task_type, output_dimensionality)); list() / get(model=) -> types.Model (name, display_name, version, input_token_limit, output_token_limit, supported_actions, temperature, max_temperature, ...); generate_images / edit_image / upscale_image (Imagen, retired on Gemini API); generate_videos (Veo, long-running operation polled via client.operations.get)",229  "async": "client.aio.models.generate_content(...) / async for chunk in await client.aio.models.generate_content_stream(...); aiohttp transport via google-genai[aiohttp]",230  "chats": "client.chats.create(model=) -> chat.send_message / send_message_stream (client-side history)",231  "files": "client.files.upload(file=path|IO, config=UploadFileConfig(display_name, mime_type)); files.get / list / delete; files.download(file=) for generated files (Batch output)",232  "caches": "client.caches.create(model=, config=CreateCachedContentConfig(contents, system_instruction, ttl|expire_time, display_name)); caches.get/list/update/delete; use via GenerateContentConfig(cached_content=cache.name). Explicit caching is generateContent-only (Interactions API supports implicit caching only)",233  "interactions": "client.interactions.create(model=|agent=, input=, previous_interaction_id=, background=, store=, stream=, generation_config={'thinking_level':...}, tools=[...]) -> Interaction (.output_text, .steps, .id); interactions.get(id); interactions.cancel; SDK >= 1.55.0 required",234  "live": "async with client.aio.live.connect(model=, config=LiveConnectConfig(response_modalities, speech_config, session_resumption, context_window_compression, ...)) as session: session.send_client_content / send_realtime_input / receive(); client.auth_tokens.create(...) for ephemeral tokens (Live only); client.aio.live.music.connect(...) for Lyria RealTime",235  "batches": "client.batches.create(model=, src=file name | inline requests, config=CreateBatchJobConfig(display_name)); batches.get/list/cancel/delete; embeddings batches via asyncBatchEmbedContent",236  "file_search": "client.file_search_stores.create / upload_to_file_search_store / import_file / documents.*; tool Tool(file_search=FileSearch(file_search_store_names=[...]))",237  "tunings": "client.tunings.tune(...) exists in the SDK for Vertex AI; no tunable model is offered on the Gemini Developer API",238  "function_calling": "Automatic Python function calling: pass Python callables in tools=[fn]; disable with automatic_function_calling=AutomaticFunctionCallingConfig(disable=True); tool_config=ToolConfig(function_calling_config=FunctionCallingConfig(mode='ANY', allowed_function_names=[...])); MCP: pass an mcp ClientSession as a tool (experimental)",239  "structured_output": "response_mime_type='application/json' + response_schema=Pydantic model | types.Schema, or response_json_schema=<JSON Schema dict> (recommended on Gemini 3); response.parsed",240  "errors": "google.genai.errors.APIError (code, message, status, details), ClientError (4xx), ServerError (5xx); FunctionInvocationError",241  "openai_compat": "Not part of google-genai; use `openai` SDK with base_url='https://generativelanguage.googleapis.com/v1beta/openai/' and api_key=GEMINI_API_KEY",242  "legacy": "google-generativeai (import google.generativeai) deprecated 2025-11-30; migrate guide: https://ai.google.dev/gemini-api/docs/migrate",243  "_fragment": "generated/fragments/sdks/gemini-sdks.json"244 },245 {246  "provider": "gemini",247  "language": "typescript",248  "package": "@google/genai",249  "version_seen": "2.23.0 (installed in node_modules; package.json version 2.23.0)",250  "install": "npm install @google/genai",251  "client": "import { GoogleGenAI } from '@google/genai'; const ai = new GoogleGenAI({ apiKey?, vertexai?, project?, location?, httpOptions?: { apiVersion, baseUrl, headers, timeout } })  // Node reads GEMINI_API_KEY / GOOGLE_API_KEY (GOOGLE_API_KEY precedence); GOOGLE_GENAI_USE_VERTEXAI=true switches backend; browser: identical init but never ship a long-lived key - use ephemeral tokens for Live",252  "status": [253   "DOCUMENTED"254  ],255  "source": "https://ai.google.dev/gemini-api/docs/libraries",256  "http_options": "httpOptions: { apiVersion: 'v1' | 'v1beta' (default) | 'v1alpha', baseUrl, headers, timeout }",257  "models": "ai.models.generateContent({ model, contents, config: { systemInstruction, thinkingConfig: { thinkingLevel | thinkingBudget, includeThoughts }, responseMimeType, responseJsonSchema | responseSchema, tools: [{ googleSearch: {} }, { codeExecution: {} }, { urlContext: {} }, { functionDeclarations: [...] }], cachedContent, safetySettings, maxOutputTokens, ... } }) -> response.text / response.candidates / response.usageMetadata; generateContentStream -> async iterable; countTokens; computeTokens (Vertex); embedContent({ model, contents, config: { taskType, outputDimensionality } }); models.list() (pager) / models.get({ model }); generateVideos (Veo LRO) + operations.getVideosOperation; generateImages (Imagen, retired on Gemini API)",258  "chats": "ai.chats.create({ model, history }) -> chat.sendMessage / sendMessageStream",259  "files": "ai.files.upload({ file: path | Blob, config: { mimeType, displayName } }); files.get / list / delete / download",260  "caches": "ai.caches.create({ model, config: { contents, systemInstruction, ttl } }); get / list / update / delete",261  "interactions": "ai.interactions.create({ model | agent, input, previous_interaction_id, background, store, stream, generation_config, tools }) -> interaction.output_text / .steps; interactions.get(id); SDK >= 1.33.0",262  "live": "const session = await ai.live.connect({ model, config: { responseModalities, speechConfig, sessionResumption: { handle }, contextWindowCompression }, callbacks: { onopen, onmessage, onerror, onclose } }); session.sendClientContent / sendRealtimeInput / sendToolResponse / close(); ai.authTokens.create(...) for ephemeral tokens; ai.live.music.connect for Lyria RealTime",263  "batches": "ai.batches.create({ model, src, config }) / get / list / cancel / delete",264  "file_search": "ai.fileSearchStores.create / uploadToFileSearchStore / importFile / documents.*",265  "errors": "ApiError { status, message } thrown for non-2xx; streaming errors surface when iterating",266  "function_calling": "functionDeclarations with JSON-schema parameters; toolConfig: { functionCallingConfig: { mode: 'ANY' | 'AUTO' | 'NONE', allowedFunctionNames } }; MCP via mcpToTool(client) (experimental)",267  "legacy": "@google/generative-ai (google-gemini/generative-ai-js) deprecated 2025-11-30 - not actively maintained; @google/generative_language and @google-cloud/vertexai are previous-generation SDKs",268  "_fragment": "generated/fragments/sdks/gemini-sdks.json"269 },270 {271  "provider": "gemini",272  "language": "go",273  "package": "google.golang.org/genai",274  "version_seen": "not installed here",275  "install": "go get google.golang.org/genai",276  "client": "client, err := genai.NewClient(ctx, &genai.ClientConfig{APIKey: os.Getenv(\"GEMINI_API_KEY\"), Backend: genai.BackendGeminiAPI})  // Vertex: Project, Location, Backend: genai.BackendVertexAI",277  "status": [278   "DOCUMENTED"279  ],280  "source": "https://ai.google.dev/gemini-api/docs/libraries",281  "models": "client.Models.GenerateContent(ctx, model, genai.Text(...), config) / GenerateContentStream / CountTokens / EmbedContent / List(ctx, &genai.ListModelsConfig{}) (Items[].SupportedActions) / Get",282  "legacy": "github.com/google/generative-ai-go deprecated 2025-11-30",283  "_fragment": "generated/fragments/sdks/gemini-sdks.json"284 },285 {286  "provider": "gemini",287  "language": "java",288  "package": "com.google.genai:google-genai",289  "version_seen": "docs snippet pins 1.0.0 (Maven); current releases include the Interactions client com.google.genai.gaos.models.interactions.*",290  "install": "Maven dependency com.google.genai:google-genai",291  "client": "Client client = Client.builder().apiKey(\"...\").httpOptions(HttpOptions.builder().apiVersion(\"v1\").build()).build(); or new Client() reading GOOGLE_API_KEY/GEMINI_API_KEY; Vertex: .vertexAI(true).project().location()",292  "status": [293   "DOCUMENTED"294  ],295  "source": "https://ai.google.dev/gemini-api/docs/libraries",296  "models": "client.models.generateContent(model, contents, GenerateContentConfig) / generateContentStream / countTokens / embedContent; client.interactions.create(CreateInteractionRequestBody.of(CreateModelInteraction.builder().model(Model.of(\"gemini-3.8-flash\")).input(InteractionsInput.of(...)).generationConfig(GenerationConfig.builder().thinkingLevel(ThinkingLevel.LOW)).serviceTier(ServiceTier.FLEX)))",297  "legacy": "no legacy Google Java SDK existed",298  "_fragment": "generated/fragments/sdks/gemini-sdks.json"299 },300 {301  "provider": "gemini",302  "language": "csharp",303  "package": "Google.GenAI",304  "version_seen": "not installed here",305  "install": "dotnet add package Google.GenAI",306  "client": "new Client() / Client with apiKey; repo googleapis/dotnet-genai",307  "status": [308   "DOCUMENTED"309  ],310  "source": "https://ai.google.dev/gemini-api/docs/libraries",311  "_fragment": "generated/fragments/sdks/gemini-sdks.json"312 },313 {314  "provider": "gemini",315  "language": "rest",316  "package": "curl / any HTTP client",317  "version_seen": "v1beta (default in SDKs), v1 (stable), v1alpha (SDK-selectable, undocumented surface)",318  "install": "n/a",319  "client": "curl https://generativelanguage.googleapis.com/v1beta/models/gemini-3.8-flash:generateContent -H 'x-goog-api-key: $GEMINI_API_KEY' -H 'Content-Type: application/json' -d '{\"contents\":[{\"parts\":[{\"text\":\"...\"}]}]}' ; streaming: ...:streamGenerateContent?alt=sse ; Interactions: POST /v1beta/interactions ; Live: WSS wss://generativelanguage.googleapis.com/ws/google.ai.generativelanguage.v1beta.GenerativeService.BidiGenerateContent (key via query or ephemeral token) ; uploads: /upload/v1beta/files (resumable X-Goog-Upload-*) ; downloads: /download/v1beta/files/{name}:download?alt=media",320  "status": [321   "DOCUMENTED",322   "LIVE_VERIFIED"323  ],324  "source": "https://ai.google.dev/api",325  "_fragment": "generated/fragments/sdks/gemini-sdks.json"326 },327 {328  "provider": "gemini",329  "language": "openai-compatible",330  "package": "openai (Python 3.16.2 installed in .venv) / openai (Node)",331  "version_seen": "beta compatibility layer",332  "install": "pip install openai / npm install openai",333  "client": "OpenAI(api_key=GEMINI_API_KEY, base_url='https://generativelanguage.googleapis.com/v1beta/openai/')  # key MUST travel as Authorization: Bearer",334  "status": [335   "DOCUMENTED",336   "LIVE_VERIFIED"337  ],338  "source": "https://ai.google.dev/gemini-api/docs/openai",339  "supports": "chat.completions (streaming, function calling/tools, image_url, input_audio, response_format JSON schema via beta.chat.completions.parse, reasoning_effort -> thinking_level/budget, service_tier flex|priority, n, stream_options.include_usage, extra_body.google.{thinking_config,cached_content}); embeddings; images.generate (gemini-2.5-flash-image, gemini-3-pro-image-preview; n, size, response_format, extra_body aspect_ratio/generation_config/safety_settings/tools); videos.create/retrieve (veo-3.1-generate-preview; Sora-style LRO); batches.create/retrieve (files must be uploaded/downloaded with the genai SDK); models.list / models.retrieve. Responses API, audio.speech, audio.transcriptions, files, fine-tuning, moderations: not documented",340  "live_2026_09_19": "chat.completions gemini-3.5-flash-lite -> 200 {choices[0].message.content:'OK.', extra_content.google.thought_signature, finish_reason:'stop', usage:{prompt_tokens:5,completion_tokens:2,total_tokens:7}}; GET /openai/models -> 58 ids (object 'list', ids prefixed 'models/'); GET /openai/models/gemini-3.8-flash -> {id:'models/gemini-3.8-flash', object:'model', owned_by:'google', display_name}",341  "_fragment": "generated/fragments/sdks/gemini-sdks.json"342 },343 {344  "provider": "gemini",345  "language": "apps-script / firebase / other",346  "package": "Firebase AI Logic (Web, iOS, Android, Flutter), Genkit (Dart/JS/Go), Vercel AI SDK, LangGraph, CrewAI, LlamaIndex, Temporal examples",347  "version_seen": "n/a",348  "install": "see framework docs",349  "client": "Client-side mobile/web apps should use Firebase AI Logic (App Check, no exposed key) rather than the raw key; docs pages: vercel-ai-sdk-example, langgraph-example, crewai-example, llama-index, temporal-example",350  "status": [351   "DOCUMENTED"352  ],353  "source": "https://ai.google.dev/gemini-api/docs/libraries",354  "_fragment": "generated/fragments/sdks/gemini-sdks.json"355 },356 {357  "provider": "openai",358  "language": "python",359  "package": "openai (PyPI)",360  "repo": "https://github.com/openai/openai-python",361  "version_seen": "3.16.2 (installed in .venv; pyproject in sources/openai/openapi/python-sdk-pyproject.toml)",362  "admin_api_support_since": "2.34.0",363  "requires": "Python >= 3.9; httpx, pydantic v2",364  "install": "pip install openai   # or: uv pip install openai",365  "client": "from openai import OpenAI\nclient = OpenAI()  # reads OPENAI_API_KEY; optional: api_key=, admin_api_key= (OPENAI_ADMIN_KEY), organization= (OPENAI_ORG_ID), project= (OPENAI_PROJECT_ID), webhook_secret= (OPENAI_WEBHOOK_SECRET), workload_identity=, base_url= (OPENAI_BASE_URL), timeout=, max_retries=, default_headers=, http_client=",366  "async": "from openai import AsyncOpenAI\nclient = AsyncOpenAI(); resp = await client.responses.create(...)  # every resource has an async twin; async streams use `async for`/`async with`",367  "streaming": "stream = client.responses.create(..., stream=True); for event in stream: ...  |  helper: with client.responses.stream(...) as s: for event in s: ...; s.get_final_response()  |  chat: client.chat.completions.stream(...) ; beta.chat.completions.parse for structured outputs",368  "retries": {369   "default_max_retries": 2,370   "retried_statuses": [371    "408",372    "409",373    "429",374    ">=500",375    "connection errors"376   ],377   "backoff": "exponential from INITIAL_RETRY_DELAY=0.5 s to MAX_RETRY_DELAY=8 s with jitter; honours `retry-after-ms` then `Retry-After` (seconds or HTTP-date) if <= 60 s; `x-should-retry: true|false` header overrides",378   "configure": "OpenAI(max_retries=5) or client.with_options(max_retries=0).responses.create(...)"379  },380  "timeouts": {381   "default": "httpx.Timeout(timeout=600, connect=5.0) — 10 min total, 5 s connect",382   "configure": "OpenAI(timeout=20.0) or with_options(timeout=httpx.Timeout(60.0, read=5.0, write=10.0, connect=2.0)); APITimeoutError raised on expiry (retried by default)"383  },384  "raw_response": "resp = client.responses.with_raw_response.create(...); resp.headers['x-request-id']; parsed = resp.parse()   |  streaming body: client.files.with_streaming_response.content(id)",385  "request_id": "response._request_id (set from the x-request-id header on every parsed object); on errors: e.request_id",386  "pagination": "Auto-iterate: for job in client.fine_tuning.jobs.list(limit=20): ...  (SyncPage/SyncCursorPage/SyncConversationCursorPage/SyncNextCursorPage; .has_next_page(), .get_next_page(), .iter_pages()); async: async for x in client....list()",387  "types": "Pydantic models under openai.types.* (e.g. openai.types.responses.Response); request params as TypedDicts (openai.types.*_params); `model_dump()` / `.to_dict()`; NotGiven sentinel `openai.NOT_GIVEN`",388  "errors": "openai.APIError base; APIStatusError subclasses: BadRequestError(400), AuthenticationError(401), PermissionDeniedError(403), NotFoundError(404), ConflictError(409), UnprocessableEntityError(422), RateLimitError(429), InternalServerError(>=500 incl. 503); APIConnectionError, APITimeoutError; InvalidWebhookSignatureError. Attributes: .status_code, .code, .param, .type, .body, .request_id, .response",389  "webhooks": "client.webhooks.unwrap(payload: str|bytes, headers, *, secret=None) -> typed UnwrapWebhookEvent (raises InvalidWebhookSignatureError); client.webhooks.verify_signature(payload, headers, *, secret=None, tolerance=300); webhook endpoints CRUD: client.webhooks.create/retrieve/update/list/delete/rotate_secret/test, client.webhooks.event_types.list()",390  "admin": "client = OpenAI(admin_api_key=os.environ['OPENAI_ADMIN_KEY']); client.admin.organization.{users,invites,projects,audit_logs,admin_api_keys,usage,roles,groups,spend_limit,spend_alerts,data_retention,certificates}... and client.admin.organization.projects.{api_keys,service_accounts,users,groups,rate_limits,model_permissions,hosted_tool_permissions,spend_alerts,spend_limit,data_retention,certificates}",391  "azure": "from openai import AzureOpenAI, AsyncAzureOpenAI — AzureOpenAI(api_version=..., azure_endpoint=..., api_key= or azure_ad_token_provider=); same resource surface with deployment names as `model`",392  "realtime": "client.realtime.connect(model=...) / AsyncOpenAI().realtime.connect(...) websocket context manager (async with ... as conn: await conn.session.update(...); async for event in conn)",393  "agents_sdk": "Separate package `openai-agents` (https://github.com/openai/openai-agents-python) for code-first orchestration (agents, tools, handoffs, guardrails, tracing)",394  "logging": "OPENAI_LOG=debug|info env var",395  "docs_url": "https://developers.openai.com/api/docs/libraries#install-an-official-sdk",396  "status": [397   "DOCUMENTED",398   "LIVE_VERIFIED"399  ],400  "verification": {401   "method": "sdk_types",402   "verified_at": "2026-09-18",403   "result": "success",404   "request_note": "constants read from installed openai 3.16.2 (_constants.py, _client.py, lib/_webhooks.py); webhooks.unwrap exercised offline in examples/openai/webhooks/offline_test.py"405  },406  "sources": [407   {408    "url": "https://developers.openai.com/api/docs/libraries",409    "retrieved_at": "2026-09-19T01:31:00Z"410   },411   {412    "url": "https://developers.openai.com/api/docs/guides/admin-apis",413    "retrieved_at": "2026-09-19T01:31:00Z"414   },415   {416    "url": "https://github.com/openai/openai-python",417    "retrieved_at": "2026-09-18"418   }419  ],420  "_fragment": "generated/fragments/sdks/openai-sdks.json"421 },422 {423  "provider": "openai",424  "language": "typescript/javascript",425  "package": "openai (npm)",426  "repo": "https://github.com/openai/openai-node",427  "version_seen": "7.18.0 installed in node_modules; 7.19.0 in sources/openai/openapi/node-sdk-package.json",428  "admin_api_support_since": "6.36.0",429  "requires": "Node >= 22 (engines), also Deno, Bun, Cloudflare Workers, Vercel Edge, browsers (dangerouslyAllowBrowser: true)",430  "install": "npm install openai   # pnpm add openai / yarn add openai / deno add jsr:@openai/openai",431  "client": "import OpenAI from 'openai';\nconst client = new OpenAI(); // reads OPENAI_API_KEY; options: apiKey, adminAPIKey (OPENAI_ADMIN_KEY), organization (OPENAI_ORG_ID), project (OPENAI_PROJECT_ID), webhookSecret (OPENAI_WEBHOOK_SECRET), workloadIdentity, baseURL (OPENAI_BASE_URL), timeout, maxRetries, defaultHeaders, defaultQuery, fetch, fetchOptions, logLevel, logger",432  "async": "All methods return Promises (APIPromise); no separate async client",433  "streaming": "const stream = await client.responses.create({..., stream: true}); for await (const event of stream) {...}  |  helpers: client.responses.stream({...}).on('response.output_text.delta', ...) ; await stream.finalResponse(); client.chat.completions.stream(...); stream.controller.abort()",434  "retries": {435   "default_max_retries": 2,436   "retried_statuses": [437    "408",438    "409",439    "429",440    ">=500",441    "connection errors"442   ],443   "backoff": "exponential with jitter (0.5 s .. 8 s), honours retry-after-ms / Retry-After when <= 60 s, x-should-retry header",444   "configure": "new OpenAI({ maxRetries: 0 }) or per request: client.responses.create({...}, { maxRetries: 5 })"445  },446  "timeouts": {447   "default": "600000 ms (10 minutes) — OpenAI.DEFAULT_TIMEOUT",448   "configure": "new OpenAI({ timeout: 20 * 1000 }) or per request { timeout: 5000 }; throws APIConnectionTimeoutError (retried by default)"449  },450  "raw_response": "const { data, response } = await client.responses.create({...}).withResponse(); response.headers.get('x-request-id')  |  const raw = await client.responses.create({...}).asResponse()  (fetch Response)",451  "request_id": "result._request_id (from x-request-id) on every top-level response object; error.requestID on APIError",452  "pagination": "for await (const job of client.fineTuning.jobs.list({ limit: 20 })) {...}  |  manual: let page = await client....list(); while (page.hasNextPage()) { page = await page.getNextPage(); }",453  "types": "TypeScript types exported from 'openai/resources/*' (e.g. import type { Response } from 'openai/resources/responses'); zodResponseFormat / zodTextFormat helpers in 'openai/helpers/zod'",454  "errors": "OpenAI.APIError base with .status, .code, .type, .param, .error, .requestID, .headers; subclasses BadRequestError(400) AuthenticationError(401) PermissionDeniedError(403) NotFoundError(404) ConflictError(409) UnprocessableEntityError(422) RateLimitError(429) InternalServerError(>=500) APIConnectionError APIConnectionTimeoutError APIUserAbortError InvalidWebhookSignatureError",455  "webhooks": "await client.webhooks.unwrap(rawBody: string, headers, secret?, tolerance = 300) -> typed event (throws OpenAI.InvalidWebhookSignatureError); await client.webhooks.verifySignature(rawBody, headers, secret?, tolerance?); endpoints: client.webhooks.create/retrieve/update/list/delete/rotateSecret/test; client.webhooks.eventTypes.list()",456  "admin": "const client = new OpenAI({ adminAPIKey: process.env.OPENAI_ADMIN_KEY }); client.admin.organization.users.list(), .invites.create(), .projects.modelPermissions.update(id, {...}), .spendAlerts.create(...), .dataRetention.update(...), .auditLogs.list({ limit: 10 }), .usage.completions({ start_time }), .usage.costs({ start_time })",457  "azure": "import { AzureOpenAI } from 'openai'; new AzureOpenAI({ apiVersion, endpoint, azureADTokenProvider? }) ; also 'openai/bedrock' shim present in the package",458  "realtime": "import { OpenAIRealtimeWebSocket } from 'openai/realtime/websocket' (server) / OpenAIRealtimeWS ('openai/realtime/ws'); browser WebRTC via ephemeral client secrets",459  "agents_sdk": "Separate package `@openai/agents` (https://github.com/openai/openai-agents-js)",460  "logging": "logLevel: 'debug' option or OPENAI_LOG=debug",461  "docs_url": "https://developers.openai.com/api/docs/libraries#install-an-official-sdk",462  "status": [463   "DOCUMENTED",464   "LIVE_VERIFIED"465  ],466  "verification": {467   "method": "sdk_types",468   "verified_at": "2026-09-18",469   "result": "success",470   "request_note": "constants read from node_modules/openai/client.js (DEFAULT_TIMEOUT=600000, maxRetries=2); webhooks.unwrap exercised offline in examples/openai/webhooks/offline_test.ts"471  },472  "sources": [473   {474    "url": "https://developers.openai.com/api/docs/libraries",475    "retrieved_at": "2026-09-19T01:31:00Z"476   },477   {478    "url": "https://github.com/openai/openai-node",479    "retrieved_at": "2026-09-18"480   }481  ],482  "_fragment": "generated/fragments/sdks/openai-sdks.json"483 },484 {485  "provider": "openai",486  "language": "csharp/.net",487  "package": "OpenAI (NuGet)",488  "repo": "https://github.com/openai/openai-dotnet",489  "version_seen": "not pinned in docs (current 2.x line); API surface uses OPENAI001 experimental attribute for Responses",490  "install": "dotnet add package OpenAI",491  "client": "using OpenAI.Responses; ResponsesClient client = new(Environment.GetEnvironmentVariable(\"OPENAI_API_KEY\")!); ResponseResult r = await client.CreateResponseAsync(\"gpt-6-astra\", \"Say hi\");",492  "async": "Async/await APIs (…Async) plus sync twins",493  "streaming": "CreateResponseStreamingAsync(...) returns IAsyncEnumerable<StreamingResponseUpdate>",494  "retries": {495   "default_max_retries": "3 (System.ClientModel pipeline default)",496   "configure": "OpenAIClientOptions.RetryPolicy"497  },498  "timeouts": {499   "default": "System.ClientModel network timeout (100 s default) — set OpenAIClientOptions.NetworkTimeout"500  },501  "raw_response": "ClientResult.GetRawResponse()",502  "request_id": "raw response headers (x-request-id)",503  "pagination": "Collection results expose GetAllValues()/GetPages() patterns",504  "azure": "Azure.AI.OpenAI (Microsoft-maintained) wraps the same client",505  "admin": "Not documented in the admin-apis guide (no version listed)",506  "docs_url": "https://developers.openai.com/api/docs/libraries#install-an-official-sdk",507  "status": [508   "DOCUMENTED",509   "UNVERIFIED"510  ],511  "verification": {512   "method": "docs_only",513   "verified_at": "2026-09-18",514   "result": "not_tested"515  },516  "sources": [517   {518    "url": "https://developers.openai.com/api/docs/libraries",519    "retrieved_at": "2026-09-19T01:31:00Z"520   }521  ],522  "_fragment": "generated/fragments/sdks/openai-sdks.json"523 },524 {525  "provider": "openai",526  "language": "java",527  "package": "com.openai:openai-java (Maven Central)",528  "repo": "https://github.com/openai/openai-java",529  "version_seen": "4.65.0 (libraries page); admin APIs since 4.34.0; labelled beta on the libraries page",530  "install": "<dependency><groupId>com.openai</groupId><artifactId>openai-java</artifactId><version>4.65.0</version></dependency>",531  "client": "OpenAIClient client = OpenAIOkHttpClient.fromEnv(); // OPENAI_API_KEY, OPENAI_ORG_ID, OPENAI_PROJECT_ID; builder().apiKey(...).adminApiKey(...).build()",532  "async": "client.async() returns OpenAIClientAsync (CompletableFuture)",533  "streaming": "client.responses().createStreaming(params) -> StreamResponse<ResponseStreamEvent>",534  "retries": {535   "default_max_retries": 2,536   "configure": "OpenAIOkHttpClient.builder().maxRetries(n)"537  },538  "timeouts": {539   "default": "10 minutes",540   "configure": ".timeout(Duration)"541  },542  "raw_response": "client.responses().withRawResponse().create(params) -> HttpResponseFor<Response>",543  "request_id": "raw response headers",544  "pagination": "page.autoPager() / page.data(); AutoPager iterables",545  "errors": "OpenAIServiceException subclasses: BadRequestException, UnauthorizedException, PermissionDeniedException, NotFoundException, UnprocessableEntityException, RateLimitException(429), InternalServerException(>=500 incl. 503); OpenAIIoException",546  "admin": "client.admin().organization().projects().modelPermissions().update(\"proj_abc\", ModelPermissionUpdateParams...)",547  "azure": "Azure OpenAI client library for Java (Microsoft)",548  "docs_url": "https://developers.openai.com/api/docs/libraries#install-an-official-sdk",549  "status": [550   "DOCUMENTED",551   "BETA",552   "UNVERIFIED"553  ],554  "verification": {555   "method": "docs_only",556   "verified_at": "2026-09-18",557   "result": "not_tested"558  },559  "sources": [560   {561    "url": "https://developers.openai.com/api/docs/libraries",562    "retrieved_at": "2026-09-19T01:31:00Z"563   },564   {565    "url": "https://developers.openai.com/api/docs/guides/admin-apis",566    "retrieved_at": "2026-09-19T01:31:00Z"567   }568  ],569  "_fragment": "generated/fragments/sdks/openai-sdks.json"570 },571 {572  "provider": "openai",573  "language": "go",574  "package": "github.com/openai/openai-go/v3",575  "repo": "https://github.com/openai/openai-go",576  "version_seen": "v3 module (admin APIs since 3.34.0); labelled beta on the libraries page",577  "install": "go get github.com/openai/openai-go/v3",578  "client": "client := openai.NewClient() // OPENAI_API_KEY; option.WithAPIKey(...), option.WithAdminAPIKey(os.Getenv(\"OPENAI_ADMIN_KEY\")), option.WithOrganization, option.WithProject, option.WithBaseURL",579  "async": "context.Context based; goroutines",580  "streaming": "stream := client.Responses.NewStreaming(ctx, params); for stream.Next() { ev := stream.Current() }; stream.Err()",581  "retries": {582   "default_max_retries": 2,583   "configure": "option.WithMaxRetries(n)"584  },585  "timeouts": {586   "default": "none beyond context; option.WithRequestTimeout(d)"587  },588  "raw_response": "var res *http.Response; client.Responses.New(ctx, params, option.WithResponseInto(&res))",589  "request_id": "res.Header.Get(\"x-request-id\")",590  "pagination": "iter := client.FineTuning.Jobs.ListAutoPaging(ctx, params); for iter.Next() {...}",591  "errors": "var apiErr *openai.Error; errors.As(err, &apiErr); apiErr.StatusCode, apiErr.Code, apiErr.Type, apiErr.Param",592  "admin": "client.Admin.Organization.Projects.ModelPermissions.Update(ctx, \"proj_abc\", openai.AdminOrganizationProjectModelPermissionUpdateParams{...})",593  "azure": "azopenai (Microsoft) — github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai",594  "docs_url": "https://developers.openai.com/api/docs/libraries#install-an-official-sdk",595  "status": [596   "DOCUMENTED",597   "BETA",598   "UNVERIFIED"599  ],600  "verification": {601   "method": "docs_only",602   "verified_at": "2026-09-18",603   "result": "not_tested"604  },605  "sources": [606   {607    "url": "https://developers.openai.com/api/docs/libraries",608    "retrieved_at": "2026-09-19T01:31:00Z"609   },610   {611    "url": "https://developers.openai.com/api/docs/guides/admin-apis",612    "retrieved_at": "2026-09-19T01:31:00Z"613   }614  ],615  "_fragment": "generated/fragments/sdks/openai-sdks.json"616 },617 {618  "provider": "openai",619  "language": "ruby",620  "package": "openai (RubyGems)",621  "repo": "https://github.com/openai/openai-ruby",622  "version_seen": "admin APIs since 0.61.0 (admin-apis guide); version not pinned on libraries page",623  "install": "gem \"openai\"  (Gemfile) / gem install openai",624  "client": "openai = OpenAI::Client.new  # OPENAI_API_KEY; OpenAI::Client.new(api_key:, admin_api_key:, webhook_secret:, organization:, project:)",625  "async": "Synchronous; use threads/fibers",626  "streaming": "stream = openai.responses.stream(...); stream.each { |event| ... }",627  "retries": {628   "default_max_retries": 2,629   "configure": "OpenAI::Client.new(max_retries: n)"630  },631  "timeouts": {632   "default": "600 s",633   "configure": "OpenAI::Client.new(timeout: n)"634  },635  "raw_response": "openai.responses.create(..., request_options: {...}); response headers via with_raw_response equivalents",636  "request_id": "x-request-id header",637  "pagination": "page = openai.fine_tuning.jobs.list; page.auto_paging_each { |j| ... }",638  "errors": "OpenAI::Errors::APIError, ::APIStatusError subclasses (RateLimitError 429, InternalServerError 503), OpenAI::Errors::InvalidWebhookSignatureError",639  "webhooks": "client.webhooks.unwrap(request.body, headers) (webhook_secret on the client); event classes OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent ...",640  "data_residency": "client.with_options(data_residency: :us | :eu) selects us./eu.api.openai.com",641  "admin": "openai.admin.organization.invites.create(email:, role: :reader)",642  "docs_url": "https://developers.openai.com/api/docs/libraries#install-an-official-sdk",643  "status": [644   "DOCUMENTED",645   "UNVERIFIED"646  ],647  "verification": {648   "method": "docs_only",649   "verified_at": "2026-09-18",650   "result": "not_tested"651  },652  "sources": [653   {654    "url": "https://developers.openai.com/api/docs/libraries",655    "retrieved_at": "2026-09-19T01:31:00Z"656   },657   {658    "url": "https://developers.openai.com/api/docs/guides/your-data",659    "retrieved_at": "2026-09-19T01:31:00Z"660   }661  ],662  "_fragment": "generated/fragments/sdks/openai-sdks.json"663 },664 {665  "provider": "openai",666  "language": "cli",667  "package": "openai CLI (Homebrew tap openai/tools/openai)",668  "repo": "https://developers.openai.com/api/docs/libraries/openai-cli",669  "version_seen": "not pinned",670  "install": "brew install openai/tools/openai",671  "client": "openai responses create --model gpt-6-astra --input \"...\" --raw-output --transform 'output.#(type==\"message\").content.0.text'",672  "status": [673   "DOCUMENTED",674   "UNVERIFIED"675  ],676  "verification": {677   "method": "docs_only",678   "verified_at": "2026-09-18",679   "result": "not_tested"680  },681  "docs_url": "https://developers.openai.com/api/docs/libraries/openai-cli",682  "sources": [683   {684    "url": "https://developers.openai.com/api/docs/libraries",685    "retrieved_at": "2026-09-19T01:31:00Z"686   }687  ],688  "_fragment": "generated/fragments/sdks/openai-sdks.json"689 },690 {691  "provider": "openai",692  "language": "agents-sdk",693  "package": "openai-agents (PyPI) / @openai/agents (npm)",694  "repo": "https://github.com/openai/openai-agents-python ; https://github.com/openai/openai-agents-js",695  "version_seen": "not pinned in the libraries page",696  "install": "pip install openai-agents  |  npm install @openai/agents",697  "client": "Code-first orchestration on top of the Responses API: agents, tools, handoffs, guardrails, tracing, sandbox execution. Use when you need orchestration; use the plain SDK for direct requests.",698  "status": [699   "DOCUMENTED",700   "UNVERIFIED"701  ],702  "verification": {703   "method": "docs_only",704   "verified_at": "2026-09-18",705   "result": "not_tested"706  },707  "docs_url": "https://developers.openai.com/api/docs/guides/agents/quickstart",708  "sources": [709   {710    "url": "https://developers.openai.com/api/docs/libraries#use-the-agents-sdk",711    "retrieved_at": "2026-09-19T01:31:00Z"712   }713  ],714  "_fragment": "generated/fragments/sdks/openai-sdks.json"715 },716 {717  "provider": "openai",718  "language": "azure-libraries",719  "package": "Azure.AI.OpenAI (.NET), @azure/openai (JS), azure-ai-openai (Java), azopenai (Go)",720  "repo": "https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/openai/Azure.AI.OpenAI",721  "version_seen": "not pinned",722  "install": "see each Azure SDK repo",723  "client": "Microsoft-maintained libraries compatible with both the OpenAI API and Azure OpenAI; the official openai Python/Node SDKs also ship AzureOpenAI classes.",724  "status": [725   "DOCUMENTED",726   "UNVERIFIED"727  ],728  "verification": {729   "method": "docs_only",730   "verified_at": "2026-09-18",731   "result": "not_tested"732  },733  "docs_url": "https://developers.openai.com/api/docs/libraries#azure-openai-libraries",734  "sources": [735   {736    "url": "https://developers.openai.com/api/docs/libraries",737    "retrieved_at": "2026-09-19T01:31:00Z"738   }739  ],740  "_fragment": "generated/fragments/sdks/openai-sdks.json"741 },742 {743  "provider": "xai",744  "language": "python",745  "package": "xai-sdk",746  "official": true,747  "transport": "gRPC (api.x.ai:443) - NOT REST",748  "version_seen": "1.19.0 (installed in .venv; PyPI xai-sdk; Apache-2.0; Python >= 3.10)",749  "install": "pip install xai-sdk  # extras: xai-sdk[telemetry-http], xai-sdk[telemetry-grpc]",750  "dependencies": [751   "grpcio >=1.72.1,<2",752   "protobuf >=5.29.4,<7",753   "googleapis-common-protos",754   "pydantic >=2.5.3,<3",755   "requests",756   "aiohttp",757   "opentelemetry-sdk",758   "typing-extensions"759  ],760  "client": "from xai_sdk import Client, AsyncClient; client = Client()  # reads XAI_API_KEY; Client(api_key=..., management_api_key=..., api_host='api.x.ai' | 'us.api.x.ai', management_api_host='management-api.x.ai', metadata=(...), channel_options=[...], timeout=1620.0)",761  "status": [762   "DOCUMENTED",763   "LIVE_VERIFIED"764  ],765  "source": "https://docs.x.ai/developers/grpc-api-reference",766  "surfaces": {767   "chat": "client.chat.create(model, messages=[system(...), user(...)], tools=[web_search(), x_search(), code_execution(), ...], reasoning_effort=..., service_tier=...) -> chat.sample() / chat.stream() (yields (response, chunk)) / chat.defer() / chat.parse(PydanticModel); response.content, response.reasoning_content, response.usage (incl. cost_in_usd_ticks), response.cost_usd, response.server_side_tool_usage, response.tool_calls; chat.append(response)",768   "image": "client.image.sample(prompt, model='grok-imagine-image-2.0', quality='low', ...) -> .url / .image / .cost_usd",769   "video": "client.video.generate(model='grok-imagine-video-1.5', prompt=...) (async polling) / extend",770   "models": "client.models.list_language_models() / get_language_model(id) / list_image_generation_models() / list_embedding_models()",771   "auth": "client.auth.get_api_key_info() -> ApiKey (redacted_api_key, acls, team_id, blocked/disabled)",772   "tokenizer": "client.tokenizer.tokenize_text(text, model)",773   "batch": "client.batch.* (BatchMgmt service)",774   "files": "client.files.upload/list/retrieve/delete/public urls",775   "collections": "client.collections.* (Documents.Search)",776   "compaction": "chat.compact()/CompactContext",777   "telemetry": "OpenTelemetry tracing built in (xai_sdk.telemetry)"778  },779  "grpc_metadata_added": [780   "xai-sdk-version: python/<ver>",781   "xai-sdk-language: python/<major.minor>"782  ],783  "retries_timeouts": "default RPC timeout 27 min (1620 s); grpc keepalive options set; errors are grpc.RpcError (e.code() == grpc.StatusCode.RESOURCE_EXHAUSTED for 429)",784  "limitations": [785   "code_interpreter and file_search tool aliases are NOT supported in gRPC (use code_execution / collections_search)",786   "no cost_in_usd_ticks shortfall: SDK exposes response.cost_usd",787   "regional endpoint passed as bare host: api_host='us.api.x.ai'"788  ],789  "notes": "Also supports sync (xai_sdk.sync) and async (xai_sdk.aio) modules; proto stubs shipped in xai_sdk/proto/v5 and v6 (services: Auth, BatchMgmt, Chat, Documents, Embedder, Files, Image, Models, Sample, Tokenize, Video). Protos published at github.com/xai-org/xai-proto.",790  "_fragment": "generated/fragments/sdks/xai-sdks.json"791 },792 {793  "provider": "xai",794  "language": "python",795  "package": "openai",796  "official": false,797  "compatibility": "OpenAI-compatible REST surface",798  "version_seen": "docs examples (customLanguage=pythonOpenAISDK)",799  "install": "pip install openai",800  "client": "from openai import OpenAI; client = OpenAI(api_key=os.getenv('XAI_API_KEY'), base_url='https://api.x.ai/v1')  # or https://us.api.x.ai/v1",801  "status": [802   "DOCUMENTED",803   "LIVE_VERIFIED"804  ],805  "source": "https://docs.x.ai/developers/quickstart",806  "surfaces": {807   "chat.completions.create": "model, messages, reasoning_effort, stream + stream_options={include_usage:true} (cost only in final chunk), service_tier, extra_headers={'x-grok-conv-id': ...}",808   "responses.create": "model, input, tools=[{type:'web_search'},{type:'x_search'},{type:'code_interpreter'}], reasoning={effort}, prompt_cache_key, include=['reasoning.encrypted_content'], store, previous_response_id",809   "images.generate": "model='grok-imagine-image-2.0', extra_body={'quality':'low'} (Node SDK accepts quality directly)",810   "models.list": "GET /v1/models works",811   "usage extras": "completion.usage.cost_in_usd_ticks, num_sources_used, reasoning_tokens exposed as extra fields"812  },813  "limitations": [814   "xAI-only fields (quality, prompt_cache_key on chat, x-grok-conv-id) go through extra_body / extra_headers",815   "videos, voice, files public URLs, collections, tokenize-text, /v1/me have no OpenAI-SDK method -> raw HTTP"816  ],817  "notes": "This atlas's live calls used raw HTTPS via scripts/live.py xai_request (same wire format).",818  "_fragment": "generated/fragments/sdks/xai-sdks.json"819 },820 {821  "provider": "xai",822  "language": "typescript",823  "package": "openai (Node)",824  "official": false,825  "compatibility": "OpenAI-compatible REST surface",826  "version_seen": "node_modules/openai 7.18.0 installed (no official xAI Node SDK exists)",827  "install": "npm install openai",828  "client": "new OpenAI({ apiKey: process.env.XAI_API_KEY, baseURL: 'https://api.x.ai/v1' })",829  "status": [830   "DOCUMENTED"831  ],832  "source": "https://docs.x.ai/developers/quickstart",833  "surfaces": {834   "chat.completions.create / responses.create / images.generate": "as documented (customLanguage=javascriptOpenAISDK); usage.cost_in_usd_ticks available"835  },836  "limitations": [837   "same gaps as the Python OpenAI client"838  ],839  "notes": "Not executed by this agent.",840  "_fragment": "generated/fragments/sdks/xai-sdks.json"841 },842 {843  "provider": "xai",844  "language": "typescript",845  "package": "@ai-sdk/xai (Vercel AI SDK provider)",846  "official": "maintained by Vercel; featured throughout docs.x.ai (customLanguage=javascriptAISDK)",847  "version_seen": "not installed",848  "install": "npm install ai @ai-sdk/xai",849  "client": "import { xai, createXai } from '@ai-sdk/xai'; createXai({ apiKey, baseURL: 'https://us.api.x.ai/v1' }); generateText({ model: xai.responses('grok-4.6'), prompt })  // xai('grok-4.6') = chat completions, xai.responses() = Responses API",850  "status": [851   "DOCUMENTED"852  ],853  "source": "https://docs.x.ai/developers/grok-4-6",854  "limitations": [855   "does not surface cost_in_usd_ticks in response metadata (docs note)",856   "encrypted reasoning content auto-included unless store:false"857  ],858  "notes": "Also Vercel AI Gateway lists Grok models.",859  "_fragment": "generated/fragments/sdks/xai-sdks.json"860 },861 {862  "provider": "xai",863  "language": "any (Anthropic-compatible)",864  "package": "anthropic SDKs via base_url",865  "official": false,866  "compatibility": "POST /v1/messages and legacy POST /v1/complete are 'compatible with the Anthropic API'",867  "version_seen": "n/a",868  "install": "pip install anthropic",869  "client": "Anthropic(base_url='https://api.x.ai', api_key=XAI_API_KEY) - auth: xAI expects Authorization: Bearer; x-api-key acceptance not verified by this agent",870  "status": [871   "DOCUMENTED",872   "UNVERIFIED"873  ],874  "source": "https://docs.x.ai/developers/rest-api-reference/inference/legacy",875  "notes": "Covered by docs/xai/messages-compat.md (another agent).",876  "_fragment": "generated/fragments/sdks/xai-sdks.json"877 },878 {879  "provider": "xai",880  "language": "python / typescript",881  "package": "langchain-xai / @langchain/xai",882  "official": false,883  "compatibility": "community integration announced Nov 2024",884  "install": "pip install langchain-xai | npm i @langchain/xai",885  "client": "ChatXAI(model='grok-4.6')",886  "status": [887   "DOCUMENTED"888  ],889  "source": "https://docs.x.ai/developers/release-notes",890  "notes": "https://python.langchain.com/integrations/providers/xai/ , https://js.langchain.com/integrations/chat/xai/",891  "_fragment": "generated/fragments/sdks/xai-sdks.json"892 },893 {894  "provider": "xai",895  "language": "cli",896  "package": "Grok Build CLI",897  "official": true,898  "install": "curl -fsSL https://x.ai/cli/install.sh | bash",899  "client": "interactive TUI, headless scripting, Agent Client Protocol; default model grok-4.6 (grok-build-0.1 for coding agent)",900  "status": [901   "DOCUMENTED",902   "BETA"903  ],904  "source": "https://docs.x.ai/build/overview",905  "notes": "Privacy: /privacy and /settings slash commands; ZDR honoured.",906  "_fragment": "generated/fragments/sdks/xai-sdks.json"907 },908 {909  "provider": "xai",910  "language": "protobuf / any gRPC",911  "package": "xai-org/xai-proto + buf curl",912  "official": true,913  "install": "git clone https://github.com/xai-org/xai-proto.git; buf curl --protocol grpc https://api.x.ai/xai_api.Models/ListLanguageModels -H 'Authorization: Bearer $XAI_API_KEY'",914  "client": "services xai_api.{Chat,Image,Video,BatchMgmt,Models,Auth,Tokenize,Sample} (+ Files, Documents, Embedder in the SDK stubs)",915  "status": [916   "DOCUMENTED"917  ],918  "source": "https://docs.x.ai/developers/grpc-api-reference",919  "notes": "gRPC reference pages on docs.x.ai are rendered client-side (llms-full.txt and the .md twins are empty stubs); method list taken from xai_sdk/proto/v6 stubs - see docs/xai/grpc-api.md.",920  "_fragment": "generated/fragments/sdks/xai-sdks.json"921 },922 {923  "provider": "xai",924  "language": "cloud",925  "package": "Google Cloud Vertex AI (Model Garden partner model) / Microsoft Foundry (Azure)",926  "official": "partner",927  "install": "enable in Model Garden / Foundry catalog",928  "client": "OpenAI-compatible endpoints (Chat Completions + Responses) with cloud IAM; billing through GCP / Azure Marketplace",929  "status": [930   "DOCUMENTED"931  ],932  "source": "https://docs.x.ai/developers/community/google-cloud-vertex-ai",933  "notes": "Also https://docs.x.ai/developers/community/microsoft-foundry; model availability and retention terms are set by the cloud.",934  "_fragment": "generated/fragments/sdks/xai-sdks.json"935 }936]