Quickstart

Make your first API call in minutes and start pulling live market intelligence.

Make your first API call in minutes. This guide walks you through setting your API key, finding a ticker, and pulling live market data.

Get an API key

Contact the Permutable team to get access. Once you have a key, export it as an environment variable — all requests read it from there.

export PERMUTABLE_API_KEY="your_api_key_here"
$env:PERMUTABLE_API_KEY = "your_api_key_here"
setx PERMUTABLE_API_KEY "your_api_key_here"

Keep your key secure

Never hardcode your API key in source code. If your key is committed to a repository or exposed in client-side code, revoke it immediately and request a new one.

Follow these practices to keep your key safe:

  • Use environment variables — as shown above, read the key from the environment at runtime rather than writing it directly into your code.
  • Use a secrets manager in production — tools such as AWS Secrets Manager, HashiCorp Vault, or your cloud provider's equivalent store keys outside your codebase and inject them securely at deploy time.
  • Do not share keys across environments — use a separate key for development, staging, and production so a leaked development key cannot affect production data.
  • Rotate keys periodically — your key does not expire automatically, but rotating it regularly limits the window of exposure if it is ever compromised. Contact the Permutable team to rotate or revoke a key.

Try it interactively

Before writing any code, you can explore and run every endpoint directly in the API Reference. Enter your API key once and fire requests straight from the browser.

Find a ticker

Every endpoint is scoped to a ticker symbol. Search for the asset you want to track and note the ticker field in the response — you'll use it in every subsequent call.

curl "https://copilot-api.permutable.ai/v1/ticker/search" \
  -H "x-api-key: $PERMUTABLE_API_KEY" \
  -G --data-urlencode "keywords=brent crude"
Invoke-RestMethod `
  -Uri "https://copilot-api.permutable.ai/v1/ticker/search?keywords=brent+crude" `
  -Headers @{ "x-api-key" = $env:PERMUTABLE_API_KEY }
import os, requests

resp = requests.get(
    "https://copilot-api.permutable.ai/v1/ticker/search",
    headers={"x-api-key": os.environ["PERMUTABLE_API_KEY"]},
    params={"keywords": "brent crude"},
)
print(resp.json())

Common tickers for reference:

AssetTicker
Brent CrudeBZ_COM
WTI CrudeCL_COM
Natural GasNG_COM
GoldQO_COM

Make your first calls

Live headlines

The latest news for a ticker, each pre-scored with sentiment.

curl "https://copilot-api.permutable.ai/v1/headlines/feed/live/ticker/BZ_COM" \
  -H "x-api-key: $PERMUTABLE_API_KEY"
Invoke-RestMethod `
  -Uri "https://copilot-api.permutable.ai/v1/headlines/feed/live/ticker/BZ_COM" `
  -Headers @{ "x-api-key" = $env:PERMUTABLE_API_KEY }
import os, requests

resp = requests.get(
    "https://copilot-api.permutable.ai/v1/headlines/feed/live/ticker/BZ_COM",
    headers={"x-api-key": os.environ["PERMUTABLE_API_KEY"]},
)
print(resp.json())

Trading signals

An aggregated directional view for a ticker.

curl "https://copilot-api.permutable.ai/v1/signals?tickers=BZ_COM" \
  -H "x-api-key: $PERMUTABLE_API_KEY"
Invoke-RestMethod `
  -Uri "https://copilot-api.permutable.ai/v1/signals?tickers=BZ_COM" `
  -Headers @{ "x-api-key" = $env:PERMUTABLE_API_KEY }
import os, requests

resp = requests.get(
    "https://copilot-api.permutable.ai/v1/signals",
    headers={"x-api-key": os.environ["PERMUTABLE_API_KEY"]},
    params={"tickers": ["BZ_COM"]},
)
print(resp.json())

Analyst insights

A narrative market summary for a ticker. Choose a lookback window: weekly, monthly, quarterly, or yearly.

curl "https://copilot-api.permutable.ai/v1/insights/analyst/BZ_COM?analyst_type=weekly" \
  -H "x-api-key: $PERMUTABLE_API_KEY"
Invoke-RestMethod `
  -Uri "https://copilot-api.permutable.ai/v1/insights/analyst/BZ_COM?analyst_type=weekly" `
  -Headers @{ "x-api-key" = $env:PERMUTABLE_API_KEY }
import os, requests

resp = requests.get(
    "https://copilot-api.permutable.ai/v1/insights/analyst/BZ_COM",
    headers={"x-api-key": os.environ["PERMUTABLE_API_KEY"]},
    params={"analyst_type": "weekly"},
)
print(resp.json())

Systematic index

The live quantitative sentiment index for a model. Replace {model_id} with the ID from your Permutable contact.

curl "https://copilot-api.permutable.ai/v1/indices/live/{model_id}" \
  -H "x-api-key: $PERMUTABLE_API_KEY"
Invoke-RestMethod `
  -Uri "https://copilot-api.permutable.ai/v1/indices/live/{model_id}" `
  -Headers @{ "x-api-key" = $env:PERMUTABLE_API_KEY }
import os, requests

model_id = "your_model_id"
resp = requests.get(
    f"https://copilot-api.permutable.ai/v1/indices/live/{model_id}",
    headers={"x-api-key": os.environ["PERMUTABLE_API_KEY"]},
)
print(resp.json())

The Core 6

Most new users only need six endpoints to get started. They follow the same order as the data pipeline — from raw news through to actionable outputs.

#EndpointWhat it gives you
1GET /v1/ticker/searchFind the ticker symbol for any asset
2GET /v1/headlines/feed/live/ticker/{ticker}Raw headline-level data tagged with topic and scored with sentiment
3GET /v1/headlines/index/ticker/live/{ticker}Aggregated sentiment index built from those headlines
4GET /v1/events/feed/live/ticker/{ticker}Structured market events extracted from the news
5GET /v1/signalsAggregated directional signal (bullish / bearish / neutral)
6GET /v1/insights/analyst/{ticker}Automated market analysis for a ticker

Not sure which to use for your workflow? See Which endpoint should I use?.

Next steps

For end-to-end examples, see the Recipes section.