Using Signal8 / Developers
Signal8 API Quickstart: Keys, Authentication and Rate Limits
How to create a Signal8 API key, authenticate requests, read the rate-limit headers and handle errors, with a first request you can run with curl.
4 min readLast verified
On this page
The short version
The Signal8 API serves the same company, SEC filing, ownership, dilution, premarket and congressional-trading data that powers the website, as JSON over HTTPS. Every endpoint lives under one base URL:
https://api.signal8.ai/api/v1/public
Requests are authenticated with an API key. API access is part of Signal8 Pro ($59 a month or $588 a year): a Pro account can hold up to three keys, each allowed 120 requests per minute and 10,000 requests per day. The full endpoint reference, with parameters and sample responses, is on the API documentation page.
Step 1: create a key
Keys are created and revoked in the API keys section of the developer page, which is also available as a tab on the MCP page. A key looks like sk_live_ followed by a random string. Test keys, which start with sk_test_, can also exist.
The full key is shown when you create it. Copy it somewhere safe at that point; afterwards the site identifies the key by name and a short prefix only.
Step 2: authenticate a request
Send the key in either of two headers. Both are accepted; the bearer form is checked first.
curl -H "Authorization: Bearer sk_live_YOUR_KEY" \
"https://api.signal8.ai/api/v1/public/companies/AAPL/quote"
curl -H "X-API-Key: sk_live_YOUR_KEY" \
"https://api.signal8.ai/api/v1/public/companies/search?q=apple"
One endpoint needs no key at all: GET /api/v1/public/catalog, which describes the available endpoints and drives the documentation page.
Step 3: pick an endpoint
All paths below are relative to the base URL. The documentation page lists the full set and their parameters.
| Area | Example paths |
|---|---|
| Company lookup | /companies/search?q=, /companies/{ticker}/quote |
| Company data | /companies/{ticker}/float, /short-interest, /financials, /earnings, /news, /candles, /analyst |
| Market | /market/movers/{direction}, /news/latest, /trading-halts |
| Screener | /screener, /screener/fields |
| SEC filings | /edgar/filings, /edgar/search-text, /edgar/accession/{accession} |
| Dilution | /dilution/{ticker}/risk, /dilution/{ticker}/snapshot |
| Congressional trading | /senate-insiders, /senate-insiders/{slug}/transactions |
| Premarket history | /premarket/scan-history |
The /companies/{ticker}/float endpoint returns the public float; the dilution endpoints return the same snapshot and score explained in the Dilution tab guide.
Rate limits and how to read them
Limits are counted per key, so two keys on one account each get their own allowance. The plan limits in the code at the time of writing:
| Plan | Requests per minute | Requests per day | Keys |
|---|---|---|---|
| Free | 0 | 0 | 0 |
| Pro | 120 | 10,000 | 3 |
Free accounts cannot create keys. Every response carries headers that tell you where you stand:
X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reset: the per-minute window.X-DailyLimit-Limit,X-DailyLimit-Remaining,X-DailyLimit-Reset: the daily allowance, which resets at midnight UTC.Retry-After: sent with a 429, the number of seconds to wait.
Errors you will see
| Status | Code | Meaning |
|---|---|---|
| 401 | INVALID_API_KEY, key_revoked | The key is missing, mistyped or revoked |
| 403 | FEATURE_NOT_AVAILABLE | The account's plan does not include this data; the body names the required tier |
| 429 | RATE_LIMIT_EXCEEDED | Too many requests this minute; wait for Retry-After |
| 429 | DAILY_LIMIT_EXCEEDED | Daily allowance used up; resets at midnight UTC |
A sensible client retries a 429 after the Retry-After delay, does not retry a 401 or 403, and backs off on 5xx errors.
Reading the data correctly
Signal8's data distinguishes a measured zero from a value that was never measured. A null, an absent field, or a field accompanied by a "withheld" or "unavailable" reason means not measured. It never means zero, none or no dilution. When your code turns a response into a display or an alert, check the accompanying availability field before treating a missing number as a favourable result.
The same data inside an AI assistant
If you would rather ask questions in plain English than write code, the Signal8 MCP server wraps these endpoints as tools for Claude, Cursor and other MCP clients. It uses the same keys and the same limits.
FAQ
How do I get a Signal8 API key?
Upgrade to Signal8 Pro, then open the developer page or the API keys tab on the MCP page and create a key. Copy the full key when it is shown. A Pro account can hold up to three keys at a time, each with its own rate limit, and you can revoke a key at any time from the same place.
What are the Signal8 API rate limits?
On the Pro plan each key can make 120 requests per minute and 10,000 requests per day. The daily count resets at midnight UTC. Every response includes headers showing the limit, the remaining requests and when the window resets, and a 429 response includes a Retry-After header with the number of seconds to wait.
Should I use the Authorization header or X-API-Key?
Either works. The API checks for an Authorization header with a bearer token first, then for an X-API-Key header. Pick one and use it consistently. Whichever you choose, send the key only from server-side code, never from a browser or a mobile app where users could extract it.
Is there a free tier for the Signal8 API?
Not currently. API access and the MCP server are part of Signal8 Pro, and free accounts cannot create keys. The endpoint catalog, which lists what is available, can be read without a key, and the documentation page is public.
Terms in this guide
- Public float
- The shares of a company held by investors other than its officers, directors and controlling holders, or their market value; the SEC uses the dollar figure for form eligibility.
Put it to work
Try it on Signal8
See this in live data with Signal8 API.
Also useful: Signal8 MCP server · Signal8 Pro
Related guides
Educational content only. Signal8 is not a broker-dealer or investment adviser, and nothing here is a recommendation to buy or sell any security.