{"id":"b230fc17-2744-4e83-abc9-65db30b98d10","entityType":"agent","slug":"clawhub-runapi-ai-runapi-claude","name":"claude","canonicalUrl":"https://www.xpersona.co/agent/clawhub-runapi-ai-runapi-claude","canonicalPath":"/agent/clawhub-runapi-ai-runapi-claude","generatedAt":"2026-10-10T07:44:41.497Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T01:44:32.646Z","emptyReason":null},"description":"Call Claude models through RunAPI using the Anthropic Messages protocol. Use for Claude chat, streaming, vision, tools, reasoning, token counting, or an existing compatibility client that needs the conditional reference.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.8K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s1771k6pjxksnjws51x2htfjvd876syh:runapi-claude","sourceUrl":"https://clawhub.ai/runapi-ai/runapi-claude","homepage":"https://clawhub.ai/runapi-ai/skills/runapi-claude","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/runapi-ai/runapi-claude","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/runapi-ai/skills/runapi-claude","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":65,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"claude technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T01:44:32.646Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T01:44:32.646Z","emptyReason":null},"stars":null,"forks":null,"downloads":1798,"packageName":null,"latestVersion":"0.2.17","tractionLabel":"1.8K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T01:44:32.645Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T01:44:32.646Z","lastCrawledAt":"2026-10-10T01:44:32.645Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T01:44:32.646Z","lastVerifiedAt":null,"highlights":[{"version":"0.2.17","createdAt":"2026-09-30T12:15:26.518Z","changelog":"## Changed - The supported model table now describes claude-opus-5-5 as the Claude model for long-running agentic coding and knowledge work.","fileCount":4,"zipByteSize":3584},{"version":"0.2.16","createdAt":"2026-09-29T09:03:13.450Z","changelog":"## Added - claude-opus-5-5 is listed among the supported Claude models and accepts Anthropic Messages, OpenAI Chat Completions, OpenAI Responses, and Gemini contents like the other current Claude models.","fileCount":4,"zipByteSize":3566},{"version":"0.2.15","createdAt":"2026-09-04T11:32:23.144Z","changelog":"## Added - Add claude-fable-5-1 to the supported model list.","fileCount":4,"zipByteSize":3661},{"version":"0.2.14","createdAt":"2026-08-12T06:25:43.226Z","changelog":"## Changed - Document Claude authentication, request, result verification, and stop boundaries in the primary recipe, with compatibility protocols loaded only when required.","fileCount":4,"zipByteSize":3681},{"version":"0.2.13","createdAt":"2026-08-10T14:13:30.239Z","changelog":"## Changed - Complete marketplace distribution for the RunAPI Claude skill.","fileCount":3,"zipByteSize":4708},{"version":"0.2.12","createdAt":"2026-07-28T04:45:33.214Z","changelog":"## Added - List claude-opus-5 in the model table so the skill surfaces the latest Opus tier.","fileCount":3,"zipByteSize":4906},{"version":"0.2.11","createdAt":"2026-07-18T14:32:13.745Z","changelog":"## Changed - Remove the retired Claude 4 launch model IDs from the supported-model tables. - Keep the currently serviceable Claude model roster unchanged.","fileCount":3,"zipByteSize":4719},{"version":"0.2.10","createdAt":"2026-07-08T04:42:14.208Z","changelog":"## Changed - Publish the Claude skill v0.2.10 release with refreshed RunAPI routing metadata.","fileCount":3,"zipByteSize":4873}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s1771k6pjxksnjws51x2htfjvd876syh:runapi-claude","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s1771k6pjxksnjws51x2htfjvd876syh:runapi-claude` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/runapi-ai/runapi-claude before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-runapi-ai-runapi-claude/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-runapi-ai-runapi-claude/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-runapi-ai-runapi-claude/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-runapi-ai-runapi-claude/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-runapi-ai-runapi-claude/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-runapi-ai-runapi-claude/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T07:44:41.493Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-runapi-ai-runapi-claude/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-runapi-ai-runapi-claude/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-runapi-ai-runapi-claude/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-runapi-ai-runapi-claude/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T01:44:32.646Z","emptyReason":null},"readme":"Skill: claude\n\nOwner: runapi-ai\n\nSummary: Call Claude models through RunAPI using the Anthropic Messages protocol. Use for Claude chat, streaming, vision, tools, reasoning, token counting, or an existing compatibility client that needs the conditional reference.\n\nTags: latest:0.2.17\n\nVersion history:\n\nv0.2.17 | 2026-09-30T12:15:26.518Z | user\n\n## Changed\n- The supported model table now describes claude-opus-5-5 as the Claude model for long-running agentic coding and knowledge work.\n\nv0.2.16 | 2026-09-29T09:03:13.450Z | user\n\n## Added\n- claude-opus-5-5 is listed among the supported Claude models and accepts Anthropic Messages, OpenAI Chat Completions, OpenAI Responses, and Gemini contents like the other current Claude models.\n\nv0.2.15 | 2026-09-04T11:32:23.144Z | user\n\n## Added\n- Add claude-fable-5-1 to the supported model list.\n\nv0.2.14 | 2026-08-12T06:25:43.226Z | user\n\n## Changed\n- Document Claude authentication, request, result verification, and stop boundaries in the primary recipe, with compatibility protocols loaded only when required.\n\nv0.2.13 | 2026-08-10T14:13:30.239Z | user\n\n## Changed\n- Complete marketplace distribution for the RunAPI Claude skill.\n\nv0.2.12 | 2026-07-28T04:45:33.214Z | user\n\n## Added\n- List claude-opus-5 in the model table so the skill surfaces the latest Opus tier.\n\nv0.2.11 | 2026-07-18T14:32:13.745Z | user\n\n## Changed\n- Remove the retired Claude 4 launch model IDs from the supported-model tables.\n- Keep the currently serviceable Claude model roster unchanged.\n\nv0.2.10 | 2026-07-08T04:42:14.208Z | user\n\n## Changed\n- Publish the Claude skill v0.2.10 release with refreshed RunAPI routing metadata.\n\nv0.2.9 | 2026-07-02T08:42:12.990Z | user\n\n## Changed\n- Supported models table is now generated from the RunAPI catalog (the `/v1/models` source of truth).\n- Added `claude-fable-5` and the dated Claude 4 / 4.1 snapshots that are currently callable.\n\nv0.2.8 | 2026-06-24T09:35:46.690Z | user\n\n## Changed\n- Clarify Claude protocol compatibility across Anthropic, OpenAI-compatible, and Gemini contents clients.\n\nv0.2.4 | 2026-05-23T18:38:49.200Z | user\n\nAgent-facing CLI-first redesign\n\nArchive index:\n\nArchive v0.2.17: 4 files, 3584 bytes\n\nFiles: references/compatibility-protocols.md (835b), skill-card.md (2063b), SKILL.md (3314b), _meta.json (133b)\n\nFile v0.2.17:SKILL.md\n\n---\nname: claude\ndescription: Call Claude models through RunAPI using the Anthropic Messages protocol. Use for Claude chat, streaming, vision, tools, reasoning, token counting, or an existing compatibility client that needs the conditional reference.\ndocumentation: https://runapi.ai/models/claude.md\nprovider_page: https://runapi.ai/providers/anthropic.md\ncatalog: https://runapi.ai/models.md\nmetadata:\n  openclaw:\n    homepage: https://runapi.ai/models/claude\n    primaryEnv: ANTHROPIC_API_KEY\n    requires:\n      env: [ANTHROPIC_API_KEY, ANTHROPIC_BASE_URL]\n    envVars:\n    - {name: ANTHROPIC_API_KEY, required: true, description: RunAPI API key used by Anthropic-compatible clients.}\n    - {name: ANTHROPIC_BASE_URL, required: true, description: Set to https://runapi.ai for Claude on RunAPI.}\n---\n\n# Claude on RunAPI\n\nUse Anthropic Messages at `https://runapi.ai` with `POST /v1/messages` as the primary protocol.\n\n## Primary protocol recipe\n\n### Authenticate\n\nSet `ANTHROPIC_API_KEY` to a RunAPI API key and `ANTHROPIC_BASE_URL` to\n`https://runapi.ai`. The SDK sends `x-api-key`; Bearer authentication is also accepted.\n\n### Send request\n\n```python\nimport anthropic\nclient = anthropic.Anthropic(api_key=\"YOUR_RUNAPI_TOKEN\", base_url=\"https://runapi.ai\")\nmessage = client.messages.create(\n    model=\"claude-sonnet-5\",\n    max_tokens=1024,\n    messages=[{\"role\": \"user\", \"content\": \"Explain this decision.\"}],\n)\nprint(message.content[0].text)\nprint(message.usage)\n```\n\n`max_tokens` is required. For long output, use `client.messages.stream(...)`\nand consume `stream.text_stream` through the terminal event. Add image blocks,\nfunction tools, reasoning controls, or token counting only when the current\nRunAPI contract verifies them for the selected exact model.\n\n### Verify result\n\nRequire final text, `stop_reason`, and authoritative `usage`. A stream is\ncomplete only after terminal Usage and `message_stop`. Token counting estimates\ninput only; actual response Usage remains authoritative.\n\n### Stop boundaries\n\nCorrect a rejected shape once using the structured error. Retry transport once\nonly before any response or Usage and when replay is safe. Record a terminal\nerror and stop without changing model or protocol.\n\n## Compatibility protocols\n\nLoad [compatibility protocols](references/compatibility-protocols.md) only when an existing client requires OpenAI Chat/Responses or Gemini contents.\n\n## Supported models\n\n| Model ID | Use when |\n|---|---|\n| `claude-fable-5-1` | — |\n| `claude-fable-5` | Flagship state-of-the-art coding, reasoning, and vision |\n| `claude-sonnet-5` | Near-Opus coding at Sonnet cost |\n| `claude-opus-5` | Latest Opus frontier reasoning |\n| `claude-opus-4-8` | Strongest general model |\n| `claude-opus-4-7` | Previous Opus generation |\n| `claude-opus-4-6` | High-end reasoning |\n| `claude-sonnet-4-6` | Balanced reasoning and speed |\n| `claude-opus-4-5-20251101` | Dated Opus 4.5 snapshot |\n| `claude-sonnet-4-5-20250929` | Dated Sonnet 4.5 snapshot |\n| `claude-haiku-4-5-20251001` | Fastest lightweight snapshot |\n| `claude-opus-4-1-20250805` | Dated Opus 4.1 snapshot |\n| `claude-opus-5-5` | Long-running agentic coding and knowledge work |\n\n## References\n\n- <https://runapi.ai/models/claude.md>\n- <https://runapi.ai/providers/anthropic.md>\n- <https://runapi.ai/models.md>\n\nFile v0.2.17:_meta.json\n\n{\n  \"ownerId\": \"kn70me4rk7jqjt92evshjeb5z18768g7\",\n  \"slug\": \"runapi-claude\",\n  \"version\": \"0.2.17\",\n  \"publishedAt\": 1790770526518\n}\n\nFile v0.2.17:references/compatibility-protocols.md\n\n# Claude compatibility protocols\n\nLoad this reference only for an existing OpenAI or Gemini client. New Claude integrations use Anthropic Messages from the main skill.\n\nFor OpenAI clients, set the base URL to `https://runapi.ai/v1`, use a RunAPI\nkey, and call Chat Completions or Responses with a supported exact Claude model\nID. Verify `finish_reason` plus `usage` for Chat, or `response.completed` plus\n`usage` for Responses. SSE ends at `[DONE]`.\n\nFor Gemini contents, set `RUNAPI_MODEL` to a supported exact model ID and use\n`https://runapi.ai/v1beta/models/$RUNAPI_MODEL:generateContent`\nor `streamGenerateContent` with `x-goog-api-key`. Verify candidates,\n`finishReason`, and `usageMetadata`.\n\nApply one evidence-backed shape correction, at most one safe pre-response\ntransport retry, and no automatic model or protocol hopping.\n\nFile v0.2.17:skill-card.md\n\n## Description:\n\nGuides developers in using Claude models through RunAPI with the Anthropic Messages protocol and optional OpenAI or Gemini client compatibility.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[runapi-ai](https://clawhub.ai/user/runapi-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers use this skill to configure RunAPI credentials and call Claude models for chat, streaming, vision, tools, reasoning, and token counting. It also guides developers migrating existing OpenAI or Gemini clients.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Prompts sent through this integration go to RunAPI's service.\n\nMitigation: Use only when routing prompts to RunAPI is intended and permitted by your data-handling policy.\n\nRisk: Using this integration requires a RunAPI API key.\n\nMitigation: Provide the key through the documented environment variable and protect it as a credential.\n\n## Reference(s):\n\n- [Claude on RunAPI documentation](https://runapi.ai/models/claude.md)\n- [Claude on RunAPI model page](https://runapi.ai/models/claude)\n- [RunAPI Anthropic provider documentation](https://runapi.ai/providers/anthropic.md)\n- [RunAPI model catalog](https://runapi.ai/models.md)\n- [Compatibility protocols](references/compatibility-protocols.md)\n- [ClawHub skill release](https://clawhub.ai/runapi-ai/skills/runapi-claude)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Code, Configuration instructions, Guidance]\n\n**Output Format:** [Markdown with Python examples and configuration guidance]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Describes request verification and retry boundaries; no executable files are produced.]\n\n## Skill Version(s):\n\n0.2.17 (source: server-resolved release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v0.2.16: 4 files, 3566 bytes\n\nFiles: references/compatibility-protocols.md (835b), skill-card.md (2061b), SKILL.md (3271b), _meta.json (133b)\n\nFile v0.2.16:SKILL.md\n\n---\nname: claude\ndescription: Call Claude models through RunAPI using the Anthropic Messages protocol. Use for Claude chat, streaming, vision, tools, reasoning, token counting, or an existing compatibility client that needs the conditional reference.\ndocumentation: https://runapi.ai/models/claude.md\nprovider_page: https://runapi.ai/providers/anthropic.md\ncatalog: https://runapi.ai/models.md\nmetadata:\n  openclaw:\n    homepage: https://runapi.ai/models/claude\n    primaryEnv: ANTHROPIC_API_KEY\n    requires:\n      env: [ANTHROPIC_API_KEY, ANTHROPIC_BASE_URL]\n    envVars:\n    - {name: ANTHROPIC_API_KEY, required: true, description: RunAPI API key used by Anthropic-compatible clients.}\n    - {name: ANTHROPIC_BASE_URL, required: true, description: Set to https://runapi.ai for Claude on RunAPI.}\n---\n\n# Claude on RunAPI\n\nUse Anthropic Messages at `https://runapi.ai` with `POST /v1/messages` as the primary protocol.\n\n## Primary protocol recipe\n\n### Authenticate\n\nSet `ANTHROPIC_API_KEY` to a RunAPI API key and `ANTHROPIC_BASE_URL` to\n`https://runapi.ai`. The SDK sends `x-api-key`; Bearer authentication is also accepted.\n\n### Send request\n\n```python\nimport anthropic\nclient = anthropic.Anthropic(api_key=\"YOUR_RUNAPI_TOKEN\", base_url=\"https://runapi.ai\")\nmessage = client.messages.create(\n    model=\"claude-sonnet-5\",\n    max_tokens=1024,\n    messages=[{\"role\": \"user\", \"content\": \"Explain this decision.\"}],\n)\nprint(message.content[0].text)\nprint(message.usage)\n```\n\n`max_tokens` is required. For long output, use `client.messages.stream(...)`\nand consume `stream.text_stream` through the terminal event. Add image blocks,\nfunction tools, reasoning controls, or token counting only when the current\nRunAPI contract verifies them for the selected exact model.\n\n### Verify result\n\nRequire final text, `stop_reason`, and authoritative `usage`. A stream is\ncomplete only after terminal Usage and `message_stop`. Token counting estimates\ninput only; actual response Usage remains authoritative.\n\n### Stop boundaries\n\nCorrect a rejected shape once using the structured error. Retry transport once\nonly before any response or Usage and when replay is safe. Record a terminal\nerror and stop without changing model or protocol.\n\n## Compatibility protocols\n\nLoad [compatibility protocols](references/compatibility-protocols.md) only when an existing client requires OpenAI Chat/Responses or Gemini contents.\n\n## Supported models\n\n| Model ID | Use when |\n|---|---|\n| `claude-fable-5-1` | — |\n| `claude-fable-5` | Flagship state-of-the-art coding, reasoning, and vision |\n| `claude-sonnet-5` | Near-Opus coding at Sonnet cost |\n| `claude-opus-5` | Latest Opus frontier reasoning |\n| `claude-opus-4-8` | Strongest general model |\n| `claude-opus-4-7` | Previous Opus generation |\n| `claude-opus-4-6` | High-end reasoning |\n| `claude-sonnet-4-6` | Balanced reasoning and speed |\n| `claude-opus-4-5-20251101` | Dated Opus 4.5 snapshot |\n| `claude-sonnet-4-5-20250929` | Dated Sonnet 4.5 snapshot |\n| `claude-haiku-4-5-20251001` | Fastest lightweight snapshot |\n| `claude-opus-4-1-20250805` | Dated Opus 4.1 snapshot |\n| `claude-opus-5-5` | — |\n\n## References\n\n- <https://runapi.ai/models/claude.md>\n- <https://runapi.ai/providers/anthropic.md>\n- <https://runapi.ai/models.md>\n\nFile v0.2.16:_meta.json\n\n{\n  \"ownerId\": \"kn70me4rk7jqjt92evshjeb5z18768g7\",\n  \"slug\": \"runapi-claude\",\n  \"version\": \"0.2.16\",\n  \"publishedAt\": 1790672593450\n}\n\nFile v0.2.16:references/compatibility-protocols.md\n\n# Claude compatibility protocols\n\nLoad this reference only for an existing OpenAI or Gemini client. New Claude integrations use Anthropic Messages from the main skill.\n\nFor OpenAI clients, set the base URL to `https://runapi.ai/v1`, use a RunAPI\nkey, and call Chat Completions or Responses with a supported exact Claude model\nID. Verify `finish_reason` plus `usage` for Chat, or `response.completed` plus\n`usage` for Responses. SSE ends at `[DONE]`.\n\nFor Gemini contents, set `RUNAPI_MODEL` to a supported exact model ID and use\n`https://runapi.ai/v1beta/models/$RUNAPI_MODEL:generateContent`\nor `streamGenerateContent` with `x-goog-api-key`. Verify candidates,\n`finishReason`, and `usageMetadata`.\n\nApply one evidence-backed shape correction, at most one safe pre-response\ntransport retry, and no automatic model or protocol hopping.\n\nFile v0.2.16:skill-card.md\n\n## Description:\n\nGuides developers in calling Claude models through RunAPI using Anthropic Messages, with optional compatibility guidance for existing OpenAI or Gemini clients.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[runapi-ai](https://clawhub.ai/user/runapi-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers configure Claude-compatible clients to call RunAPI for chat, streaming, and supported multimodal or tool workflows. Existing OpenAI or Gemini clients can use the separate compatibility guidance when needed.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Prompts, files, images, tool outputs, and usage metadata may be sent to RunAPI.\n\nMitigation: Confirm the intended data sharing and review RunAPI's terms and data handling before use.\n\nRisk: API credentials or unexpected usage costs may be exposed through careless setup.\n\nMitigation: Use a RunAPI key with normal credential hygiene and check pricing for the intended use case.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/runapi-ai/skills/runapi-claude)\n- [RunAPI Claude documentation](https://runapi.ai/models/claude.md)\n- [RunAPI Claude model page](https://runapi.ai/models/claude)\n- [RunAPI Anthropic provider documentation](https://runapi.ai/providers/anthropic.md)\n- [RunAPI model catalog](https://runapi.ai/models.md)\n- [Compatibility protocols](references/compatibility-protocols.md)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Code, Configuration instructions]\n\n**Output Format:** [Markdown with Python code examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires a RunAPI API key and a supported model ID.]\n\n## Skill Version(s):\n\n0.2.16 (source: server-resolved release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v0.2.15: 4 files, 3661 bytes\n\nFiles: references/compatibility-protocols.md (835b), skill-card.md (2272b), SKILL.md (3243b), _meta.json (133b)\n\nFile v0.2.15:SKILL.md\n\n---\nname: claude\ndescription: Call Claude models through RunAPI using the Anthropic Messages protocol. Use for Claude chat, streaming, vision, tools, reasoning, token counting, or an existing compatibility client that needs the conditional reference.\ndocumentation: https://runapi.ai/models/claude.md\nprovider_page: https://runapi.ai/providers/anthropic.md\ncatalog: https://runapi.ai/models.md\nmetadata:\n  openclaw:\n    homepage: https://runapi.ai/models/claude\n    primaryEnv: ANTHROPIC_API_KEY\n    requires:\n      env: [ANTHROPIC_API_KEY, ANTHROPIC_BASE_URL]\n    envVars:\n    - {name: ANTHROPIC_API_KEY, required: true, description: RunAPI API key used by Anthropic-compatible clients.}\n    - {name: ANTHROPIC_BASE_URL, required: true, description: Set to https://runapi.ai for Claude on RunAPI.}\n---\n\n# Claude on RunAPI\n\nUse Anthropic Messages at `https://runapi.ai` with `POST /v1/messages` as the primary protocol.\n\n## Primary protocol recipe\n\n### Authenticate\n\nSet `ANTHROPIC_API_KEY` to a RunAPI API key and `ANTHROPIC_BASE_URL` to\n`https://runapi.ai`. The SDK sends `x-api-key`; Bearer authentication is also accepted.\n\n### Send request\n\n```python\nimport anthropic\nclient = anthropic.Anthropic(api_key=\"YOUR_RUNAPI_TOKEN\", base_url=\"https://runapi.ai\")\nmessage = client.messages.create(\n    model=\"claude-sonnet-5\",\n    max_tokens=1024,\n    messages=[{\"role\": \"user\", \"content\": \"Explain this decision.\"}],\n)\nprint(message.content[0].text)\nprint(message.usage)\n```\n\n`max_tokens` is required. For long output, use `client.messages.stream(...)`\nand consume `stream.text_stream` through the terminal event. Add image blocks,\nfunction tools, reasoning controls, or token counting only when the current\nRunAPI contract verifies them for the selected exact model.\n\n### Verify result\n\nRequire final text, `stop_reason`, and authoritative `usage`. A stream is\ncomplete only after terminal Usage and `message_stop`. Token counting estimates\ninput only; actual response Usage remains authoritative.\n\n### Stop boundaries\n\nCorrect a rejected shape once using the structured error. Retry transport once\nonly before any response or Usage and when replay is safe. Record a terminal\nerror and stop without changing model or protocol.\n\n## Compatibility protocols\n\nLoad [compatibility protocols](references/compatibility-protocols.md) only when an existing client requires OpenAI Chat/Responses or Gemini contents.\n\n## Supported models\n\n| Model ID | Use when |\n|---|---|\n| `claude-fable-5-1` | — |\n| `claude-fable-5` | Flagship state-of-the-art coding, reasoning, and vision |\n| `claude-sonnet-5` | Near-Opus coding at Sonnet cost |\n| `claude-opus-5` | Latest Opus frontier reasoning |\n| `claude-opus-4-8` | Strongest general model |\n| `claude-opus-4-7` | Previous Opus generation |\n| `claude-opus-4-6` | High-end reasoning |\n| `claude-sonnet-4-6` | Balanced reasoning and speed |\n| `claude-opus-4-5-20251101` | Dated Opus 4.5 snapshot |\n| `claude-sonnet-4-5-20250929` | Dated Sonnet 4.5 snapshot |\n| `claude-haiku-4-5-20251001` | Fastest lightweight snapshot |\n| `claude-opus-4-1-20250805` | Dated Opus 4.1 snapshot |\n\n## References\n\n- <https://runapi.ai/models/claude.md>\n- <https://runapi.ai/providers/anthropic.md>\n- <https://runapi.ai/models.md>\n\nFile v0.2.15:_meta.json\n\n{\n  \"ownerId\": \"kn70me4rk7jqjt92evshjeb5z18768g7\",\n  \"slug\": \"runapi-claude\",\n  \"version\": \"0.2.15\",\n  \"publishedAt\": 1788521543144\n}\n\nFile v0.2.15:references/compatibility-protocols.md\n\n# Claude compatibility protocols\n\nLoad this reference only for an existing OpenAI or Gemini client. New Claude integrations use Anthropic Messages from the main skill.\n\nFor OpenAI clients, set the base URL to `https://runapi.ai/v1`, use a RunAPI\nkey, and call Chat Completions or Responses with a supported exact Claude model\nID. Verify `finish_reason` plus `usage` for Chat, or `response.completed` plus\n`usage` for Responses. SSE ends at `[DONE]`.\n\nFor Gemini contents, set `RUNAPI_MODEL` to a supported exact model ID and use\n`https://runapi.ai/v1beta/models/$RUNAPI_MODEL:generateContent`\nor `streamGenerateContent` with `x-goog-api-key`. Verify candidates,\n`finishReason`, and `usageMetadata`.\n\nApply one evidence-backed shape correction, at most one safe pre-response\ntransport retry, and no automatic model or protocol hopping.\n\nFile v0.2.15:skill-card.md\n\n## Description:\n\nCall Claude models through RunAPI using the Anthropic Messages protocol.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[runapi-ai](https://clawhub.ai/user/runapi-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agents use this skill to call Claude models through RunAPI for chat, streaming, vision, tool use, reasoning, token counting, and compatibility with existing Anthropic-style clients.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Prompts, files, and API credentials needed for Claude requests may be sent to RunAPI.\n\nMitigation: Confirm RunAPI is the intended Claude endpoint before use, and configure API keys and base URLs only in trusted environments.\n\nRisk: Using an unsupported model ID or protocol shape may produce request failures or misleading integration results.\n\nMitigation: Use exact supported model IDs and verify final text, stop reason, and usage according to the selected protocol.\n\nRisk: Unsafe retries after a response begins can duplicate work or charges.\n\nMitigation: Retry transport only once, only before any response or usage is received, and only when replay is safe.\n\n## Reference(s):\n\n- [Claude compatibility protocols](references/compatibility-protocols.md)\n- [RunAPI Claude documentation](https://runapi.ai/models/claude.md)\n- [RunAPI Anthropic provider page](https://runapi.ai/providers/anthropic.md)\n- [RunAPI model catalog](https://runapi.ai/models.md)\n- [RunAPI Claude model homepage](https://runapi.ai/models/claude)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Code, Configuration]\n\n**Output Format:** [Markdown with inline Python code and configuration values]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires ANTHROPIC_API_KEY and ANTHROPIC_BASE_URL; directs Claude requests to RunAPI and uses compatibility protocols only when existing clients require them.]\n\n## Skill Version(s):\n\n0.2.15 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v0.2.14: 4 files, 3681 bytes\n\nFiles: references/compatibility-protocols.md (835b), skill-card.md (2363b), SKILL.md (3214b), _meta.json (133b)\n\nFile v0.2.14:SKILL.md\n\n---\nname: claude\ndescription: Call Claude models through RunAPI using the Anthropic Messages protocol. Use for Claude chat, streaming, vision, tools, reasoning, token counting, or an existing compatibility client that needs the conditional reference.\ndocumentation: https://runapi.ai/models/claude.md\nprovider_page: https://runapi.ai/providers/anthropic.md\ncatalog: https://runapi.ai/models.md\nmetadata:\n  openclaw:\n    homepage: https://runapi.ai/models/claude\n    primaryEnv: ANTHROPIC_API_KEY\n    requires:\n      env: [ANTHROPIC_API_KEY, ANTHROPIC_BASE_URL]\n    envVars:\n    - {name: ANTHROPIC_API_KEY, required: true, description: RunAPI API key used by Anthropic-compatible clients.}\n    - {name: ANTHROPIC_BASE_URL, required: true, description: Set to https://runapi.ai for Claude on RunAPI.}\n---\n\n# Claude on RunAPI\n\nUse Anthropic Messages at `https://runapi.ai` with `POST /v1/messages` as the primary protocol.\n\n## Primary protocol recipe\n\n### Authenticate\n\nSet `ANTHROPIC_API_KEY` to a RunAPI API key and `ANTHROPIC_BASE_URL` to\n`https://runapi.ai`. The SDK sends `x-api-key`; Bearer authentication is also accepted.\n\n### Send request\n\n```python\nimport anthropic\nclient = anthropic.Anthropic(api_key=\"YOUR_RUNAPI_TOKEN\", base_url=\"https://runapi.ai\")\nmessage = client.messages.create(\n    model=\"claude-sonnet-5\",\n    max_tokens=1024,\n    messages=[{\"role\": \"user\", \"content\": \"Explain this decision.\"}],\n)\nprint(message.content[0].text)\nprint(message.usage)\n```\n\n`max_tokens` is required. For long output, use `client.messages.stream(...)`\nand consume `stream.text_stream` through the terminal event. Add image blocks,\nfunction tools, reasoning controls, or token counting only when the current\nRunAPI contract verifies them for the selected exact model.\n\n### Verify result\n\nRequire final text, `stop_reason`, and authoritative `usage`. A stream is\ncomplete only after terminal Usage and `message_stop`. Token counting estimates\ninput only; actual response Usage remains authoritative.\n\n### Stop boundaries\n\nCorrect a rejected shape once using the structured error. Retry transport once\nonly before any response or Usage and when replay is safe. Record a terminal\nerror and stop without changing model or protocol.\n\n## Compatibility protocols\n\nLoad [compatibility protocols](references/compatibility-protocols.md) only when an existing client requires OpenAI Chat/Responses or Gemini contents.\n\n## Supported models\n\n| Model ID | Use when |\n|---|---|\n| `claude-fable-5` | Flagship state-of-the-art coding, reasoning, and vision |\n| `claude-sonnet-5` | Near-Opus coding at Sonnet cost |\n| `claude-opus-5` | Latest Opus frontier reasoning |\n| `claude-opus-4-8` | Strongest general model |\n| `claude-opus-4-7` | Previous Opus generation |\n| `claude-opus-4-6` | High-end reasoning |\n| `claude-sonnet-4-6` | Balanced reasoning and speed |\n| `claude-opus-4-5-20251101` | Dated Opus 4.5 snapshot |\n| `claude-sonnet-4-5-20250929` | Dated Sonnet 4.5 snapshot |\n| `claude-haiku-4-5-20251001` | Fastest lightweight snapshot |\n| `claude-opus-4-1-20250805` | Dated Opus 4.1 snapshot |\n\n## References\n\n- <https://runapi.ai/models/claude.md>\n- <https://runapi.ai/providers/anthropic.md>\n- <https://runapi.ai/models.md>\n\nFile v0.2.14:_meta.json\n\n{\n  \"ownerId\": \"kn70me4rk7jqjt92evshjeb5z18768g7\",\n  \"slug\": \"runapi-claude\",\n  \"version\": \"0.2.14\",\n  \"publishedAt\": 1786515943226\n}\n\nFile v0.2.14:references/compatibility-protocols.md\n\n# Claude compatibility protocols\n\nLoad this reference only for an existing OpenAI or Gemini client. New Claude integrations use Anthropic Messages from the main skill.\n\nFor OpenAI clients, set the base URL to `https://runapi.ai/v1`, use a RunAPI\nkey, and call Chat Completions or Responses with a supported exact Claude model\nID. Verify `finish_reason` plus `usage` for Chat, or `response.completed` plus\n`usage` for Responses. SSE ends at `[DONE]`.\n\nFor Gemini contents, set `RUNAPI_MODEL` to a supported exact model ID and use\n`https://runapi.ai/v1beta/models/$RUNAPI_MODEL:generateContent`\nor `streamGenerateContent` with `x-goog-api-key`. Verify candidates,\n`finishReason`, and `usageMetadata`.\n\nApply one evidence-backed shape correction, at most one safe pre-response\ntransport retry, and no automatic model or protocol hopping.\n\nFile v0.2.14:skill-card.md\n\n## Description:\n\nCall Claude models through RunAPI using the Anthropic Messages protocol.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[runapi-ai](https://clawhub.ai/user/runapi-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and engineers use this skill to configure agents or compatibility clients for Claude requests through RunAPI, including chat, streaming, vision, tool use, reasoning controls, token counting, and result verification.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Prompts, files, images, and tool inputs sent through configured clients are transmitted to RunAPI.\n\nMitigation: Install only when routing Claude requests through RunAPI is intended, verify ANTHROPIC_BASE_URL before use, and avoid sending data that should not leave the approved provider path.\n\nRisk: Using the wrong protocol shape, model ID, or retry behavior can produce failed or ambiguous API results.\n\nMitigation: Follow the primary Anthropic Messages recipe, require final text, stop reason, and authoritative usage, and apply only the documented single shape correction or safe pre-response transport retry.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/runapi-ai/skills/runapi-claude)\n- [RunAPI Claude Documentation](https://runapi.ai/models/claude.md)\n- [RunAPI Anthropic Provider Documentation](https://runapi.ai/providers/anthropic.md)\n- [RunAPI Model Catalog](https://runapi.ai/models.md)\n- [RunAPI Claude Homepage](https://runapi.ai/models/claude)\n- [Claude Compatibility Protocols](references/compatibility-protocols.md)\n\n## Skill Output:\n\n**Output Type(s):** [guidance, markdown, code, configuration]\n\n**Output Format:** [Markdown guidance with code snippets, environment variable configuration, and protocol verification steps]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires ANTHROPIC_API_KEY and ANTHROPIC_BASE_URL for configured clients; actual token usage from the provider remains authoritative.]\n\n## Skill Version(s):\n\n0.2.14 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v0.2.13: 3 files, 4708 bytes\n\nFiles: skill-card.md (2206b), SKILL.md (8622b), _meta.json (133b)\n\nFile v0.2.13:SKILL.md\n\n---\nname: claude\ndescription: Call the Claude API (claude-opus, claude-sonnet, claude-haiku) through RunAPI using the official Anthropic SDK, OpenAI SDK, Gemini contents clients, or compatible clients. Use when the user asks for Claude / Anthropic chat, streaming messages, multimodal vision input, tool use, extended thinking, token counting, OpenAI or Gemini protocol compatibility, or when they want to point an existing LLM SDK setup at RunAPI as the base URL.\ndocumentation: https://runapi.ai/models/claude.md\nprovider_page: https://runapi.ai/providers/anthropic.md\ncatalog: https://runapi.ai/models.md\nmetadata:\n  openclaw:\n    homepage: https://runapi.ai/models/claude\n    primaryEnv: ANTHROPIC_API_KEY\n    requires:\n      env:\n      - ANTHROPIC_API_KEY\n      - ANTHROPIC_BASE_URL\n    envVars:\n    - name: ANTHROPIC_API_KEY\n      required: true\n      description: RunAPI API key used by Anthropic-compatible SDKs.\n    - name: ANTHROPIC_BASE_URL\n      required: true\n      description: Set to https://runapi.ai for Claude on RunAPI.\n---\n\n# Claude on RunAPI\n\nUse the official **Anthropic SDK** (Python, TypeScript, Ruby) -- or any\nAnthropic-compatible HTTP client — and switch the base URL to\n`https://runapi.ai`. The endpoint speaks the Anthropic Messages protocol\n(`POST /v1/messages`), so no client code changes beyond `base_url` and\n`api_key`.\n\n## Setup\n\n```dotenv\nANTHROPIC_API_KEY=YOUR_RUNAPI_TOKEN\nANTHROPIC_BASE_URL=https://runapi.ai\n```\n\nGet a RunAPI API Key at <https://runapi.ai/api_keys>.\n\n| Language | Init |\n|---|---|\n| Python | `anthropic.Anthropic(api_key=..., base_url=\"https://runapi.ai\")` |\n| TypeScript | `new Anthropic({ apiKey: ..., baseURL: \"https://runapi.ai\" })` |\n| Ruby | `Anthropic::Client.new(api_key: ..., base_url: \"https://runapi.ai\")` |\n| curl | `POST https://runapi.ai/v1/messages` with `x-api-key:` header |\n\n`x-api-key` and `Authorization: Bearer ...` both work; the SDK uses\n`x-api-key` by default.\n\n## Core recipe — non-streaming message\n\n```python\nimport anthropic\n\nclient = anthropic.Anthropic(\n    api_key=\"YOUR_RUNAPI_TOKEN\",\n    base_url=\"https://runapi.ai\",\n)\n\nmessage = client.messages.create(\n    model=\"claude-sonnet-4-6\",\n    max_tokens=1024,\n    system=\"You are a helpful assistant.\",\n    messages=[{\"role\": \"user\", \"content\": \"Explain quantum computing simply.\"}],\n)\nprint(message.content[0].text)\nprint(message.usage)  # input_tokens / output_tokens\n```\n\n```typescript\nimport Anthropic from \"@anthropic-ai/sdk\";\n\nconst client = new Anthropic({\n  apiKey: \"YOUR_RUNAPI_TOKEN\",\n  baseURL: \"https://runapi.ai\",\n});\n\nconst message = await client.messages.create({\n  model: \"claude-sonnet-4-6\",\n  max_tokens: 1024,\n  system: \"You are a helpful assistant.\",\n  messages: [{ role: \"user\", content: \"Explain quantum computing simply.\" }],\n});\n```\n\n`max_tokens` is required by the Anthropic API.\n\n## Streaming\n\n```python\nwith client.messages.stream(\n    model=\"claude-sonnet-4-6\",\n    max_tokens=1024,\n    messages=[{\"role\": \"user\", \"content\": \"Write a haiku about coding.\"}],\n) as stream:\n    for text in stream.text_stream:\n        print(text, end=\"\", flush=True)\n```\n\n```typescript\nconst stream = await client.messages.stream({\n  model: \"claude-sonnet-4-6\",\n  max_tokens: 1024,\n  messages: [{ role: \"user\", content: \"Write a haiku about coding.\" }],\n});\n\nfor await (const event of stream) {\n  if (event.type === \"content_block_delta\") {\n    process.stdout.write(event.delta.text);\n  }\n}\n```\n\nStreaming runs through a regional edge proxy so the request does not hold a\nRails/Puma thread. Long generations (extended thinking, large `max_tokens`)\nshould always stream.\n\n## Vision / multimodal\n\n```json\n{\n  \"model\": \"claude-sonnet-4-6\",\n  \"max_tokens\": 1024,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": [\n        { \"type\": \"text\", \"text\": \"What is in this image?\" },\n        {\n          \"type\": \"image_url\",\n          \"image_url\": { \"url\": \"https://cdn.runapi.ai/public/samples/mask.png\" }\n        }\n      ]\n    }\n  ]\n}\n```\n\nImage input uses the standard Anthropic `image_url` block. URLs must be\npublicly fetchable.\n\n## Tool use / web search / reasoning\n\n```json\n{\n  \"model\": \"claude-sonnet-4-6\",\n  \"max_tokens\": 1024,\n  \"reasoning_effort\": \"high\",\n  \"include_thoughts\": true,\n  \"tools\": [\n    { \"type\": \"function\", \"function\": { \"name\": \"googleSearch\" } }\n  ],\n  \"messages\": [\n    { \"role\": \"user\", \"content\": \"What's the latest on Claude 4.7?\" }\n  ]\n}\n```\n\n- `reasoning_effort`: `\"low\"` or `\"high\"`. Supported on every model below.\n- `include_thoughts`: returns reasoning content. Only `claude-sonnet-4-5-20250929`\n  and `claude-sonnet-4-6` support this.\n- Web access uses a `googleSearch` function tool.\n- Set header `anthropic-beta: interleaved-thinking-2025-05-14` to interleave\n  thinking blocks with output.\n\n## Token counting\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/messages/count_tokens\" \\\n  -H \"x-api-key: YOUR_RUNAPI_TOKEN\" \\\n  -H \"anthropic-version: 2023-06-01\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-6\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"How many tokens?\"}]\n  }'\n```\n\nReturns `{\"input_tokens\": <n>}`. Image blocks use a 512-token heuristic; for\nexact response usage read `usage` from the actual `POST /v1/messages` response.\n\n## List models\n\n```bash\ncurl https://runapi.ai/v1/models -H \"x-api-key: YOUR_RUNAPI_TOKEN\"\n```\n\nReturns Anthropic-compatible model objects.\n\n## Protocol compatibility\n\nClaude models are also available through RunAPI's OpenAI-compatible and Gemini\n`contents` client surfaces. Use these protocol paths when an existing agent\nruntime already speaks Chat Completions, Responses, or Gemini\n`generateContent` / `streamGenerateContent`; for new Claude-specific code,\nprefer the Anthropic Messages setup above.\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/chat/completions\" \\\n  -H \"Authorization: Bearer YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-6\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"Draft a concise answer.\"}]\n  }'\n```\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/responses\" \\\n  -H \"Authorization: Bearer YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-6\",\n    \"input\": \"Draft a concise answer.\"\n  }'\n```\n\n```bash\ncurl -X POST \\\n  \"https://runapi.ai/v1beta/models/claude-sonnet-4-6:streamGenerateContent\" \\\n  -H \"x-goog-api-key: YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"contents\":[{\"role\":\"user\",\"parts\":[{\"text\":\"Hello, Claude!\"}]}]}'\n```\n\nToken counting remains specific to the Anthropic-compatible\n`/v1/messages/count_tokens` endpoint.\n\n## Supported models\n\n| Model ID | Use when |\n|---|---|\n| `claude-fable-5` | Flagship — state-of-the-art coding, reasoning, and vision (1M context) |\n| `claude-sonnet-5` | Near-Opus coding and agentic skill at Sonnet cost (1M context) |\n| `claude-opus-5` | Latest Opus — frontier reasoning and long-workflow reliability |\n| `claude-opus-4-8` | Strongest general model — agents, complex reasoning |\n| `claude-opus-4-7` | Previous Opus generation for stable workloads |\n| `claude-opus-4-6` | High-end reasoning workloads |\n| `claude-sonnet-4-6` | Balanced default for production chat |\n| `claude-opus-4-5-20251101` | Pin Opus 4.5 snapshot |\n| `claude-sonnet-4-5-20250929` | Pin Sonnet 4.5 snapshot (supports `include_thoughts`) |\n| `claude-haiku-4-5-20251001` | Highest throughput lightweight model |\n| `claude-opus-4-1-20250805` | Pin Opus 4.1 snapshot |\n\nAliases auto-resolve to dated snapshots: `claude-opus-4-5`,\n`claude-sonnet-4-5`, `claude-haiku-4-5`.\n\n## Connect Claude Code itself\n\n```bash\nANTHROPIC_BASE_URL=https://runapi.ai \\\nANTHROPIC_API_KEY=YOUR_RUNAPI_TOKEN \\\nclaude\n```\n\n## Agent rules\n\n- Always pass `max_tokens` — the Anthropic API rejects requests without it.\n- Use streaming for any response longer than a few hundred tokens. Do not hold\n  the agent on a long blocking request.\n- Default Claude-native integrations to the Anthropic Messages endpoint. Use\n  OpenAI-compatible or Gemini `contents` paths only for existing clients that\n  require those request shapes.\n- `include_thoughts` only works on the two Sonnet models listed above; do not\n  send it on Opus or Haiku.\n- Pricing, rate limits, quotas — link to <https://runapi.ai/models/claude.md>,\n  not this skill file.\n- For exact token usage read `usage` from the `POST /v1/messages`\n  response, not from `/v1/messages/count_tokens`.\n\n## Routing\n\n- Model page: <https://runapi.ai/models/claude.md>\n- Provider page: <https://runapi.ai/providers/anthropic.md>\n- Catalog: <https://runapi.ai/models.md>\n\nFile v0.2.13:_meta.json\n\n{\n  \"ownerId\": \"kn70me4rk7jqjt92evshjeb5z18768g7\",\n  \"slug\": \"runapi-claude\",\n  \"version\": \"0.2.13\",\n  \"publishedAt\": 1786371210239\n}\n\nFile v0.2.13:skill-card.md\n\n## Description:\n\nGuides agents to call Claude models through RunAPI using Anthropic-compatible, OpenAI-compatible, Gemini-compatible, and shell-based API examples.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[runapi-ai](https://clawhub.ai/user/runapi-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agent builders use this skill to configure Claude requests through RunAPI for chat, streaming, vision, tool use, token counting, and protocol-compatible client integrations.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Prompts, image URLs, tool requests, and attached content are sent to RunAPI when the skill's guidance is followed.\n\nMitigation: Avoid sending secrets, sensitive files, or private data unless the user is comfortable with RunAPI's handling policies.\n\nRisk: RunAPI API keys are required for the documented integrations.\n\nMitigation: Store ANTHROPIC_API_KEY in an environment variable or secret manager and avoid hard-coding credentials in source files.\n\nRisk: Vision examples rely on publicly fetchable image URLs, which can expose referenced content to the provider.\n\nMitigation: Use only intended public image resources and avoid private or sensitive URLs in multimodal requests.\n\n## Reference(s):\n\n- [RunAPI Claude model documentation](https://runapi.ai/models/claude.md)\n- [RunAPI Anthropic provider page](https://runapi.ai/providers/anthropic.md)\n- [RunAPI model catalog](https://runapi.ai/models.md)\n- [RunAPI Claude homepage](https://runapi.ai/models/claude)\n\n## Skill Output:\n\n**Output Type(s):** [guidance, code, shell commands, configuration]\n\n**Output Format:** [Markdown with code examples and shell commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires ANTHROPIC_API_KEY and ANTHROPIC_BASE_URL for RunAPI-backed Claude use.]\n\n## Skill Version(s):\n\n0.2.13 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v0.2.12: 3 files, 4906 bytes\n\nFiles: skill-card.md (2753b), SKILL.md (8622b), _meta.json (133b)\n\nFile v0.2.12:SKILL.md\n\n---\nname: claude\ndescription: Call the Claude API (claude-opus, claude-sonnet, claude-haiku) through RunAPI using the official Anthropic SDK, OpenAI SDK, Gemini contents clients, or compatible clients. Use when the user asks for Claude / Anthropic chat, streaming messages, multimodal vision input, tool use, extended thinking, token counting, OpenAI or Gemini protocol compatibility, or when they want to point an existing LLM SDK setup at RunAPI as the base URL.\ndocumentation: https://runapi.ai/models/claude.md\nprovider_page: https://runapi.ai/providers/anthropic.md\ncatalog: https://runapi.ai/models.md\nmetadata:\n  openclaw:\n    homepage: https://runapi.ai/models/claude\n    primaryEnv: ANTHROPIC_API_KEY\n    requires:\n      env:\n      - ANTHROPIC_API_KEY\n      - ANTHROPIC_BASE_URL\n    envVars:\n    - name: ANTHROPIC_API_KEY\n      required: true\n      description: RunAPI API key used by Anthropic-compatible SDKs.\n    - name: ANTHROPIC_BASE_URL\n      required: true\n      description: Set to https://runapi.ai for Claude on RunAPI.\n---\n\n# Claude on RunAPI\n\nUse the official **Anthropic SDK** (Python, TypeScript, Ruby) -- or any\nAnthropic-compatible HTTP client — and switch the base URL to\n`https://runapi.ai`. The endpoint speaks the Anthropic Messages protocol\n(`POST /v1/messages`), so no client code changes beyond `base_url` and\n`api_key`.\n\n## Setup\n\n```dotenv\nANTHROPIC_API_KEY=YOUR_RUNAPI_TOKEN\nANTHROPIC_BASE_URL=https://runapi.ai\n```\n\nGet a RunAPI API Key at <https://runapi.ai/api_keys>.\n\n| Language | Init |\n|---|---|\n| Python | `anthropic.Anthropic(api_key=..., base_url=\"https://runapi.ai\")` |\n| TypeScript | `new Anthropic({ apiKey: ..., baseURL: \"https://runapi.ai\" })` |\n| Ruby | `Anthropic::Client.new(api_key: ..., base_url: \"https://runapi.ai\")` |\n| curl | `POST https://runapi.ai/v1/messages` with `x-api-key:` header |\n\n`x-api-key` and `Authorization: Bearer ...` both work; the SDK uses\n`x-api-key` by default.\n\n## Core recipe — non-streaming message\n\n```python\nimport anthropic\n\nclient = anthropic.Anthropic(\n    api_key=\"YOUR_RUNAPI_TOKEN\",\n    base_url=\"https://runapi.ai\",\n)\n\nmessage = client.messages.create(\n    model=\"claude-sonnet-4-6\",\n    max_tokens=1024,\n    system=\"You are a helpful assistant.\",\n    messages=[{\"role\": \"user\", \"content\": \"Explain quantum computing simply.\"}],\n)\nprint(message.content[0].text)\nprint(message.usage)  # input_tokens / output_tokens\n```\n\n```typescript\nimport Anthropic from \"@anthropic-ai/sdk\";\n\nconst client = new Anthropic({\n  apiKey: \"YOUR_RUNAPI_TOKEN\",\n  baseURL: \"https://runapi.ai\",\n});\n\nconst message = await client.messages.create({\n  model: \"claude-sonnet-4-6\",\n  max_tokens: 1024,\n  system: \"You are a helpful assistant.\",\n  messages: [{ role: \"user\", content: \"Explain quantum computing simply.\" }],\n});\n```\n\n`max_tokens` is required by the Anthropic API.\n\n## Streaming\n\n```python\nwith client.messages.stream(\n    model=\"claude-sonnet-4-6\",\n    max_tokens=1024,\n    messages=[{\"role\": \"user\", \"content\": \"Write a haiku about coding.\"}],\n) as stream:\n    for text in stream.text_stream:\n        print(text, end=\"\", flush=True)\n```\n\n```typescript\nconst stream = await client.messages.stream({\n  model: \"claude-sonnet-4-6\",\n  max_tokens: 1024,\n  messages: [{ role: \"user\", content: \"Write a haiku about coding.\" }],\n});\n\nfor await (const event of stream) {\n  if (event.type === \"content_block_delta\") {\n    process.stdout.write(event.delta.text);\n  }\n}\n```\n\nStreaming runs through a regional edge proxy so the request does not hold a\nRails/Puma thread. Long generations (extended thinking, large `max_tokens`)\nshould always stream.\n\n## Vision / multimodal\n\n```json\n{\n  \"model\": \"claude-sonnet-4-6\",\n  \"max_tokens\": 1024,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": [\n        { \"type\": \"text\", \"text\": \"What is in this image?\" },\n        {\n          \"type\": \"image_url\",\n          \"image_url\": { \"url\": \"https://cdn.runapi.ai/public/samples/mask.png\" }\n        }\n      ]\n    }\n  ]\n}\n```\n\nImage input uses the standard Anthropic `image_url` block. URLs must be\npublicly fetchable.\n\n## Tool use / web search / reasoning\n\n```json\n{\n  \"model\": \"claude-sonnet-4-6\",\n  \"max_tokens\": 1024,\n  \"reasoning_effort\": \"high\",\n  \"include_thoughts\": true,\n  \"tools\": [\n    { \"type\": \"function\", \"function\": { \"name\": \"googleSearch\" } }\n  ],\n  \"messages\": [\n    { \"role\": \"user\", \"content\": \"What's the latest on Claude 4.7?\" }\n  ]\n}\n```\n\n- `reasoning_effort`: `\"low\"` or `\"high\"`. Supported on every model below.\n- `include_thoughts`: returns reasoning content. Only `claude-sonnet-4-5-20250929`\n  and `claude-sonnet-4-6` support this.\n- Web access uses a `googleSearch` function tool.\n- Set header `anthropic-beta: interleaved-thinking-2025-05-14` to interleave\n  thinking blocks with output.\n\n## Token counting\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/messages/count_tokens\" \\\n  -H \"x-api-key: YOUR_RUNAPI_TOKEN\" \\\n  -H \"anthropic-version: 2023-06-01\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-6\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"How many tokens?\"}]\n  }'\n```\n\nReturns `{\"input_tokens\": <n>}`. Image blocks use a 512-token heuristic; for\nexact response usage read `usage` from the actual `POST /v1/messages` response.\n\n## List models\n\n```bash\ncurl https://runapi.ai/v1/models -H \"x-api-key: YOUR_RUNAPI_TOKEN\"\n```\n\nReturns Anthropic-compatible model objects.\n\n## Protocol compatibility\n\nClaude models are also available through RunAPI's OpenAI-compatible and Gemini\n`contents` client surfaces. Use these protocol paths when an existing agent\nruntime already speaks Chat Completions, Responses, or Gemini\n`generateContent` / `streamGenerateContent`; for new Claude-specific code,\nprefer the Anthropic Messages setup above.\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/chat/completions\" \\\n  -H \"Authorization: Bearer YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-6\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"Draft a concise answer.\"}]\n  }'\n```\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/responses\" \\\n  -H \"Authorization: Bearer YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-6\",\n    \"input\": \"Draft a concise answer.\"\n  }'\n```\n\n```bash\ncurl -X POST \\\n  \"https://runapi.ai/v1beta/models/claude-sonnet-4-6:streamGenerateContent\" \\\n  -H \"x-goog-api-key: YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"contents\":[{\"role\":\"user\",\"parts\":[{\"text\":\"Hello, Claude!\"}]}]}'\n```\n\nToken counting remains specific to the Anthropic-compatible\n`/v1/messages/count_tokens` endpoint.\n\n## Supported models\n\n| Model ID | Use when |\n|---|---|\n| `claude-fable-5` | Flagship — state-of-the-art coding, reasoning, and vision (1M context) |\n| `claude-sonnet-5` | Near-Opus coding and agentic skill at Sonnet cost (1M context) |\n| `claude-opus-5` | Latest Opus — frontier reasoning and long-workflow reliability |\n| `claude-opus-4-8` | Strongest general model — agents, complex reasoning |\n| `claude-opus-4-7` | Previous Opus generation for stable workloads |\n| `claude-opus-4-6` | High-end reasoning workloads |\n| `claude-sonnet-4-6` | Balanced default for production chat |\n| `claude-opus-4-5-20251101` | Pin Opus 4.5 snapshot |\n| `claude-sonnet-4-5-20250929` | Pin Sonnet 4.5 snapshot (supports `include_thoughts`) |\n| `claude-haiku-4-5-20251001` | Highest throughput lightweight model |\n| `claude-opus-4-1-20250805` | Pin Opus 4.1 snapshot |\n\nAliases auto-resolve to dated snapshots: `claude-opus-4-5`,\n`claude-sonnet-4-5`, `claude-haiku-4-5`.\n\n## Connect Claude Code itself\n\n```bash\nANTHROPIC_BASE_URL=https://runapi.ai \\\nANTHROPIC_API_KEY=YOUR_RUNAPI_TOKEN \\\nclaude\n```\n\n## Agent rules\n\n- Always pass `max_tokens` — the Anthropic API rejects requests without it.\n- Use streaming for any response longer than a few hundred tokens. Do not hold\n  the agent on a long blocking request.\n- Default Claude-native integrations to the Anthropic Messages endpoint. Use\n  OpenAI-compatible or Gemini `contents` paths only for existing clients that\n  require those request shapes.\n- `include_thoughts` only works on the two Sonnet models listed above; do not\n  send it on Opus or Haiku.\n- Pricing, rate limits, quotas — link to <https://runapi.ai/models/claude.md>,\n  not this skill file.\n- For exact token usage read `usage` from the `POST /v1/messages`\n  response, not from `/v1/messages/count_tokens`.\n\n## Routing\n\n- Model page: <https://runapi.ai/models/claude.md>\n- Provider page: <https://runapi.ai/providers/anthropic.md>\n- Catalog: <https://runapi.ai/models.md>\n\nFile v0.2.12:_meta.json\n\n{\n  \"ownerId\": \"kn70me4rk7jqjt92evshjeb5z18768g7\",\n  \"slug\": \"runapi-claude\",\n  \"version\": \"0.2.12\",\n  \"publishedAt\": 1785213933214\n}\n\nFile v0.2.12:skill-card.md\n\n## Description: <br>\nCall the Claude API (claude-opus, claude-sonnet, claude-haiku) through RunAPI using the official Anthropic SDK, OpenAI SDK, Gemini contents clients, or compatible clients. Use when the user asks for Claude / Anthropic chat, streaming messages, multimodal vision input, tool use, extended thinking, token counting, OpenAI or Gemini protocol compatibility, or when they want to point an existing LLM SDK setup at RunAPI as the base URL. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[runapi-ai](https://clawhub.ai/user/runapi-ai) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent builders use this skill to configure Claude-compatible chat, streaming, vision, tool use, reasoning, token counting, and protocol-compatible API calls through RunAPI. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Prompts, image URLs, tool payloads, and API metadata are routed to an external RunAPI service. <br>\nMitigation: Install only for approved RunAPI use, and avoid sending secrets or regulated data unless the organization has approved that use. <br>\nRisk: Misconfigured credentials or base URL settings can send Claude-compatible requests to the wrong endpoint or fail at runtime. <br>\nMitigation: Configure ANTHROPIC_API_KEY with a RunAPI token and ANTHROPIC_BASE_URL as https://runapi.ai before use. <br>\nRisk: Long non-streaming generations can block an agent workflow. <br>\nMitigation: Use streaming for responses longer than a few hundred tokens or for extended-thinking and large max_tokens requests. <br>\n\n\n## Reference(s): <br>\n- [RunAPI Claude Model Page](https://runapi.ai/models/claude.md) <br>\n- [RunAPI Anthropic Provider Page](https://runapi.ai/providers/anthropic.md) <br>\n- [RunAPI Model Catalog](https://runapi.ai/models.md) <br>\n- [ClawHub Skill Page](https://clawhub.ai/runapi-ai/skills/runapi-claude) <br>\n- [RunAPI Claude Homepage](https://runapi.ai/models/claude) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [guidance, markdown, code, shell commands, configuration] <br>\n**Output Format:** [Markdown with inline Python, TypeScript, JSON, dotenv, and bash examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires ANTHROPIC_API_KEY and ANTHROPIC_BASE_URL for RunAPI-backed Claude requests.] <br>\n\n## Skill Version(s): <br>\n0.2.12 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v0.2.11: 3 files, 4719 bytes\n\nFiles: skill-card.md (2508b), SKILL.md (8535b), _meta.json (133b)\n\nFile v0.2.11:SKILL.md\n\n---\nname: claude\ndescription: Call the Claude API (claude-opus, claude-sonnet, claude-haiku) through RunAPI using the official Anthropic SDK, OpenAI SDK, Gemini contents clients, or compatible clients. Use when the user asks for Claude / Anthropic chat, streaming messages, multimodal vision input, tool use, extended thinking, token counting, OpenAI or Gemini protocol compatibility, or when they want to point an existing LLM SDK setup at RunAPI as the base URL.\ndocumentation: https://runapi.ai/models/claude.md\nprovider_page: https://runapi.ai/providers/anthropic.md\ncatalog: https://runapi.ai/models.md\nmetadata:\n  openclaw:\n    homepage: https://runapi.ai/models/claude\n    primaryEnv: ANTHROPIC_API_KEY\n    requires:\n      env:\n      - ANTHROPIC_API_KEY\n      - ANTHROPIC_BASE_URL\n    envVars:\n    - name: ANTHROPIC_API_KEY\n      required: true\n      description: RunAPI API key used by Anthropic-compatible SDKs.\n    - name: ANTHROPIC_BASE_URL\n      required: true\n      description: Set to https://runapi.ai for Claude on RunAPI.\n---\n\n# Claude on RunAPI\n\nUse the official **Anthropic SDK** (Python, TypeScript, Ruby) -- or any\nAnthropic-compatible HTTP client — and switch the base URL to\n`https://runapi.ai`. The endpoint speaks the Anthropic Messages protocol\n(`POST /v1/messages`), so no client code changes beyond `base_url` and\n`api_key`.\n\n## Setup\n\n```dotenv\nANTHROPIC_API_KEY=YOUR_RUNAPI_TOKEN\nANTHROPIC_BASE_URL=https://runapi.ai\n```\n\nGet a RunAPI API Key at <https://runapi.ai/api_keys>.\n\n| Language | Init |\n|---|---|\n| Python | `anthropic.Anthropic(api_key=..., base_url=\"https://runapi.ai\")` |\n| TypeScript | `new Anthropic({ apiKey: ..., baseURL: \"https://runapi.ai\" })` |\n| Ruby | `Anthropic::Client.new(api_key: ..., base_url: \"https://runapi.ai\")` |\n| curl | `POST https://runapi.ai/v1/messages` with `x-api-key:` header |\n\n`x-api-key` and `Authorization: Bearer ...` both work; the SDK uses\n`x-api-key` by default.\n\n## Core recipe — non-streaming message\n\n```python\nimport anthropic\n\nclient = anthropic.Anthropic(\n    api_key=\"YOUR_RUNAPI_TOKEN\",\n    base_url=\"https://runapi.ai\",\n)\n\nmessage = client.messages.create(\n    model=\"claude-sonnet-4-6\",\n    max_tokens=1024,\n    system=\"You are a helpful assistant.\",\n    messages=[{\"role\": \"user\", \"content\": \"Explain quantum computing simply.\"}],\n)\nprint(message.content[0].text)\nprint(message.usage)  # input_tokens / output_tokens\n```\n\n```typescript\nimport Anthropic from \"@anthropic-ai/sdk\";\n\nconst client = new Anthropic({\n  apiKey: \"YOUR_RUNAPI_TOKEN\",\n  baseURL: \"https://runapi.ai\",\n});\n\nconst message = await client.messages.create({\n  model: \"claude-sonnet-4-6\",\n  max_tokens: 1024,\n  system: \"You are a helpful assistant.\",\n  messages: [{ role: \"user\", content: \"Explain quantum computing simply.\" }],\n});\n```\n\n`max_tokens` is required by the Anthropic API.\n\n## Streaming\n\n```python\nwith client.messages.stream(\n    model=\"claude-sonnet-4-6\",\n    max_tokens=1024,\n    messages=[{\"role\": \"user\", \"content\": \"Write a haiku about coding.\"}],\n) as stream:\n    for text in stream.text_stream:\n        print(text, end=\"\", flush=True)\n```\n\n```typescript\nconst stream = await client.messages.stream({\n  model: \"claude-sonnet-4-6\",\n  max_tokens: 1024,\n  messages: [{ role: \"user\", content: \"Write a haiku about coding.\" }],\n});\n\nfor await (const event of stream) {\n  if (event.type === \"content_block_delta\") {\n    process.stdout.write(event.delta.text);\n  }\n}\n```\n\nStreaming runs through a regional edge proxy so the request does not hold a\nRails/Puma thread. Long generations (extended thinking, large `max_tokens`)\nshould always stream.\n\n## Vision / multimodal\n\n```json\n{\n  \"model\": \"claude-sonnet-4-6\",\n  \"max_tokens\": 1024,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": [\n        { \"type\": \"text\", \"text\": \"What is in this image?\" },\n        {\n          \"type\": \"image_url\",\n          \"image_url\": { \"url\": \"https://cdn.runapi.ai/public/samples/mask.png\" }\n        }\n      ]\n    }\n  ]\n}\n```\n\nImage input uses the standard Anthropic `image_url` block. URLs must be\npublicly fetchable.\n\n## Tool use / web search / reasoning\n\n```json\n{\n  \"model\": \"claude-sonnet-4-6\",\n  \"max_tokens\": 1024,\n  \"reasoning_effort\": \"high\",\n  \"include_thoughts\": true,\n  \"tools\": [\n    { \"type\": \"function\", \"function\": { \"name\": \"googleSearch\" } }\n  ],\n  \"messages\": [\n    { \"role\": \"user\", \"content\": \"What's the latest on Claude 4.7?\" }\n  ]\n}\n```\n\n- `reasoning_effort`: `\"low\"` or `\"high\"`. Supported on every model below.\n- `include_thoughts`: returns reasoning content. Only `claude-sonnet-4-5-20250929`\n  and `claude-sonnet-4-6` support this.\n- Web access uses a `googleSearch` function tool.\n- Set header `anthropic-beta: interleaved-thinking-2025-05-14` to interleave\n  thinking blocks with output.\n\n## Token counting\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/messages/count_tokens\" \\\n  -H \"x-api-key: YOUR_RUNAPI_TOKEN\" \\\n  -H \"anthropic-version: 2023-06-01\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-6\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"How many tokens?\"}]\n  }'\n```\n\nReturns `{\"input_tokens\": <n>}`. Image blocks use a 512-token heuristic; for\nexact response usage read `usage` from the actual `POST /v1/messages` response.\n\n## List models\n\n```bash\ncurl https://runapi.ai/v1/models -H \"x-api-key: YOUR_RUNAPI_TOKEN\"\n```\n\nReturns Anthropic-compatible model objects.\n\n## Protocol compatibility\n\nClaude models are also available through RunAPI's OpenAI-compatible and Gemini\n`contents` client surfaces. Use these protocol paths when an existing agent\nruntime already speaks Chat Completions, Responses, or Gemini\n`generateContent` / `streamGenerateContent`; for new Claude-specific code,\nprefer the Anthropic Messages setup above.\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/chat/completions\" \\\n  -H \"Authorization: Bearer YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-6\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"Draft a concise answer.\"}]\n  }'\n```\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/responses\" \\\n  -H \"Authorization: Bearer YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-6\",\n    \"input\": \"Draft a concise answer.\"\n  }'\n```\n\n```bash\ncurl -X POST \\\n  \"https://runapi.ai/v1beta/models/claude-sonnet-4-6:streamGenerateContent\" \\\n  -H \"x-goog-api-key: YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"contents\":[{\"role\":\"user\",\"parts\":[{\"text\":\"Hello, Claude!\"}]}]}'\n```\n\nToken counting remains specific to the Anthropic-compatible\n`/v1/messages/count_tokens` endpoint.\n\n## Supported models\n\n| Model ID | Use when |\n|---|---|\n| `claude-fable-5` | Flagship — state-of-the-art coding, reasoning, and vision (1M context) |\n| `claude-sonnet-5` | Near-Opus coding and agentic skill at Sonnet cost (1M context) |\n| `claude-opus-4-8` | Strongest general model — agents, complex reasoning |\n| `claude-opus-4-7` | Previous Opus generation for stable workloads |\n| `claude-opus-4-6` | High-end reasoning workloads |\n| `claude-sonnet-4-6` | Balanced default for production chat |\n| `claude-opus-4-5-20251101` | Pin Opus 4.5 snapshot |\n| `claude-sonnet-4-5-20250929` | Pin Sonnet 4.5 snapshot (supports `include_thoughts`) |\n| `claude-haiku-4-5-20251001` | Highest throughput lightweight model |\n| `claude-opus-4-1-20250805` | Pin Opus 4.1 snapshot |\n\nAliases auto-resolve to dated snapshots: `claude-opus-4-5`,\n`claude-sonnet-4-5`, `claude-haiku-4-5`.\n\n## Connect Claude Code itself\n\n```bash\nANTHROPIC_BASE_URL=https://runapi.ai \\\nANTHROPIC_API_KEY=YOUR_RUNAPI_TOKEN \\\nclaude\n```\n\n## Agent rules\n\n- Always pass `max_tokens` — the Anthropic API rejects requests without it.\n- Use streaming for any response longer than a few hundred tokens. Do not hold\n  the agent on a long blocking request.\n- Default Claude-native integrations to the Anthropic Messages endpoint. Use\n  OpenAI-compatible or Gemini `contents` paths only for existing clients that\n  require those request shapes.\n- `include_thoughts` only works on the two Sonnet models listed above; do not\n  send it on Opus or Haiku.\n- Pricing, rate limits, quotas — link to <https://runapi.ai/models/claude.md>,\n  not this skill file.\n- For exact token usage read `usage` from the `POST /v1/messages`\n  response, not from `/v1/messages/count_tokens`.\n\n## Routing\n\n- Model page: <https://runapi.ai/models/claude.md>\n- Provider page: <https://runapi.ai/providers/anthropic.md>\n- Catalog: <https://runapi.ai/models.md>\n\nFile v0.2.11:_meta.json\n\n{\n  \"ownerId\": \"kn70me4rk7jqjt92evshjeb5z18768g7\",\n  \"slug\": \"runapi-claude\",\n  \"version\": \"0.2.11\",\n  \"publishedAt\": 1784385133745\n}\n\nFile v0.2.11:skill-card.md\n\n## Description: <br>\nCall the Claude API through RunAPI using Anthropic, OpenAI, Gemini-compatible, or other compatible clients for chat, streaming, multimodal input, tool use, extended thinking, token counting, and protocol-compatible integrations. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[runapi-ai](https://clawhub.ai/user/runapi-ai) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent builders use this skill to configure Claude API calls through RunAPI, including SDK setup, streaming, multimodal requests, token counting, and OpenAI or Gemini protocol compatibility. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Claude prompts and API traffic may be routed to RunAPI using a RunAPI token. <br>\nMitigation: Install and use the skill only when RunAPI is the intended Claude API route, and configure credentials explicitly through ANTHROPIC_API_KEY and ANTHROPIC_BASE_URL. <br>\nRisk: Broad Claude-related trigger wording may activate the skill for generic Claude help when stricter RunAPI-specific routing is desired. <br>\nMitigation: Review the trigger wording before deployment and narrow it if the environment should separate general Claude guidance from RunAPI API usage. <br>\n\n\n## Reference(s): <br>\n- [RunAPI Claude Model Documentation](https://runapi.ai/models/claude.md) <br>\n- [RunAPI Anthropic Provider Documentation](https://runapi.ai/providers/anthropic.md) <br>\n- [RunAPI Model Catalog](https://runapi.ai/models.md) <br>\n- [RunAPI Claude Homepage](https://runapi.ai/models/claude) <br>\n- [ClawHub Skill Page](https://clawhub.ai/runapi-ai/skills/runapi-claude) <br>\n- [ClawHub Publisher Profile](https://clawhub.ai/user/runapi-ai) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Guidance, Markdown, Code, Shell commands, Configuration] <br>\n**Output Format:** [Markdown with inline code blocks and command examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires RunAPI credentials via ANTHROPIC_API_KEY and ANTHROPIC_BASE_URL for the described API flows.] <br>\n\n## Skill Version(s): <br>\n0.2.11 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v0.2.10: 3 files, 4873 bytes\n\nFiles: skill-card.md (2811b), SKILL.md (8641b), _meta.json (133b)\n\nFile v0.2.10:SKILL.md\n\n---\nname: claude\ndescription: Call the Claude API (claude-opus, claude-sonnet, claude-haiku) through RunAPI using the official Anthropic SDK, OpenAI SDK, Gemini contents clients, or compatible clients. Use when the user asks for Claude / Anthropic chat, streaming messages, multimodal vision input, tool use, extended thinking, token counting, OpenAI or Gemini protocol compatibility, or when they want to point an existing LLM SDK setup at RunAPI as the base URL.\ndocumentation: https://runapi.ai/models/claude.md\nprovider_page: https://runapi.ai/providers/anthropic.md\ncatalog: https://runapi.ai/models.md\nmetadata:\n  openclaw:\n    homepage: https://runapi.ai/models/claude\n    primaryEnv: ANTHROPIC_API_KEY\n    requires:\n      env:\n      - ANTHROPIC_API_KEY\n      - ANTHROPIC_BASE_URL\n    envVars:\n    - name: ANTHROPIC_API_KEY\n      required: true\n      description: RunAPI API key used by Anthropic-compatible SDKs.\n    - name: ANTHROPIC_BASE_URL\n      required: true\n      description: Set to https://runapi.ai for Claude on RunAPI.\n---\n\n# Claude on RunAPI\n\nUse the official **Anthropic SDK** (Python, TypeScript, Ruby) -- or any\nAnthropic-compatible HTTP client — and switch the base URL to\n`https://runapi.ai`. The endpoint speaks the Anthropic Messages protocol\n(`POST /v1/messages`), so no client code changes beyond `base_url` and\n`api_key`.\n\n## Setup\n\n```dotenv\nANTHROPIC_API_KEY=YOUR_RUNAPI_TOKEN\nANTHROPIC_BASE_URL=https://runapi.ai\n```\n\nGet a RunAPI API Key at <https://runapi.ai/api_keys>.\n\n| Language | Init |\n|---|---|\n| Python | `anthropic.Anthropic(api_key=..., base_url=\"https://runapi.ai\")` |\n| TypeScript | `new Anthropic({ apiKey: ..., baseURL: \"https://runapi.ai\" })` |\n| Ruby | `Anthropic::Client.new(api_key: ..., base_url: \"https://runapi.ai\")` |\n| curl | `POST https://runapi.ai/v1/messages` with `x-api-key:` header |\n\n`x-api-key` and `Authorization: Bearer ...` both work; the SDK uses\n`x-api-key` by default.\n\n## Core recipe — non-streaming message\n\n```python\nimport anthropic\n\nclient = anthropic.Anthropic(\n    api_key=\"YOUR_RUNAPI_TOKEN\",\n    base_url=\"https://runapi.ai\",\n)\n\nmessage = client.messages.create(\n    model=\"claude-sonnet-4-6\",\n    max_tokens=1024,\n    system=\"You are a helpful assistant.\",\n    messages=[{\"role\": \"user\", \"content\": \"Explain quantum computing simply.\"}],\n)\nprint(message.content[0].text)\nprint(message.usage)  # input_tokens / output_tokens\n```\n\n```typescript\nimport Anthropic from \"@anthropic-ai/sdk\";\n\nconst client = new Anthropic({\n  apiKey: \"YOUR_RUNAPI_TOKEN\",\n  baseURL: \"https://runapi.ai\",\n});\n\nconst message = await client.messages.create({\n  model: \"claude-sonnet-4-6\",\n  max_tokens: 1024,\n  system: \"You are a helpful assistant.\",\n  messages: [{ role: \"user\", content: \"Explain quantum computing simply.\" }],\n});\n```\n\n`max_tokens` is required by the Anthropic API.\n\n## Streaming\n\n```python\nwith client.messages.stream(\n    model=\"claude-sonnet-4-6\",\n    max_tokens=1024,\n    messages=[{\"role\": \"user\", \"content\": \"Write a haiku about coding.\"}],\n) as stream:\n    for text in stream.text_stream:\n        print(text, end=\"\", flush=True)\n```\n\n```typescript\nconst stream = await client.messages.stream({\n  model: \"claude-sonnet-4-6\",\n  max_tokens: 1024,\n  messages: [{ role: \"user\", content: \"Write a haiku about coding.\" }],\n});\n\nfor await (const event of stream) {\n  if (event.type === \"content_block_delta\") {\n    process.stdout.write(event.delta.text);\n  }\n}\n```\n\nStreaming runs through a regional edge proxy so the request does not hold a\nRails/Puma thread. Long generations (extended thinking, large `max_tokens`)\nshould always stream.\n\n## Vision / multimodal\n\n```json\n{\n  \"model\": \"claude-sonnet-4-6\",\n  \"max_tokens\": 1024,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": [\n        { \"type\": \"text\", \"text\": \"What is in this image?\" },\n        {\n          \"type\": \"image_url\",\n          \"image_url\": { \"url\": \"https://cdn.runapi.ai/public/samples/mask.png\" }\n        }\n      ]\n    }\n  ]\n}\n```\n\nImage input uses the standard Anthropic `image_url` block. URLs must be\npublicly fetchable.\n\n## Tool use / web search / reasoning\n\n```json\n{\n  \"model\": \"claude-sonnet-4-6\",\n  \"max_tokens\": 1024,\n  \"reasoning_effort\": \"high\",\n  \"include_thoughts\": true,\n  \"tools\": [\n    { \"type\": \"function\", \"function\": { \"name\": \"googleSearch\" } }\n  ],\n  \"messages\": [\n    { \"role\": \"user\", \"content\": \"What's the latest on Claude 4.7?\" }\n  ]\n}\n```\n\n- `reasoning_effort`: `\"low\"` or `\"high\"`. Supported on every model below.\n- `include_thoughts`: returns reasoning content. Only `claude-sonnet-4-5-20250929`\n  and `claude-sonnet-4-6` support this.\n- Web access uses a `googleSearch` function tool.\n- Set header `anthropic-beta: interleaved-thinking-2025-05-14` to interleave\n  thinking blocks with output.\n\n## Token counting\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/messages/count_tokens\" \\\n  -H \"x-api-key: YOUR_RUNAPI_TOKEN\" \\\n  -H \"anthropic-version: 2023-06-01\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-6\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"How many tokens?\"}]\n  }'\n```\n\nReturns `{\"input_tokens\": <n>}`. Image blocks use a 512-token heuristic; for\nexact response usage read `usage` from the actual `POST /v1/messages` response.\n\n## List models\n\n```bash\ncurl https://runapi.ai/v1/models -H \"x-api-key: YOUR_RUNAPI_TOKEN\"\n```\n\nReturns Anthropic-compatible model objects.\n\n## Protocol compatibility\n\nClaude models are also available through RunAPI's OpenAI-compatible and Gemini\n`contents` client surfaces. Use these protocol paths when an existing agent\nruntime already speaks Chat Completions, Responses, or Gemini\n`generateContent` / `streamGenerateContent`; for new Claude-specific code,\nprefer the Anthropic Messages setup above.\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/chat/completions\" \\\n  -H \"Authorization: Bearer YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-6\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"Draft a concise answer.\"}]\n  }'\n```\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/responses\" \\\n  -H \"Authorization: Bearer YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-6\",\n    \"input\": \"Draft a concise answer.\"\n  }'\n```\n\n```bash\ncurl -X POST \\\n  \"https://runapi.ai/v1beta/models/claude-sonnet-4-6:streamGenerateContent\" \\\n  -H \"x-goog-api-key: YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"contents\":[{\"role\":\"user\",\"parts\":[{\"text\":\"Hello, Claude!\"}]}]}'\n```\n\nToken counting remains specific to the Anthropic-compatible\n`/v1/messages/count_tokens` endpoint.\n\n## Supported models\n\n| Model ID | Use when |\n|---|---|\n| `claude-fable-5` | Flagship — state-of-the-art coding, reasoning, and vision (1M context) |\n| `claude-sonnet-5` | Near-Opus coding and agentic skill at Sonnet cost (1M context) |\n| `claude-opus-4-8` | Strongest general model — agents, complex reasoning |\n| `claude-opus-4-7` | Previous Opus generation for stable workloads |\n| `claude-opus-4-6` | High-end reasoning workloads |\n| `claude-sonnet-4-6` | Balanced default for production chat |\n| `claude-opus-4-5-20251101` | Pin Opus 4.5 snapshot |\n| `claude-sonnet-4-5-20250929` | Pin Sonnet 4.5 snapshot (supports `include_thoughts`) |\n| `claude-haiku-4-5-20251001` | Highest throughput lightweight model |\n| `claude-opus-4-1-20250805` | Pin Opus 4.1 snapshot |\n| `claude-opus-4-20250514` | Pin Opus 4 snapshot |\n| `claude-sonnet-4-20250514` | Pin Sonnet 4 snapshot |\n\nAliases auto-resolve to dated snapshots: `claude-opus-4-5`,\n`claude-sonnet-4-5`, `claude-haiku-4-5`.\n\n## Connect Claude Code itself\n\n```bash\nANTHROPIC_BASE_URL=https://runapi.ai \\\nANTHROPIC_API_KEY=YOUR_RUNAPI_TOKEN \\\nclaude\n```\n\n## Agent rules\n\n- Always pass `max_tokens` — the Anthropic API rejects requests without it.\n- Use streaming for any response longer than a few hundred tokens. Do not hold\n  the agent on a long blocking request.\n- Default Claude-native integrations to the Anthropic Messages endpoint. Use\n  OpenAI-compatible or Gemini `contents` paths only for existing clients that\n  require those request shapes.\n- `include_thoughts` only works on the two Sonnet models listed above; do not\n  send it on Opus or Haiku.\n- Pricing, rate limits, quotas — link to <https://runapi.ai/models/claude.md>,\n  not this skill file.\n- For exact token usage read `usage` from the `POST /v1/messages`\n  response, not from `/v1/messages/count_tokens`.\n\n## Routing\n\n- Model page: <https://runapi.ai/models/claude.md>\n- Provider page: <https://runapi.ai/providers/anthropic.md>\n- Catalog: <https://runapi.ai/models.md>\n\nFile v0.2.10:_meta.json\n\n{\n  \"ownerId\": \"kn70me4rk7jqjt92evshjeb5z18768g7\",\n  \"slug\": \"runapi-claude\",\n  \"version\": \"0.2.10\",\n  \"publishedAt\": 1783485734208\n}\n\nFile v0.2.10:skill-card.md\n\n## Description: <br>\nThis skill helps agents call Claude models through RunAPI using Anthropic SDKs, OpenAI-compatible clients, Gemini contents clients, or compatible HTTP clients for chat, streaming, multimodal input, tool use, reasoning, and token counting. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[runapi-ai](https://clawhub.ai/user/runapi-ai) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent builders use this skill to configure Claude API requests through RunAPI and choose supported request patterns for streaming, vision, tool use, token counting, model listing, and protocol-compatible clients. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Claude requests, prompts, images, tool inputs, token-counting requests, and API keys are processed by RunAPI when the documented configuration is used. <br>\nMitigation: Install the skill only when RunAPI routing is intended, set the RunAPI token deliberately, and treat the token and submitted content according to the same controls used for other third-party AI providers. <br>\nRisk: Long generations or extended-thinking requests can create slow blocking calls if run without streaming. <br>\nMitigation: Use the documented streaming patterns for responses longer than a few hundred tokens or for large max_tokens requests. <br>\nRisk: Token-counting examples use a heuristic for image blocks and may not match exact billed or returned usage. <br>\nMitigation: Read the usage field from the actual messages response when exact token accounting is required. <br>\n\n\n## Reference(s): <br>\n- [RunAPI Claude model documentation](https://runapi.ai/models/claude.md) <br>\n- [RunAPI Anthropic provider documentation](https://runapi.ai/providers/anthropic.md) <br>\n- [RunAPI model catalog](https://runapi.ai/models.md) <br>\n- [RunAPI Claude homepage](https://runapi.ai/models/claude) <br>\n- [ClawHub skill page](https://clawhub.ai/runapi-ai/skills/runapi-claude) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with code blocks, shell commands, configuration snippets, and API request examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires ANTHROPIC_API_KEY and ANTHROPIC_BASE_URL for the documented RunAPI routing examples.] <br>\n\n## Skill Version(s): <br>\n0.2.10 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v0.2.9: 3 files, 4703 bytes\n\nFiles: skill-card.md (2439b), SKILL.md (8554b), _meta.json (132b)\n\nFile v0.2.9:SKILL.md\n\n---\nname: claude\ndescription: Call the Claude API (claude-opus, claude-sonnet, claude-haiku) through RunAPI using the official Anthropic SDK, OpenAI SDK, Gemini contents clients, or compatible clients. Use when the user asks for Claude / Anthropic chat, streaming messages, multimodal vision input, tool use, extended thinking, token counting, OpenAI or Gemini protocol compatibility, or when they want to point an existing LLM SDK setup at RunAPI as the base URL.\ndocumentation: https://runapi.ai/models/claude.md\nprovider_page: https://runapi.ai/providers/anthropic.md\ncatalog: https://runapi.ai/models.md\nmetadata:\n  openclaw:\n    homepage: https://runapi.ai/models/claude\n    primaryEnv: ANTHROPIC_API_KEY\n    requires:\n      env:\n      - ANTHROPIC_API_KEY\n      - ANTHROPIC_BASE_URL\n    envVars:\n    - name: ANTHROPIC_API_KEY\n      required: true\n      description: RunAPI API key used by Anthropic-compatible SDKs.\n    - name: ANTHROPIC_BASE_URL\n      required: true\n      description: Set to https://runapi.ai for Claude on RunAPI.\n---\n\n# Claude on RunAPI\n\nUse the official **Anthropic SDK** (Python, TypeScript, Ruby) -- or any\nAnthropic-compatible HTTP client — and switch the base URL to\n`https://runapi.ai`. The endpoint speaks the Anthropic Messages protocol\n(`POST /v1/messages`), so no client code changes beyond `base_url` and\n`api_key`.\n\n## Setup\n\n```dotenv\nANTHROPIC_API_KEY=YOUR_RUNAPI_TOKEN\nANTHROPIC_BASE_URL=https://runapi.ai\n```\n\nGet a RunAPI API Key at <https://runapi.ai/api_keys>.\n\n| Language | Init |\n|---|---|\n| Python | `anthropic.Anthropic(api_key=..., base_url=\"https://runapi.ai\")` |\n| TypeScript | `new Anthropic({ apiKey: ..., baseURL: \"https://runapi.ai\" })` |\n| Ruby | `Anthropic::Client.new(api_key: ..., base_url: \"https://runapi.ai\")` |\n| curl | `POST https://runapi.ai/v1/messages` with `x-api-key:` header |\n\n`x-api-key` and `Authorization: Bearer ...` both work; the SDK uses\n`x-api-key` by default.\n\n## Core recipe — non-streaming message\n\n```python\nimport anthropic\n\nclient = anthropic.Anthropic(\n    api_key=\"YOUR_RUNAPI_TOKEN\",\n    base_url=\"https://runapi.ai\",\n)\n\nmessage = client.messages.create(\n    model=\"claude-sonnet-4-6\",\n    max_tokens=1024,\n    system=\"You are a helpful assistant.\",\n    messages=[{\"role\": \"user\", \"content\": \"Explain quantum computing simply.\"}],\n)\nprint(message.content[0].text)\nprint(message.usage)  # input_tokens / output_tokens\n```\n\n```typescript\nimport Anthropic from \"@anthropic-ai/sdk\";\n\nconst client = new Anthropic({\n  apiKey: \"YOUR_RUNAPI_TOKEN\",\n  baseURL: \"https://runapi.ai\",\n});\n\nconst message = await client.messages.create({\n  model: \"claude-sonnet-4-6\",\n  max_tokens: 1024,\n  system: \"You are a helpful assistant.\",\n  messages: [{ role: \"user\", content: \"Explain quantum computing simply.\" }],\n});\n```\n\n`max_tokens` is required by the Anthropic API.\n\n## Streaming\n\n```python\nwith client.messages.stream(\n    model=\"claude-sonnet-4-6\",\n    max_tokens=1024,\n    messages=[{\"role\": \"user\", \"content\": \"Write a haiku about coding.\"}],\n) as stream:\n    for text in stream.text_stream:\n        print(text, end=\"\", flush=True)\n```\n\n```typescript\nconst stream = await client.messages.stream({\n  model: \"claude-sonnet-4-6\",\n  max_tokens: 1024,\n  messages: [{ role: \"user\", content: \"Write a haiku about coding.\" }],\n});\n\nfor await (const event of stream) {\n  if (event.type === \"content_block_delta\") {\n    process.stdout.write(event.delta.text);\n  }\n}\n```\n\nStreaming runs through a regional edge proxy so the request does not hold a\nRails/Puma thread. Long generations (extended thinking, large `max_tokens`)\nshould always stream.\n\n## Vision / multimodal\n\n```json\n{\n  \"model\": \"claude-sonnet-4-6\",\n  \"max_tokens\": 1024,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": [\n        { \"type\": \"text\", \"text\": \"What is in this image?\" },\n        {\n          \"type\": \"image_url\",\n          \"image_url\": { \"url\": \"https://cdn.runapi.ai/public/samples/mask.png\" }\n        }\n      ]\n    }\n  ]\n}\n```\n\nImage input uses the standard Anthropic `image_url` block. URLs must be\npublicly fetchable.\n\n## Tool use / web search / reasoning\n\n```json\n{\n  \"model\": \"claude-sonnet-4-6\",\n  \"max_tokens\": 1024,\n  \"reasoning_effort\": \"high\",\n  \"include_thoughts\": true,\n  \"tools\": [\n    { \"type\": \"function\", \"function\": { \"name\": \"googleSearch\" } }\n  ],\n  \"messages\": [\n    { \"role\": \"user\", \"content\": \"What's the latest on Claude 4.7?\" }\n  ]\n}\n```\n\n- `reasoning_effort`: `\"low\"` or `\"high\"`. Supported on every model below.\n- `include_thoughts`: returns reasoning content. Only `claude-sonnet-4-5-20250929`\n  and `claude-sonnet-4-6` support this.\n- Web access uses a `googleSearch` function tool.\n- Set header `anthropic-beta: interleaved-thinking-2025-05-14` to interleave\n  thinking blocks with output.\n\n## Token counting\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/messages/count_tokens\" \\\n  -H \"x-api-key: YOUR_RUNAPI_TOKEN\" \\\n  -H \"anthropic-version: 2023-06-01\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-6\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"How many tokens?\"}]\n  }'\n```\n\nReturns `{\"input_tokens\": <n>}`. Image blocks use a 512-token heuristic; for\nexact response usage read `usage` from the actual `POST /v1/messages` response.\n\n## List models\n\n```bash\ncurl https://runapi.ai/v1/models -H \"x-api-key: YOUR_RUNAPI_TOKEN\"\n```\n\nReturns Anthropic-compatible model objects.\n\n## Protocol compatibility\n\nClaude models are also available through RunAPI's OpenAI-compatible and Gemini\n`contents` client surfaces. Use these protocol paths when an existing agent\nruntime already speaks Chat Completions, Responses, or Gemini\n`generateContent` / `streamGenerateContent`; for new Claude-specific code,\nprefer the Anthropic Messages setup above.\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/chat/completions\" \\\n  -H \"Authorization: Bearer YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-6\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"Draft a concise answer.\"}]\n  }'\n```\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/responses\" \\\n  -H \"Authorization: Bearer YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-6\",\n    \"input\": \"Draft a concise answer.\"\n  }'\n```\n\n```bash\ncurl -X POST \\\n  \"https://runapi.ai/v1beta/models/claude-sonnet-4-6:streamGenerateContent\" \\\n  -H \"x-goog-api-key: YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"contents\":[{\"role\":\"user\",\"parts\":[{\"text\":\"Hello, Claude!\"}]}]}'\n```\n\nToken counting remains specific to the Anthropic-compatible\n`/v1/messages/count_tokens` endpoint.\n\n## Supported models\n\n| Model ID | Use when |\n|---|---|\n| `claude-fable-5` | Flagship — state-of-the-art coding, reasoning, and vision (1M context) |\n| `claude-opus-4-8` | Strongest general model — agents, complex reasoning |\n| `claude-opus-4-7` | Previous Opus generation for stable workloads |\n| `claude-opus-4-6` | High-end reasoning workloads |\n| `claude-sonnet-4-6` | Balanced default for production chat |\n| `claude-opus-4-5-20251101` | Pin Opus 4.5 snapshot |\n| `claude-sonnet-4-5-20250929` | Pin Sonnet 4.5 snapshot (supports `include_thoughts`) |\n| `claude-haiku-4-5-20251001` | Highest throughput lightweight model |\n| `claude-opus-4-1-20250805` | Pin Opus 4.1 snapshot |\n| `claude-opus-4-20250514` | Pin Opus 4 snapshot |\n| `claude-sonnet-4-20250514` | Pin Sonnet 4 snapshot |\n\nAliases auto-resolve to dated snapshots: `claude-opus-4-5`,\n`claude-sonnet-4-5`, `claude-haiku-4-5`.\n\n## Connect Claude Code itself\n\n```bash\nANTHROPIC_BASE_URL=https://runapi.ai \\\nANTHROPIC_API_KEY=YOUR_RUNAPI_TOKEN \\\nclaude\n```\n\n## Agent rules\n\n- Always pass `max_tokens` — the Anthropic API rejects requests without it.\n- Use streaming for any response longer than a few hundred tokens. Do not hold\n  the agent on a long blocking request.\n- Default Claude-native integrations to the Anthropic Messages endpoint. Use\n  OpenAI-compatible or Gemini `contents` paths only for existing clients that\n  require those request shapes.\n- `include_thoughts` only works on the two Sonnet models listed above; do not\n  send it on Opus or Haiku.\n- Pricing, rate limits, quotas — link to <https://runapi.ai/models/claude.md>,\n  not this skill file.\n- For exact token usage read `usage` from the `POST /v1/messages`\n  response, not from `/v1/messages/count_tokens`.\n\n## Routing\n\n- Model page: <https://runapi.ai/models/claude.md>\n- Provider page: <https://runapi.ai/providers/anthropic.md>\n- Catalog: <https://runapi.ai/models.md>\n\nFile v0.2.9:_meta.json\n\n{\n  \"ownerId\": \"kn70me4rk7jqjt92evshjeb5z18768g7\",\n  \"slug\": \"runapi-claude\",\n  \"version\": \"0.2.9\",\n  \"publishedAt\": 1782981732990\n}\n\nFile v0.2.9:skill-card.md\n\n## Description: <br>\nCall the Claude API through RunAPI using Anthropic-compatible SDKs, OpenAI-compatible clients, Gemini contents clients, or direct HTTP requests. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[runapi-ai](https://clawhub.ai/user/runapi-ai) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent builders use this skill to configure Claude requests through RunAPI, including chat, streaming, multimodal input, tool use, token counting, and protocol-compatible SDK integrations. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Claude requests are routed through RunAPI, which may receive prompts, attachments, image URLs, tool inputs, and request metadata. <br>\nMitigation: Confirm RunAPI account and data policies are appropriate before use, and avoid sending secrets or sensitive data unless approved. <br>\nRisk: Existing SDKs or agent runtimes can be repointed to RunAPI by changing base URL and API key configuration. <br>\nMitigation: Install and enable this skill only when RunAPI is the intended Claude endpoint, and review environment settings before running requests. <br>\nRisk: Long Claude generations can tie up an agent runtime when run as blocking requests. <br>\nMitigation: Use streaming for longer responses, extended thinking, or large max-token requests. <br>\n\n\n## Reference(s): <br>\n- [RunAPI Claude model page](https://runapi.ai/models/claude) <br>\n- [RunAPI Claude documentation](https://runapi.ai/models/claude.md) <br>\n- [RunAPI Anthropic provider documentation](https://runapi.ai/providers/anthropic.md) <br>\n- [RunAPI model catalog](https://runapi.ai/models.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [guidance, code, shell commands, configuration] <br>\n**Output Format:** [Markdown with code blocks, shell commands, and configuration snippets] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires ANTHROPIC_API_KEY and ANTHROPIC_BASE_URL for Anthropic-compatible clients.] <br>\n\n## Skill Version(s): <br>\n0.2.9 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v0.2.8: 3 files, 4553 bytes\n\nFiles: skill-card.md (2101b), SKILL.md (8377b), _meta.json (132b)\n\nFile v0.2.8:SKILL.md\n\n---\nname: claude\ndescription: Call the Claude API (claude-opus, claude-sonnet, claude-haiku) through RunAPI using the official Anthropic SDK, OpenAI SDK, Gemini contents clients, or compatible clients. Use when the user asks for Claude / Anthropic chat, streaming messages, multimodal vision input, tool use, extended thinking, token counting, OpenAI or Gemini protocol compatibility, or when they want to point an existing LLM SDK setup at RunAPI as the base URL.\ndocumentation: https://runapi.ai/models/claude.md\nprovider_page: https://runapi.ai/providers/anthropic.md\ncatalog: https://runapi.ai/models.md\nmetadata:\n  openclaw:\n    homepage: https://runapi.ai/models/claude\n    primaryEnv: ANTHROPIC_API_KEY\n    requires:\n      env:\n      - ANTHROPIC_API_KEY\n      - ANTHROPIC_BASE_URL\n    envVars:\n    - name: ANTHROPIC_API_KEY\n      required: true\n      description: RunAPI API key used by Anthropic-compatible SDKs.\n    - name: ANTHROPIC_BASE_URL\n      required: true\n      description: Set to https://runapi.ai for Claude on RunAPI.\n---\n\n# Claude on RunAPI\n\nUse the official **Anthropic SDK** (Python, TypeScript, Ruby) -- or any\nAnthropic-compatible HTTP client — and switch the base URL to\n`https://runapi.ai`. The endpoint speaks the Anthropic Messages protocol\n(`POST /v1/messages`), so no client code changes beyond `base_url` and\n`api_key`.\n\n## Setup\n\n```dotenv\nANTHROPIC_API_KEY=YOUR_RUNAPI_TOKEN\nANTHROPIC_BASE_URL=https://runapi.ai\n```\n\nGet a RunAPI API Key at <https://runapi.ai/api_keys>.\n\n| Language | Init |\n|---|---|\n| Python | `anthropic.Anthropic(api_key=..., base_url=\"https://runapi.ai\")` |\n| TypeScript | `new Anthropic({ apiKey: ..., baseURL: \"https://runapi.ai\" })` |\n| Ruby | `Anthropic::Client.new(api_key: ..., base_url: \"https://runapi.ai\")` |\n| curl | `POST https://runapi.ai/v1/messages` with `x-api-key:` header |\n\n`x-api-key` and `Authorization: Bearer ...` both work; the SDK uses\n`x-api-key` by default.\n\n## Core recipe — non-streaming message\n\n```python\nimport anthropic\n\nclient = anthropic.Anthropic(\n    api_key=\"YOUR_RUNAPI_TOKEN\",\n    base_url=\"https://runapi.ai\",\n)\n\nmessage = client.messages.create(\n    model=\"claude-sonnet-4-6\",\n    max_tokens=1024,\n    system=\"You are a helpful assistant.\",\n    messages=[{\"role\": \"user\", \"content\": \"Explain quantum computing simply.\"}],\n)\nprint(message.content[0].text)\nprint(message.usage)  # input_tokens / output_tokens\n```\n\n```typescript\nimport Anthropic from \"@anthropic-ai/sdk\";\n\nconst client = new Anthropic({\n  apiKey: \"YOUR_RUNAPI_TOKEN\",\n  baseURL: \"https://runapi.ai\",\n});\n\nconst message = await client.messages.create({\n  model: \"claude-sonnet-4-6\",\n  max_tokens: 1024,\n  system: \"You are a helpful assistant.\",\n  messages: [{ role: \"user\", content: \"Explain quantum computing simply.\" }],\n});\n```\n\n`max_tokens` is required by the Anthropic API.\n\n## Streaming\n\n```python\nwith client.messages.stream(\n    model=\"claude-sonnet-4-6\",\n    max_tokens=1024,\n    messages=[{\"role\": \"user\", \"content\": \"Write a haiku about coding.\"}],\n) as stream:\n    for text in stream.text_stream:\n        print(text, end=\"\", flush=True)\n```\n\n```typescript\nconst stream = await client.messages.stream({\n  model: \"claude-sonnet-4-6\",\n  max_tokens: 1024,\n  messages: [{ role: \"user\", content: \"Write a haiku about coding.\" }],\n});\n\nfor await (const event of stream) {\n  if (event.type === \"content_block_delta\") {\n    process.stdout.write(event.delta.text);\n  }\n}\n```\n\nStreaming runs through a regional edge proxy so the request does not hold a\nRails/Puma thread. Long generations (extended thinking, large `max_tokens`)\nshould always stream.\n\n## Vision / multimodal\n\n```json\n{\n  \"model\": \"claude-sonnet-4-6\",\n  \"max_tokens\": 1024,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": [\n        { \"type\": \"text\", \"text\": \"What is in this image?\" },\n        {\n          \"type\": \"image_url\",\n          \"image_url\": { \"url\": \"https://example.com/image.png\" }\n        }\n      ]\n    }\n  ]\n}\n```\n\nImage input uses the standard Anthropic `image_url` block. URLs must be\npublicly fetchable.\n\n## Tool use / web search / reasoning\n\n```json\n{\n  \"model\": \"claude-sonnet-4-6\",\n  \"max_tokens\": 1024,\n  \"reasoning_effort\": \"high\",\n  \"include_thoughts\": true,\n  \"tools\": [\n    { \"type\": \"function\", \"function\": { \"name\": \"googleSearch\" } }\n  ],\n  \"messages\": [\n    { \"role\": \"user\", \"content\": \"What's the latest on Claude 4.7?\" }\n  ]\n}\n```\n\n- `reasoning_effort`: `\"low\"` or `\"high\"`. Supported on every model below.\n- `include_thoughts`: returns reasoning content. Only `claude-sonnet-4-5-20250929`\n  and `claude-sonnet-4-6` support this.\n- Web access uses a `googleSearch` function tool.\n- Set header `anthropic-beta: interleaved-thinking-2025-05-14` to interleave\n  thinking blocks with output.\n\n## Token counting\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/messages/count_tokens\" \\\n  -H \"x-api-key: YOUR_RUNAPI_TOKEN\" \\\n  -H \"anthropic-version: 2023-06-01\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-6\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"How many tokens?\"}]\n  }'\n```\n\nReturns `{\"input_tokens\": <n>}`. Image blocks use a 512-token heuristic; for\nexact response usage read `usage` from the actual `POST /v1/messages` response.\n\n## List models\n\n```bash\ncurl https://runapi.ai/v1/models -H \"x-api-key: YOUR_RUNAPI_TOKEN\"\n```\n\nReturns Anthropic-compatible model objects.\n\n## Protocol compatibility\n\nClaude models are also available through RunAPI's OpenAI-compatible and Gemini\n`contents` client surfaces. Use these protocol paths when an existing agent\nruntime already speaks Chat Completions, Responses, or Gemini\n`generateContent` / `streamGenerateContent`; for new Claude-specific code,\nprefer the Anthropic Messages setup above.\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/chat/completions\" \\\n  -H \"Authorization: Bearer YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-6\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"Draft a concise answer.\"}]\n  }'\n```\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/responses\" \\\n  -H \"Authorization: Bearer YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-6\",\n    \"input\": \"Draft a concise answer.\"\n  }'\n```\n\n```bash\ncurl -X POST \\\n  \"https://runapi.ai/v1beta/models/claude-sonnet-4-6:streamGenerateContent\" \\\n  -H \"x-goog-api-key: YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"contents\":[{\"role\":\"user\",\"parts\":[{\"text\":\"Hello, Claude!\"}]}]}'\n```\n\nToken counting remains specific to the Anthropic-compatible\n`/v1/messages/count_tokens` endpoint.\n\n## Supported models\n\n| Model ID | Use when |\n|---|---|\n| `claude-fable-5` | Flagship — state-of-the-art coding, reasoning, and vision (1M context) |\n| `claude-opus-4-8` | Strongest general model — agents, complex reasoning |\n| `claude-opus-4-7` | Previous Opus generation for stable workloads |\n| `claude-opus-4-6` | High-end reasoning workloads |\n| `claude-sonnet-4-6` | Balanced default for production chat |\n| `claude-opus-4-5-20251101` | Pin Opus 4.5 snapshot |\n| `claude-sonnet-4-5-20250929` | Pin Sonnet 4.5 snapshot (supports `include_thoughts`) |\n| `claude-haiku-4-5-20251001` | Highest throughput lightweight model |\n\nAliases auto-resolve to dated snapshots: `claude-opus-4-5`,\n`claude-sonnet-4-5`, `claude-haiku-4-5`.\n\n## Connect Claude Code itself\n\n```bash\nANTHROPIC_BASE_URL=https://runapi.ai \\\nANTHROPIC_API_KEY=YOUR_RUNAPI_TOKEN \\\nclaude\n```\n\n## Agent rules\n\n- Always pass `max_tokens` — the Anthropic API rejects requests without it.\n- Use streaming for any response longer than a few hundred tokens. Do not hold\n  the agent on a long blocking request.\n- Default Claude-native integrations to the Anthropic Messages endpoint. Use\n  OpenAI-compatible or Gemini `contents` paths only for existing clients that\n  require those request shapes.\n- `include_thoughts` only works on the two Sonnet models listed above; do not\n  send it on Opus or Haiku.\n- Pricing, rate limits, quotas — link to <https://runapi.ai/models/claude.md>,\n  not this skill file.\n- For exact token usage read `usage` from the `POST /v1/messages`\n  response, not from `/v1/messages/count_tokens`.\n\n## Routing\n\n- Model page: <https://runapi.ai/models/claude.md>\n- Provider page: <https://runapi.ai/providers/anthropic.md>\n- Catalog: <https://runapi.ai/models.md>\n\nFile v0.2.8:_meta.json\n\n{\n  \"ownerId\": \"kn70me4rk7jqjt92evshjeb5z18768g7\",\n  \"slug\": \"runapi-claude\",\n  \"version\": \"0.2.8\",\n  \"publishedAt\": 1782293746690\n}\n\nFile v0.2.8:skill-card.md\n\n## Description: <br>\nCall the Claude API through RunAPI using Anthropic-compatible, OpenAI-compatible, Gemini contents, or other compatible clients. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[runapi-ai](https://clawhub.ai/user/runapi-ai) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent builders use this skill to configure Claude requests through RunAPI for chat, streaming, multimodal input, tool use, reasoning controls, token counting, and protocol-compatible client integrations. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Prompts, images, and request content are sent to RunAPI as a third-party API endpoint. <br>\nMitigation: Use the skill only when RunAPI is approved for the intended workload, and avoid sending secrets, credentials, regulated data, or sensitive personal or business content unless that use is approved. <br>\n\n\n## Reference(s): <br>\n- [RunAPI Claude model documentation](https://runapi.ai/models/claude.md) <br>\n- [RunAPI Anthropic provider documentation](https://runapi.ai/providers/anthropic.md) <br>\n- [RunAPI model catalog](https://runapi.ai/models.md) <br>\n- [RunAPI Claude homepage](https://runapi.ai/models/claude) <br>\n- [ClawHub skill page](https://clawhub.ai/runapi-ai/skills/runapi-claude) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Guidance, Configuration instructions, Code, Shell commands, JSON] <br>\n**Output Format:** [Markdown with inline code examples, shell commands, and JSON request bodies] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires ANTHROPIC_API_KEY and ANTHROPIC_BASE_URL for RunAPI-backed Claude calls.] <br>\n\n## Skill Version(s): <br>\n0.2.8 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>","readmeExcerpt":"Skill: claude Owner: runapi-ai Summary: Call Claude models through RunAPI using the Anthropic Messages protocol. Use for Claude chat, streaming, vision, tools, reasoning, token counting, or an existing compatibility client that needs the conditional reference. Tags: latest:0.2.17 Version history: v0.2.17 | 2026-09-30T12:15:26.518Z | user Changed - The supported model table now describes claude-opus-5-5 as the Claude ","codeSnippets":[],"executableExamples":[{"language":"python","snippet":"import anthropic\nclient = anthropic.Anthropic(api_key=\"YOUR_RUNAPI_TOKEN\", base_url=\"https://runapi.ai\")\nmessage = client.messages.create(\n    model=\"claude-sonnet-5\",\n    max_tokens=1024,\n    messages=[{\"role\": \"user\", \"content\": \"Explain this decision.\"}],\n)\nprint(message.content[0].text)\nprint(message.usage)"},{"language":"python","snippet":"import anthropic\nclient = anthropic.Anthropic(api_key=\"YOUR_RUNAPI_TOKEN\", base_url=\"https://runapi.ai\")\nmessage = client.messages.create(\n    model=\"claude-sonnet-5\",\n    max_tokens=1024,\n    messages=[{\"role\": \"user\", \"content\": \"Explain this decision.\"}],\n)\nprint(message.content[0].text)\nprint(message.usage)"},{"language":"python","snippet":"import anthropic\nclient = anthropic.Anthropic(api_key=\"YOUR_RUNAPI_TOKEN\", base_url=\"https://runapi.ai\")\nmessage = client.messages.create(\n    model=\"claude-sonnet-5\",\n    max_tokens=1024,\n    messages=[{\"role\": \"user\", \"content\": \"Explain this decision.\"}],\n)\nprint(message.content[0].text)\nprint(message.usage)"},{"language":"python","snippet":"import anthropic\nclient = anthropic.Anthropic(api_key=\"YOUR_RUNAPI_TOKEN\", base_url=\"https://runapi.ai\")\nmessage = client.messages.create(\n    model=\"claude-sonnet-5\",\n    max_tokens=1024,\n    messages=[{\"role\": \"user\", \"content\": \"Explain this decision.\"}],\n)\nprint(message.content[0].text)\nprint(message.usage)"},{"language":"dotenv","snippet":"ANTHROPIC_API_KEY=YOUR_RUNAPI_TOKEN\nANTHROPIC_BASE_URL=https://runapi.ai"},{"language":"python","snippet":"import anthropic\n\nclient = anthropic.Anthropic(\n    api_key=\"YOUR_RUNAPI_TOKEN\",\n    base_url=\"https://runapi.ai\",\n)\n\nmessage = client.messages.create(\n    model=\"claude-sonnet-4-6\",\n    max_tokens=1024,\n    system=\"You are a helpful assistant.\",\n    messages=[{\"role\": \"user\", \"content\": \"Explain quantum computing simply.\"}],\n)\nprint(message.content[0].text)\nprint(message.usage)  # input_tokens / output_tokens"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: claude\ndescription: Call Claude models through RunAPI using the Anthropic Messages protocol. Use for Claude chat, streaming, vision, tools, reasoning, token counting, or an existing compatibility client that needs the conditional reference.\ndocumentation: https://runapi.ai/models/claude.md\nprovider_page: https://runapi.ai/providers/anthropic.md\ncatalog: https://runapi.ai/models.md\nmetadata:\n  openclaw:\n    homepage: https://runapi.ai/models/claude\n    primaryEnv: ANTHROPIC_API_KEY\n    requires:\n      env: [ANTHROPIC_API_KEY, ANTHROPIC_BASE_URL]\n    envVars:\n    - {name: ANTHROPIC_API_KEY, required: true, description: RunAPI API key used by Anthropic-compatible clients.}\n    - {name: ANTHROPIC_BASE_URL, required: true, description: Set to https://runapi.ai for Claude on RunAPI.}\n---\n\n# Claude on RunAPI\n\nUse Anthropic Messages at `https://runapi.ai` with `POST /v1/messages` as the primary protocol.\n\n## Primary protocol recipe\n\n### Authenticate\n\nSet `ANTHROPIC_API_KEY` to a RunAPI API key and `ANTHROPIC_BASE_URL` to\n`https://runapi.ai`. The SDK sends `x-api-key`; Bearer authentication is also accepted.\n\n### Send request\n\n```python\nimport anthropic\nclient = anthropic.Anthropic(api_key=\"YOUR_RUNAPI_TOKEN\", base_url=\"https://runapi.ai\")\nmessage = client.messages.create(\n    model=\"claude-sonnet-5\",\n    max_tokens=1024,\n    messages=[{\"role\": \"user\", \"content\": \"Explain this decision.\"}],\n)\nprint(message.content[0].text)\nprint(message.usage)\n```\n\n`max_tokens` is required. For long output, use `client.messages.stream(...)`\nand consume `stream.text_stream` through the terminal event. Add image blocks,\nfunction tools, reasoning controls, or token counting only when the current\nRunAPI contract verifies them for the selected exact model.\n\n### Verify result\n\nRequire final text, `stop_reason`, and authoritative `usage`. A stream is\ncomplete only after terminal Usage and `message_stop`. Token counting estimates\ninput only; actual response Usage remains authoritative.\n\n### Stop boundaries\n\nCorrect a rejected shape once using the structured error. Retry transport once\nonly before any response or Usage and when replay is safe. Record a terminal\nerror and stop without changing model or protocol.\n\n## Compatibility protocols\n\nLoad [compatibility protocols](references/compatibility-protocols.md) only when an existing client requires OpenAI Chat/Responses or Gemini contents.\n\n## Supported models\n\n| Model ID | Use when |\n|---|---|\n| `claude-fable-5-1` | — |\n| `claude-fable-5` | Flagship state-of-the-art coding, reasoning, and vision |\n| `claude-sonnet-5` | Near-Opus coding at Sonnet cost |\n| `claude-opus-5` | Latest Opus frontier reasoning |\n| `claude-opus-4-8` | Strongest general model |\n| `claude-opus-4-7` | Previous Opus generation |\n| `claude-opus-4-6` | High-end reasoning |\n| `claude-sonnet-4-6` | Balanced reasoning and speed |\n| `claude-opus-4-5-20251101` | Dated Opus 4.5 snapshot |\n| `claude-sonnet-4-5-20250929` | Dated Sonnet 4.5 snapshot |\n| `claude-h"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn70me4rk7jqjt92evshjeb5z18768g7\",\n  \"slug\": \"runapi-claude\",\n  \"version\": \"0.2.17\",\n  \"publishedAt\": 1790770526518\n}"},{"path":"references/compatibility-protocols.md","content":"# Claude compatibility protocols\n\nLoad this reference only for an existing OpenAI or Gemini client. New Claude integrations use Anthropic Messages from the main skill.\n\nFor OpenAI clients, set the base URL to `https://runapi.ai/v1`, use a RunAPI\nkey, and call Chat Completions or Responses with a supported exact Claude model\nID. Verify `finish_reason` plus `usage` for Chat, or `response.completed` plus\n`usage` for Responses. SSE ends at `[DONE]`.\n\nFor Gemini contents, set `RUNAPI_MODEL` to a supported exact model ID and use\n`https://runapi.ai/v1beta/models/$RUNAPI_MODEL:generateContent`\nor `streamGenerateContent` with `x-goog-api-key`. Verify candidates,\n`finishReason`, and `usageMetadata`.\n\nApply one evidence-backed shape correction, at most one safe pre-response\ntransport retry, and no automatic model or protocol hopping."},{"path":"skill-card.md","content":"## Description:\n\nGuides developers in using Claude models through RunAPI with the Anthropic Messages protocol and optional OpenAI or Gemini client compatibility.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[runapi-ai](https://clawhub.ai/user/runapi-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers use this skill to configure RunAPI credentials and call Claude models for chat, streaming, vision, tools, reasoning, and token counting. It also guides developers migrating existing OpenAI or Gemini clients.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Prompts sent through this integration go to RunAPI's service.\n\nMitigation: Use only when routing prompts to RunAPI is intended and permitted by your data-handling policy.\n\nRisk: Using this integration requires a RunAPI API key.\n\nMitigation: Provide the key through the documented environment variable and protect it as a credential.\n\n## Reference(s):\n\n- [Claude on RunAPI documentation](https://runapi.ai/models/claude.md)\n- [Claude on RunAPI model page](https://runapi.ai/models/claude)\n- [RunAPI Anthropic provider documentation](https://runapi.ai/providers/anthropic.md)\n- [RunAPI model catalog](https://runapi.ai/models.md)\n- [Compatibility protocols](references/compatibility-protocols.md)\n- [ClawHub skill release](https://clawhub.ai/runapi-ai/skills/runapi-claude)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Code, Configuration instructions, Guidance]\n\n**Output Format:** [Markdown with Python examples and configuration guidance]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Describes request verification and retry boundaries; no executable files are produced.]\n\n## Skill Version(s):\n\n0.2.17 (source: server-resolved release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1246,"uniquenessScore":44,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T01:44:32.646Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T01:44:32.646Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T07:44:41.497Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}