Fuses API

Send one query across multiple AI models concurrently, streams their responses, and generates a summary that highlights agreements and differences.

One Integration

Connect once and query multiple AI models through one API key.

Low Latency & Scale

Query models concurrenctly and stream responses back with low latency from global edge workers.

Summary + Data

Clear response summary noting agreements and differences. Data formatted in tables for easy extraction.

Endpoints

POST/api/query
Run a query against multiple AI models concurrently. Streams one or more responses and optional summary from the selected models.
GET/api/models

List available models and information like pricing, context window limits, and knowledge cutoff dates.

POST/api/memory
Create or update a durable memory. Returns memory metadata.

Query multiple models & summarize outputs

Prompt one or more AI models with your query. Returns each model's response along with an optional summary that highlights differences and agreements across the models.

POST/api/query

curl https://fuses.ai/api/query \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "query": "Summarize the latest changes in the AI model market.",
    "models": ["gpt-4o", "claude-sonnet-4", "grok-4.3"],
    "summary": true,
    "stream": false
  }'

Request params

FieldTypeDescription
querystringThe input text to prompt to the selected models.
modelsstring[]One or more model slugs, such as gpt-5.4 or grok-4.3.
summarybooleanWhen true, Fuses also returns a synthesized response that highlights agreements and notes meaningful differences across the model outputs.
streambooleanWhen false, return one final JSON response. When true, stream the response body back over the same POST.

Query multiple models — Sample response

Responses include request metadata like tokens consumed, responses for each model, and optional summary.

{
  "id": "req_8f3m2k1q",
  "query": "Summarize the latest changes in the AI model market.",
  "models": ["gpt-4o", "claude-sonnet-4", "grok-4.3"],
  "responses": [
    {
      "model": "gpt-4o",
      "status": "completed",
      "output": "OpenAI expanded enterprise controls and refreshed pricing..."
    },
    {
      "model": "claude-sonnet-4",
      "status": "completed",
      "output": "Anthropic focused on coding quality, reliability, and tooling..."
    },
    {
      "model": "grok-4.3",
      "status": "completed",
      "output": "xAI continued pushing real-time positioning and long-context use cases..."
    }
  ],
  "summary": {
    "status": "completed",
    "output": "Across providers, the main themes are enterprise controls, coding quality, and differentiation through context and tooling."
  },
  "usage": {
    "inputTokens": 1811,
    "outputTokens": 2642
  }
}

Sample Streaming request — Query multiple models

Set stream to true for lower perceived latency when your UI can render chunks as they arrive.

curl -N https://fuses.ai/api/query \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/x-ndjson" \
  -d '{
    "query": "what is the tallest peak on earth",
    "models": ["gpt-5.4", "claude-sonnet-4-6", "mistral-small-3.1"],
    "summary": true,
    "stream": true
  }'

Streaming response

Streaming responses are newline-delimited JSON (application/x-ndjson). Each line is one event: meta, start, delta, stop, or done. Timing offsets (t) are milliseconds since startedAt.

{"type":"meta","requestId":"req_HM7X","startedAt":"2026-05-25T15:11:42.847Z","models":["gpt-5.4","claude-sonnet-4-6","mistral-small-3.1"]}
{"type":"start","model":"mistral-small-3.1","t":7}
{"type":"start","model":"gpt-5.4","t":9}
{"type":"start","model":"claude-sonnet-4-6","t":12}
{"type":"delta","model":"mistral-small-3.1","text":"The tallest peak"}
{"type":"delta","model":"gpt-5.4","text":"Mount Everest"}
{"type":"delta","model":"mistral-small-3.1","text":" on Earth depends on"}
{"type":"delta","model":"claude-sonnet-4-6","text":"It depends on"}
{"type":"delta","model":"gpt-5.4","text":" is the tallest peak"}
{"type":"delta","model":"mistral-small-3.1","text":" how you measure"}
{"type":"delta","model":"claude-sonnet-4-6","text":" how you define \"tallest\""}
{"type":"delta","model":"gpt-5.4","text":" on Earth, standing at"}
{"type":"delta","model":"mistral-small-3.1","text":". Measured by elevation"}
{"type":"delta","model":"gpt-5.4","text":" 8,848 m (29,029 ft)"}
{"type":"delta","model":"mistral-small-3.1","text":" above sea level,"}
{"type":"delta","model":"claude-sonnet-4-6","text":". By elevation above sea level,"}
{"type":"delta","model":"mistral-small-3.1","text":" Mount Everest at 8,848 m"}
{"type":"delta","model":"gpt-5.4","text":" above sea level in the"}
{"type":"delta","model":"claude-sonnet-4-6","text":" Everest is the tallest."}
{"type":"delta","model":"gpt-5.4","text":" Himalayas on the Nepal-Tibet border."}
{"type":"delta","model":"mistral-small-3.1","text":" is the tallest."}
{"type":"stop","model":"mistral-small-3.1","t":3142,"usage":{"in":12,"out":214}}
{"type":"stop","model":"gpt-5.4","t":4011,"usage":{"in":12,"out":238}}
{"type":"stop","model":"claude-sonnet-4-6","t":4527,"usage":{"in":12,"out":221}}
{"type":"start","model":"summary","t":4530}
{"type":"delta","model":"summary","text":"All three models converge on Mount Everest"}
{"type":"delta","model":"summary","text":" (8,848 m / 29,029 ft above sea level)"}
{"type":"delta","model":"summary","text":" as the tallest peak by elevation."}
{"type":"delta","model":"summary","text":" Two models note that Mauna Kea"}
{"type":"delta","model":"summary","text":" is taller measured base-to-summit (~10,210 m)."}
{"type":"stop","model":"summary","t":5840,"usage":{"in":640,"out":98}}
{"type":"done","t":5842,"totalUsage":{"in":676,"out":771}}

List available models

Returns a list of available AI models on Fuses.ai and their capabilities and costs.

GET/api/models

curl https://fuses.ai/api/models \
  -H "Authorization: Bearer YOUR_API_KEY"

Sample response

{
  "models": [
    {
      "id": "gpt-5.4",
      "name": "GPT-5.4",
      "provider": "openai",
      "contextWindow": 128000,
      "knowledgeCutoffDate": "2025-08-31"
    },
    {
      "id": "claude-sonnet-4",
      "name": "Claude Sonnet 4",
      "provider": "anthropic",
      "contextWindow": 200000,
      "knowledgeCutoffDate": "2025-05-01"
    },
    {
      "id": "grok-4.3",
      "name": "Grok 4.3",
      "provider": "xai",
      "contextWindow": 131072
    }
  ]
}

Create a new memory

Store provided content and metadata to durable memory. Returns a new memory ID.

POST/api/memory

curl https://fuses.ai/api/memory \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "content": "User prefers terse technical answers and works in TypeScript.",
    "metadata": {
      "userId": "user:4269",
      "source": "onboarding"
    }
  }'

Request params

FieldTypeDescription
idstringOptional memory id. If passed, it appends to the existing memory, otherwise creates a new memory.
contentstringRequired context to store or append.
metadataobjectOptional caller-owned labels such as user id, source, account id, or workflow id. On append, any keys included overwrite values set on earlier writes.

Sample response

The response includes the generated memory id that should be reused for later appends and reads.

{
  "id": "A7K9P2QX4M",
  "status": "created",
  "createdAt": "2026-05-02T16:00:00.000Z",
  "usage": {
    "bytes": 67,
    "tokens": 13
  }
}

Append to memory

Append content to an existing memory.

POST/api/memory

curl https://fuses.ai/api/memory \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "id": "A7K9P2QX4M",
    "content": "User is evaluating hosted vector databases for a B2B SaaS product.",
    "metadata": {
      "source": "chat"
    }
  }'

Sample response — Append to memory

{
  "id": "A7K9P2QX4M",
  "status": "appended",
  "updatedAt": "2026-05-02T16:04:12.000Z",
  "usage": {
    "bytes": 142,
    "tokens": 29
  }
}

Retrieve a memory

Fetch the stored memory given a memory ID. Returns the accumulated content and current caller-owned metadata.

GET/api/memory/:id

curl https://fuses.ai/api/memory/A7K9P2QX4M \
  -H "Authorization: Bearer YOUR_API_KEY"

Sample response

{
  "id": "A7K9P2QX4M",
  "content": "User prefers terse technical answers and works in TypeScript.\n\nUser is evaluating hosted vector databases for a B2B SaaS product.",
  "metadata": {
    "userId": "user:4269",
    "source": "chat"
  },
  "createdAt": "2026-05-02T16:00:00.000Z",
  "updatedAt": "2026-05-02T16:04:12.000Z"
}

Fetch summary

Returns a summary of the memory content.

curl https://fuses.ai/api/memory/A7K9P2QX4M/summary \
  -H "Authorization: Bearer YOUR_API_KEY"

Summary response

{
  "id": "A7K9P2QX4M",
  "summary": "The user works in TypeScript, prefers terse technical answers, and is evaluating hosted vector databases for a B2B SaaS product.",
  "usage": {
    "inputTokens": 311,
    "outputTokens": 32
  },
  "updatedAt": "2026-05-02T16:04:12.000Z"
}

Fetch metadata

Fetch metadata when you need labels, usage details, or storage information without loading the full memory.

curl https://fuses.ai/api/memory/A7K9P2QX4M/metadata \
  -H "Authorization: Bearer YOUR_API_KEY"

Metadata response

Returns full metadata fields for the memory.

{
  "id": "A7K9P2QX4M",
  "metadata": {
    "source": "onboarding",
    "userId": "user:4269"
  },
  "usage": {
    "bytes": 142,
    "tokens": 29
  },
  "createdAt": "2026-05-02T16:00:00.000Z",
  "updatedAt": "2026-05-02T16:04:12.000Z"
}