GET /v1/signals
Search signals
Every filter in the app is a query parameter here. Results come newest first, 25 to a page. Each signal carries evidence_url, the filing it came from.
Query parameters
| Name | In the app | What it does |
|---|---|---|
| type | Signal | Comma-separated: company.incorporated, funding.filed, funding.amended, officer.listed. |
| q | Keyword | Matches company names, places and officer names. |
| country | Country | US or GB. |
| state | State | Two-letter US state, for example CA. |
| since | Filed in | Only signals published on or after this date, YYYY-MM-DD. |
| within_days | Filed in | Or: only the last N days. Saved searches use this so they stay current. |
| min_amount | Raising at least | Smallest amount sold, in US dollars. |
| stage | Stage | pre_seed, seed, series_a or later. Inferred, never stated in a filing. |
| industry | Industry | Industry name or SIC prefix, for example 62. |
| exclude_funds | Leave out funds | true drops pooled investment funds and SPVs. |
| page | Next | Page number, starting at 1; per_page up to 100. |
Example
curl "https://api.daybreakleads.com/v1/signals?type=funding.filed&country=US&within_days=7&min_amount=500000&exclude_funds=true" \
-H "Authorization: Bearer sk_…"GET /v1/signals/feed
Morning feed
Every signal after a cursor, in the order it arrived. Keep next_cursor and poll each morning: you never miss or repeat one. Optional type filter; limit up to 500.
curl "https://api.daybreakleads.com/v1/signals/feed?limit=500" \
-H "Authorization: Bearer sk_…"
# then send next_cursor back as ?cursor=…GET /v1/signals/export
Export as CSV
The same query as Search signals, as a CSV file of up to 5,000 rows: publication date, signal, company, place, amount, stage and source.
curl -o signals.csv "https://api.daybreakleads.com/v1/signals/export?type=company.incorporated&country=GB&within_days=1" \
-H "Authorization: Bearer sk_…"GET /v1/signal-types
Signal types
The four signals, what each means and the registry it comes from. No key needed.
curl https://api.daybreakleads.com/v1/signal-typesGET /v1/companies/{id}
Get a company
What the company reported to its registry, every signal about it, newest first, and the people named in its filings. The id is company.id on any signal.
curl https://api.daybreakleads.com/v1/companies/{company_id} \
-H "Authorization: Bearer sk_…"POST /v1/companies/{id}/website-search
Find a website
The company's own website, checked against its filing: phone, postcode, name and city on the homepage. Answers 200 with the website when known; otherwise status is searching and a background search starts. Call again in a minute. Every account can use it, up to 100 new searches a day.
curl -X POST https://api.daybreakleads.com/v1/companies/{company_id}/website-search \
-H "Authorization: Bearer sk_…"GET /v1/people
List people
Officers, directors and promoters named on Form D filings, newest filing first. Filter by q (name), within_days and state; page and per_page as for signals.
curl "https://api.daybreakleads.com/v1/people?within_days=7&state=CA" \
-H "Authorization: Bearer sk_…"GET /v1/people/{id}
Get a person
One person: every role with the filing it came from. Ids look like per_ followed by 16 hex characters and appear as person_id on a company's officers.
curl https://api.daybreakleads.com/v1/people/{person_id} \
-H "Authorization: Bearer sk_…"POST /v1/people/{id}/contact-search
Find contact details
Looks up one person's verified work email, only when you ask. Answers 200 with the result when one is on file for your team, or 202 with a search id while it runs in the background, usually under a minute. Needs contacts switched on for the account, the owner's acceptance of the contacts terms, and a key with the daybreak.contacts scope. Addresses the mail server cannot confirm are never returned.
curl -X POST https://api.daybreakleads.com/v1/people/{person_id}/contact-search \
-H "Authorization: Bearer sk_…"GET /v1/contact-searches/{id}
Read a search
The search's status (queued, searching, found, not_found, skipped, failed), the step it is on, and the contact once found, with where each part came from and the rule that applies to your send. GET /v1/contact-searches lists your team's searches this month.
curl https://api.daybreakleads.com/v1/contact-searches/{search_id} \
-H "Authorization: Bearer sk_…"GET /v1/contacts/export
Export contacts
Every verified address your team was shown, as CSV: person, company, email, verified date, filing and sender rule. Report a bounce or an unsubscribe with POST /v1/contacts/{id}/outcome.
curl -o contacts.csv https://api.daybreakleads.com/v1/contacts/export \
-H "Authorization: Bearer sk_…"POST /v1/webhooks
Webhooks
Receive contact_search.completed, person.removed and website.found as they happen. Each delivery is signed: X-Daybreak-Signature: sha256=… is the HMAC-SHA256 of the body with the secret returned once when you create the webhook. When you receive person.removed, delete that person from your tools.
curl -X POST https://api.daybreakleads.com/v1/webhooks \
-H "Authorization: Bearer sk_…" \
-H "Content-Type: application/json" \
-d '{"url":"https://hooks.example.com/daybreak","events":["contact_search.completed","person.removed"]}'Authentication
Send an API key as a Bearer token. Create one on API keys. Keys read signals, companies and people; a key needs the daybreak.contacts scope to search contact details. Keys cannot create other keys.
Limits
Free during the beta: 10,000 requests a month per account and 120 a minute per key. Past either, calls return 429 with a Retry-After header.
MCP server
The same data as tools for agents, at https://api.daybreakleads.com/v1/mcp. Set it up on Connect MCP.
Your details
Anyone named in a filing can see what we hold about them and remove it, with no account, at Your details.