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

NameIn the appWhat it does
typeSignalComma-separated: company.incorporated, funding.filed, funding.amended, officer.listed.
qKeywordMatches company names, places and officer names.
countryCountryUS or GB.
stateStateTwo-letter US state, for example CA.
sinceFiled inOnly signals published on or after this date, YYYY-MM-DD.
within_daysFiled inOr: only the last N days. Saved searches use this so they stay current.
min_amountRaising at leastSmallest amount sold, in US dollars.
stageStagepre_seed, seed, series_a or later. Inferred, never stated in a filing.
industryIndustryIndustry name or SIC prefix, for example 62.
exclude_fundsLeave out fundstrue drops pooled investment funds and SPVs.
pageNextPage number, starting at 1; per_page up to 100.

Example

curl
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
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
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
curl https://api.daybreakleads.com/v1/signal-types

GET /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
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
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
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
curl https://api.daybreakleads.com/v1/people/{person_id} \
  -H "Authorization: Bearer sk_…"

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
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
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
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
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.