API details

Overview of the Merge Gateway API

Base API URL

All API endpoints in the reference documentation are relative to the following base URL:

https://api-gateway.merge.dev/v1

Authentication

For any request you make when communicating with Merge Gateway, you will need an API key to authenticate yourself as an authorized user.

Add your API Key with a “Bearer ” prefix as a header called Authorization to authorize your Merge API requests. This header must be included in every request in this format:

Authorization: Bearer <your_api_key>

Key endpoints

Gateway’s public API surface is centered around three endpoint groups:

  • GET /models
    • list models
    • filter by provider or vendor
    • fetch a single model by query string with ?model=<provider/model_id>
  • GET /vendors
    • list execution vendors and the models they currently serve
    • fetch a single vendor with GET /vendors/{vendor_id}
  • POST /responses
    • create an LLM response
    • the response includes the vendor that ultimately served the request

Models API shape

GET /models returns canonical model identity at the top level and vendor-specific execution metadata under vendors.

Example:

1{
2 "model": "anthropic/claude-opus-4.6",
3 "provider": "anthropic",
4 "display_name": "Claude Opus 4.6",
5 "vendors": {
6 "anthropic": {
7 "launch_date": "2025-05-14",
8 "context_window": 1000000,
9 "max_output_tokens": 32768,
10 "availability_status": "available",
11 "capabilities": {
12 "input": ["text", "image"],
13 "output": ["text", "tool_use"],
14 "supports_tool_calling": true,
15 "supports_tool_choice": true,
16 "supports_structured_outputs": true,
17 "streaming": true
18 },
19 "pricing": {
20 "input_per_million": 2.5,
21 "output_per_million": 10,
22 "currency": "USD"
23 }
24 }
25 },
26 "availability_status": "available",
27 "created_at": "2025-05-14T00:00:00Z",
28 "updated_at": "2026-03-01T00:00:00Z"
29}

Use GET /models?model=<provider/model_id> when you want one specific model object but prefer a query parameter over a path parameter. The slash is fine there because it is part of the query parameter value.

Vendors API shape

GET /vendors returns execution hosts, not canonical model owners.

Example:

1{
2 "vendor": "bedrock",
3 "name": "AWS Bedrock",
4 "models": [
5 "anthropic/claude-opus-4.6",
6 "google/gemma-3-27b-it"
7 ],
8 "supports_zdr": true,
9 "supports_byok": true,
10 "availability_status": "active"
11}

Responses

POST /responses returns the canonical model that served the request and a top-level vendor field for the execution host that actually handled it.