Skip to main content

Curated official OpenAPI / Discovery specifications for major AI providers, with overlay support for OpenAI-compatible vendors and daily upstream sync with drift detection.

Project description

ai-vendor-specs

Curated official OpenAPI / Discovery specifications for major AI providers — daily upstream sync with drift detection.

Languages: English · 简体中文 · 日本語

🌐 Browse the specs: aihubmix.github.io/ai-vendor-specs — every upstream rendered with Redoc, with protocol filter tabs and search.

ai-vendor-specs collects the source-of-truth API specifications published by major AI providers (OpenAI, Anthropic, Cohere, Google, Microsoft, plus OpenAI-compatible providers) and exposes them as one consistent dataset for downstream tools: SDK generators, gateways, doc sites, contract testing, IDE intelligence, and AI agent tool registries.

For variants without a machine-readable spec (e.g. Claude on AWS Bedrock, or OpenAI-compatible providers like Groq), differences are declared in compact overlay files that compose against a base spec at resolve time. The repository itself never stores derived artifacts — every byte traces back to an officially published upstream.


Coverage

Protocol Provider Kind Upstream source
openai official spec openai/openai-openapi (Stainless)
openai azure spec Azure/azure-rest-api-specs · pinned 2024-10-21
openai azure-preview spec Azure/azure-rest-api-specs preview · pinned 2025-04-01-preview
openai deepseek overlay api-docs.deepseek.com
openai groq overlay console.groq.com/docs
openai together overlay docs.together.ai
openai xai overlay docs.x.ai
anthropic official spec anthropics/anthropic-sdk-python .stats.yml → Stainless
anthropic bedrock overlay AWS Bedrock InvokeModel docs
cohere official spec cohere-ai/cohere-developer-experience
gemini official spec Google AI Discovery (generativelanguage.googleapis.com)
vertex official spec Google Cloud Discovery (aiplatform.googleapis.com)

Full upstream URLs, sync methods, and version pinning details: docs/SOURCES.md.


How it works

ai-vendor-specs is a thin data layer with one job: keep an audit-trailed, machine-readable copy of every upstream AI provider's API truth, and expose it through a single URI scheme.

┌─── 12+ upstream vendors ────────────────────────────────────────┐
│   OpenAI / Azure OpenAI / Anthropic / Cohere / Google /          │
│   xAI / DeepSeek / Groq / Together / AWS Bedrock                 │
└────────────────────────────┬────────────────────────────────────┘
                             │ daily cron sync (machine-readable spec)
                             │ overlay declarations (no spec available)
                             ▼
┌─── ai-vendor-specs (this repo) ─────────────────────────────────┐
│                                                                  │
│   upstream/<protocol>/<provider>/                                │
│     openapi.{yml,json} | discovery.json     ← spec  (synced)     │
│     overlay.yml                              ← overlay (manual)  │
│                                                                  │
│   manifest.json   ← discovery index covering every entry         │
│   resolver lib    ← composes base + overlay into a full spec     │
│   drift detector  ← warns when upstream versions move            │
└────────────────────────────┬────────────────────────────────────┘
                             │ npm / PyPI / submodule / raw / CDN
                             ▼
       ┌─────────────────────┼─────────────────────┐
       ▼                     ▼                     ▼
  SDK generators        Gateways / proxies     Doc sites
  Contract tests        AI agent tools         IDE assistants

What this repo does

  • ✅ Sync each upstream's machine-readable OpenAPI / Discovery spec daily, hash-tracked
  • ✅ Declare deltas with overlay files when the upstream has no published spec (AWS Bedrock, OpenAI-compatible providers like xAI / DeepSeek / Groq / Together)
  • ✅ Maintain a top-level manifest.json as a discovery entry for every consumer
  • ✅ Detect upstream drift — version moves, stale overlays, broken fetches — before it bites consumers downstream

What this repo does NOT do

  • ❌ Generate derived artifacts (composed specs, SDKs, contract fixtures) — those are the consumer's choice
  • ❌ Record consumer-specific or business fields — the data stays neutral upstream truth

Decision rule: "Is this a thing the upstream actually publishes?" Yes → belongs here. No → belongs in the consumer.

Architecture details (kinds, overlay syntax, metadata schema): docs/ARCHITECTURE.md.


Installation

npm

npm install @aihubmix/ai-vendor-specs

git submodule

git submodule add https://github.com/AIhubmix/ai-vendor-specs.git ai-vendor-specs
git submodule update --init --remote ai-vendor-specs

pip

pip install ai-vendor-specs

The Python package ships the same upstream data and a small read-only API. Overlay composition is currently JavaScript-only; see Python usage below.

Direct download (no runtime needed)

# raw GitHub
curl https://raw.githubusercontent.com/AIhubmix/ai-vendor-specs/main/upstream/openai/official/openapi.yml

# jsDelivr CDN
curl https://cdn.jsdelivr.net/gh/AIhubmix/ai-vendor-specs@main/upstream/openai/official/openapi.yml

Usage

Load any upstream spec

const { loadSpec } = require('@aihubmix/ai-vendor-specs');

// Pure spec — direct file load
const openai = loadSpec('avs://openai/official');

// Overlay-kind entries auto-compose base + overlay
const bedrock = loadSpec('avs://anthropic/bedrock');
const xai     = loadSpec('avs://openai/xai');

// Drill down to a specific schema via JSON Pointer
const cacheControl = loadSpec(
  'avs://anthropic/official#/components/schemas/CacheControlEphemeral'
);

Discover everything available

const manifest = require('@aihubmix/ai-vendor-specs/manifest.json');

for (const [key, entry] of Object.entries(manifest.upstream)) {
  console.log(key, entry.kind, entry.rawUrl);
}

Or fetch the manifest directly without any runtime:

curl https://cdn.jsdelivr.net/gh/AIhubmix/ai-vendor-specs@main/manifest.json

Python

import ai_vendor_specs as avs

# Catalog
manifest = avs.load_manifest()
for vendor in avs.list_vendors():
    print(vendor['key'], vendor['kind'])

# Single lookup
xai = avs.get_vendor('openai', 'xai')

# Raw spec file path (overlay-kind entries return the overlay.yml; compose
# via the JavaScript resolver or wait for the Python composer)
spec_path = avs.load_spec_path('openai', 'official')

Use cases

Compose a gateway / proxy spec

Load upstream skeletons, then apply your own overlay to produce the spec your gateway exposes.

const { loadSpec, applyOverlay } = require('@aihubmix/ai-vendor-specs');
const base = loadSpec('avs://openai/official');
const final = applyOverlay(base, myGatewayOverlay);  // overlay = your auth, error envelope, etc.

Generate SDK types

Drop the spec into any OpenAPI codegen — daily upstream syncs keep types current.

npx openapi-typescript node_modules/@aihubmix/ai-vendor-specs/upstream/openai/official/openapi.yml \
  -o src/types/openai.d.ts

Contract-test against upstream truth

Assert that the response fields the upstream actually promises are present in what you observe.

const spec = loadSpec('avs://openai/official');
const required = spec.components.schemas.CreateChatCompletionResponse.required;
required.forEach(f => expect(actual[f]).not.toBeUndefined());

(Test your own gateway against its own spec; use this only for "did the upstream change something on us".)

Embed specs in a doc site

Read the raw files from node_modules/ and feed Redoc, Swagger UI, or any OpenAPI renderer. This is exactly how the official doc site is built.

Convert Discovery → OpenAPI

Gemini / Vertex ship Google Discovery. If your toolchain wants OpenAPI, run gnostic:

gnostic upstream/gemini/official/discovery.json --openapi-out=gemini.yml

AI agent tool registry

Iterate paths/operations to emit function-call schemas for LangChain, MCP, or any agent framework. The specs already include operationId, parameter schemas, and request body shapes that map 1:1 to tool descriptors.


The avs:// URI scheme

All references to upstream specs use one consistent URI scheme:

avs://<protocol>/<provider>[#<JSON-Pointer>]
Example Resolves to
avs://openai/official The full OpenAI OpenAPI spec
avs://anthropic/bedrock The composed Bedrock spec (base + overlay)
avs://anthropic/official#/components/schemas/Message One schema in the Anthropic spec
avs://gemini/official The Gemini Google Discovery document

The resolver looks for the data root in this order:

  1. The AVS_ROOT environment variable (explicit override)
  2. The current working directory if it is the repo itself
  3. node_modules/@aihubmix/ai-vendor-specs/ (npm install)
  4. A sibling ai-vendor-specs/ directory (git submodule)

You can write overlays or consumer code without caring which deployment mode is in use.


Documentation

Document Audience Content
Live doc site Browsers Redoc-rendered specs for every upstream, with protocol filter tabs
Architecture Anyone Design, kinds, metadata schema, overlay syntax
Sources Auditors Upstream URLs and sync methods, per-vendor details
Contributing Contributors Adding new vendors, repo development, drift, webhook

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ai_vendor_specs-0.1.1.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ai_vendor_specs-0.1.1-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file ai_vendor_specs-0.1.1.tar.gz.

File metadata

  • Download URL: ai_vendor_specs-0.1.1.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ai_vendor_specs-0.1.1.tar.gz
Algorithm Hash digest
SHA256 b99035f939524f870391fdebdf9a53d7a10b9fb0583ce870913c8285cd92e8eb
MD5 9fb609ca62d21599508f46250c284e14
BLAKE2b-256 e5ea6cdaa5548f44c1ced86c1e813a27cc0d948bfdd751b6b932d83332f6b7bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for ai_vendor_specs-0.1.1.tar.gz:

Publisher: publish-pypi.yml on AIhubmix/ai-vendor-specs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ai_vendor_specs-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for ai_vendor_specs-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 47171154c9af42ffe9663ddbabe3857fecab93b462cd07241f43318441313703
MD5 6b9c159a6e6fbda431efb4dbba2e2825
BLAKE2b-256 12efa80a2627fb9c75a431915d5a0304ad877a455ea7f17caa85095bc0631b11

See more details on using hashes here.

Provenance

The following attestation bundles were made for ai_vendor_specs-0.1.1-py3-none-any.whl:

Publisher: publish-pypi.yml on AIhubmix/ai-vendor-specs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page