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/bulkAuthentication
All requests require the X-Satellyte-API-Key header. See Quickstart.
Request body
| Field | Type | Required | Notes |
|---|---|---|---|
company_domains | string[] | Yes | One 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
| Field | Type | Notes |
|---|---|---|
data | object | Object keyed by each requested company domain. |
data.<domain> | array | Signal records for that company domain. Empty array when no supported signals are known. |
data.<domain>[].id | string | Stable signal item ID. |
data.<domain>[].type | string | Signal type, for example "company_hiring" or "funding_announcement". |
data.<domain>[].company | string | null | Company name associated with the signal. |
data.<domain>[].company_domain | string | null | Normalized company domain when available. |
data.<domain>[].lead_id | string | Lead ID associated with the signal. |
data.<domain>[].lead_name | string | Lead name associated with the signal. |
data.<domain>[].lead_title | string | null | Lead title when available. |
data.<domain>[].linkedin_url | string | null | Lead LinkedIn profile URL when available. |
data.<domain>[].title | string | null | Headline or title of the signal. |
data.<domain>[].detail | string | null | Free-form signal detail or provenance text. |
data.<domain>[].source_url | string | null | Source URL for the signal when available. |
data.<domain>[].detected_at | string | null | Timestamp when the signal was detected. |
data.<domain>[].score | number | null | Signal 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.
| Status | Code | Notes |
|---|---|---|
400 | validation_error | Returned when the request body is invalid or no company domains are provided. |
401 | unauthorized | Returned when X-Satellyte-API-Key is missing, invalid, or expired. |
404 | not_found | Returned when Public API access is not enabled or the requested Public API resource is unavailable. |
429 | rate_limit_exceeded | Returned when the API key exceeds its configured rate limit. |
500 | service_error | Returned when the service cannot complete the request. Retry with backoff. |