Home
Overlays
Solvela
Solvela Ai Openapi Overlay
API Evangelist enhancements for the Solvela Gateway API
10 actions
10 updates
documentation
extends ../openapi/solvela-ai-openapi.json
Generated by API Evangelist
Written by API Evangelist tooling for Solvela's API. It is a proposal applied on top of the contract, not a document Solvela publishes.
What the actions change
tags x-observed x-agent-card x-a2a-endpoint x-x402-discovery x-payment-methods x-pricing x-mcp-server
Targets 7
$.info
$.tags
$.paths['/v1/chat/completions'].post
$.paths['/v1/models'].get
$.paths['/v1/receipts/{receipt_id}'].get
$.paths['/health'].get
$.servers[1]
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist enhancements for the Solvela Gateway API
version: 1.0.0
extends: ../openapi/solvela-ai-openapi.json
x-generated: '2026-09-19'
x-method: generated
x-source: >-
Generated from openapi/solvela-ai-openapi.json plus the probed and searched artifacts in this repo. Captures
API Evangelist annotations without mutating the provider's contract, which is saved verbatim. Proposed tags
are proposals; the provider declares none.
actions:
- target: $.info
description: Link the provider's other machine-readable surfaces from the contract.
update:
x-agent-card: https://api.solvela.ai/.well-known/agent-card.json
x-a2a-endpoint: https://api.solvela.ai/a2a
x-x402-discovery: https://api.solvela.ai/.well-known/x402
x-payment-methods: https://api.solvela.ai/v1/supported
x-pricing: https://api.solvela.ai/pricing
x-mcp-server:
mode: local-stdio
install: npx -y @solvela/mcp-server
package: https://www.npmjs.com/package/@solvela/mcp-server
x-source-code: https://github.com/solvela-ai/solvela
x-documentation-source: https://github.com/solvela-ai/solvela/tree/main/dashboard/content/docs
x-security-policy: https://github.com/solvela-ai/solvela/blob/main/SECURITY.md
x-payment:
protocol: x402
version: 2
asset: USDC-SPL (EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v)
network: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
challenge_status: 402
challenge_header: PAYMENT-REQUIRED
payment_header: PAYMENT-SIGNATURE
schemes_advertised: [exact, escrow]
quote_validity_seconds: 300
platform_fee_percent_hosted: 0
- target: $.info
description: Record the limits the provider documents and the runtime headers observed, since the contract only declares them on 429 responses.
update:
x-rate-limits:
- {scope: per-wallet (IP fallback), limit: 60, window: 60s, headers: [x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset, retry-after]}
- {scope: per-IP free tier, limit: 5, window: 60s}
- {scope: global free tier, limit: 12, window: 60s}
- {scope: per-IP receipt lookups, limit: 20, window: 60s}
- {scope: gateway concurrency, limit: 256, window: in-flight}
- {scope: request timeout, limit: 120, window: seconds, exhaustion_status: 408}
x-request-id-header: x-solvela-request-id
- target: $.info
description: Reversibility and idempotency verdicts from conventions/solvela-ai-conventions.yml.
update:
x-idempotency: {coverage: none, note: replay protection on payment signatures is not client idempotency}
x-reversibility: {grade: verified, scope: escrow scheme only — refund instruction after max_timeout_seconds (300 s); exact scheme has no reversal}
- target: $.tags
description: Proposed tag set; the provider declares no tags.
update:
- {name: Chat, description: OpenAI-compatible chat completions paid via x402}
- {name: Models, description: Model catalog with USDC pricing}
- {name: Receipts, description: Payment receipts for paid requests}
- {name: Health, description: Liveness}
- target: $.paths['/v1/chat/completions'].post
update:
tags: [Chat]
x-apievangelist-write: true
x-agentic-consequence: physical — spends USDC from the caller's wallet on each paid call
x-dry-run: send without PAYMENT-SIGNATURE to receive the price quote without executing
x-free-path: zero-priced models (model "free" / "oss" / "open" or a $0 id) need no payment header
- target: $.paths['/v1/models'].get
update:
tags: [Models]
x-observed: '2026-09-19 — 44 models across 6 providers, 17 priced 0/0, no rate-limit headers (documented as exempt)'
- target: $.paths['/v1/receipts/{receipt_id}'].get
update:
tags: [Receipts]
x-observed: '2026-09-19 — unknown id returned 404 {"error":{"type":"not_found","message":"receipt not found"}}'
- target: $.paths['/health'].get
update:
tags: [Health]
x-observed: '2026-09-19 — 200 {"status":"ok"}'
- target: $.servers[1]
description: Clarify the second server.
update:
x-note: Same Fly.io application under the platform domain; serves byte-identical /openapi.json and agent card. Prefer https://api.solvela.ai.
- target: $.info
description: Routes the provider runs but has not put in this contract (observed live 2026-09-19); listed so a reader knows the spec is a partial projection.
update:
x-undeclared-routes:
- {method: GET, path: /pricing, status: 200}
- {method: GET, path: /v1/services, status: 200}
- {method: GET, path: /v1/supported, status: 200}
- {method: GET, path: /v1/escrow/config, status: 200}
- {method: POST, path: /v1/messages, status: 402}
- {method: POST, path: /v1/search, status: 402}
- {method: POST, path: /v1/solana/price, status: 405 on GET}
- {method: POST, path: /a2a, status: 200 JSON-RPC}
- {method: GET, path: /v1/orgs, status: 401}