Bulk Signals

All supported signals for a batch of company domains.

Tip: Use this to refresh many accounts in one call instead of looping individual /signals/* endpoints.

Endpoint

POST /api/v1/signals/bulk

Authentication

All requests require the X-Satellyte-API-Key header. See Quickstart.

Request body

FieldTypeRequiredNotes
company_domainsstring[]YesOne or more domains.

cURL

curl -i -X POST "https://api-staging.satellyte.ai/api/v1/signals/bulk" \ -H "X-Satellyte-API-Key: $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "company_domains": ["openai.com", "stripe.com", "notion.so"] }'

Response (200)

Example response with mixed signal results:

{ "data": { "openai.com": [ { "id": "lead_123:0", "type": "company_hiring", "company": "OpenAI", "company_domain": "openai.com", "lead_id": "lead_123", "lead_name": "Alex Morgan", "lead_title": "AI Infrastructure Lead", "linkedin_url": "https://www.linkedin.com/in/alex-morgan", "title": "Hiring AI infrastructure engineers", "detail": "Detected from lead/company signals", "source_url": "https://example.com/job", "detected_at": "2026-05-01T00:00:00.000Z", "score": 20 } ], "stripe.com": [ { "id": "lead_456:0", "type": "funding_announcement", "company": "Stripe", "company_domain": "stripe.com", "lead_id": "lead_456", "lead_name": "Jamie Lee", "lead_title": "Head of Partnerships", "linkedin_url": "https://www.linkedin.com/in/jamie-lee", "title": "Stripe announces a new funding round", "detail": "Recent funding announced", "source_url": "https://example.com/funding-announcement", "detected_at": "2026-05-02T00:00:00.000Z", "score": 25 } ], "notion.so": [] } }

Response fields

FieldTypeNotes
dataobjectObject keyed by each requested company domain.
data.<domain>arraySignal records for that company domain. Empty array when no supported signals are known.
data.<domain>[].idstringStable signal item ID.
data.<domain>[].typestringSignal type, for example "company_hiring" or "funding_announcement".
data.<domain>[].companystring | nullCompany name associated with the signal.
data.<domain>[].company_domainstring | nullNormalized company domain when available.
data.<domain>[].lead_idstringLead ID associated with the signal.
data.<domain>[].lead_namestringLead name associated with the signal.
data.<domain>[].lead_titlestring | nullLead title when available.
data.<domain>[].linkedin_urlstring | nullLead LinkedIn profile URL when available.
data.<domain>[].titlestring | nullHeadline or title of the signal.
data.<domain>[].detailstring | nullFree-form signal detail or provenance text.
data.<domain>[].source_urlstring | nullSource URL for the signal when available.
data.<domain>[].detected_atstring | nullTimestamp when the signal was detected.
data.<domain>[].scorenumber | nullSignal or lead score when available.

Empty array if no signals are known for a requested domain.

Error responses

All failed calls use the standard error envelope documented in Errors.

StatusCodeNotes
400validation_errorReturned when the request body is invalid or no company domains are provided.
401unauthorizedReturned when X-Satellyte-API-Key is missing, invalid, or expired.
404not_foundReturned when Public API access is not enabled or the requested Public API resource is unavailable.
429rate_limit_exceededReturned when the API key exceeds its configured rate limit.
500service_errorReturned when the service cannot complete the request. Retry with backoff.