Developer docs

Bluefin API

All routes return JSON, allow browser CORS, and include source provenance where upstream data was consulted. The public base URL is shown in REST basics.

Quickstart

curl -G "https://api.bluefin.dev/v1/quote" \
  --data-urlencode "symbols=AAPL,MSFT"

curl -G "https://api.bluefin.dev/v1/search" \
  --data-urlencode "q=apple"

curl "https://api.bluefin.dev/v1/openapi.json"

REST basics

Base URLhttps://api.bluefin.dev
OpenAPI/v1/openapi.json
Catalog/v1/endpoints
Contact headerx-bluefin-contact: you@example.com
API key headerauthorization: Bearer <key>

SDKs

npm install @bluedoor-ai/bluefin

import { Client } from "@bluedoor-ai/bluefin";

const client = new Client({
  contact: "you@example.com"
});

const quote = await client.quote(["AAPL", "MSFT"]);
pip install bluefin-client

from bluefin import Client

client = Client(contact="you@example.com")

quote = client.quote(["AAPL", "MSFT"])

Discovery routes

/v1/health /v1/sources /v1/catalog/sources /v1/catalog/capabilities /v1/catalog/datasets /v1/catalog/fields /v1/coverage /v1/endpoints /v1/source-health /v1/openapi.json

Limits

Anonymous clients get 60 requests per minute. Supplying a contact header raises the public tier to 200 requests per minute. API keys are supported for higher-volume access.

Source fanout is bounded by default so one request does not overload individual upstream services. Use debug_sources and max_sources when diagnosing source-specific behavior.