Creating a Signal
What is a Signal?
Creating Signals
Create a company signal and block until the result is ready — returns the answer in the same response (recommended over async)
API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
Custom timeout in seconds (max 900). Defaults to your API key's configured timeout.
120If "true", returns 408 Request Timeout on timeout instead of 202 with latest status
falsePossible values: The company domain to research (e.g., "acme.com")
acme.comPattern: ^[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?)*$The research question to ask about the company
What is Acme Corp's main business focus?The expected format of the answer
open_textExample: open_textPossible values: Optional webhook URL to receive notifications when processing completes.
Webhooks are only sent for freshly processed signals — cached results do not trigger webhooks.
Set forceRefresh: true to bypass the cache and ensure webhook delivery.
https://myapp.com/webhooks/signalsThe importance/weight of the signal
importantPossible values: Optional signal template ID to use. When provided, the template configuration (question, answerType, weight, qualificationCriteria) will be used. The system always resolves to the latest active version of the template. Only the domain parameter is required when using a template.
a12b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6dForce re-run of the signal analysis, skipping the cache. When set to true, a new signal will be created even if a cached result exists.
falseExample: falseControls how strictly Saber verifies answers before responding.
- strict: Only returns answers backed by verified sources (primary sources or trusted secondary sources like Crunchbase, PitchBook). Returns null when information is unavailable.
- lenient: Allows logical inference and best-effort estimates when direct evidence is missing. Uses industry benchmarks, logical correlates, and quantitative metrics.
strictExample: strictPossible values: Signal completed successfully
Polymorphic signal response (company or contact)
Timeout reached - signal still processing
Bad Request - Invalid input
Unauthorized - Invalid or missing API key
Request Timeout - Signal processing exceeded timeout (only when X-Sbr-Timeout-Error header is set to true)
Too Many Requests - Rate limit exceeded
Internal Server Error
Create a company signal asynchronously — returns immediately with a pending status; poll the returned ID or receive the result via webhook
API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
The company domain to research (e.g., "acme.com")
acme.comPattern: ^[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?)*$The research question to ask about the company
What is Acme Corp's main business focus?The expected format of the answer
open_textExample: open_textPossible values: Optional webhook URL to receive notifications when processing completes.
Webhooks are only sent for freshly processed signals — cached results do not trigger webhooks.
Set forceRefresh: true to bypass the cache and ensure webhook delivery.
https://myapp.com/webhooks/signalsThe importance/weight of the signal
importantPossible values: Optional signal template ID to use. When provided, the template configuration (question, answerType, weight, qualificationCriteria) will be used. The system always resolves to the latest active version of the template. Only the domain parameter is required when using a template.
a12b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6dForce re-run of the signal analysis, skipping the cache. When set to true, a new signal will be created even if a cached result exists.
falseExample: falseControls how strictly Saber verifies answers before responding.
- strict: Only returns answers backed by verified sources (primary sources or trusted secondary sources like Crunchbase, PitchBook). Returns null when information is unavailable.
- lenient: Allows logical inference and best-effort estimates when direct evidence is missing. Uses industry benchmarks, logical correlates, and quantitative metrics.
strictExample: strictPossible values: Signal created successfully
Bad Request - Malformed request body (invalid JSON)
Unauthorized - Invalid or missing API key
Unprocessable Entity - Validation error
Too Many Requests - Rate limit exceeded
Internal Server Error
Create multiple company signals in batch — combines domains and questions using a Cartesian product; use templates for batches over 100 signals
API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
Array of company domains to research. Each domain will be combined with each signal template using Cartesian product logic. The total resulting signals (len(signals) × len(domains)) must not exceed 100.
acme.comWhether to automatically generate a summary when all signals in the batch are completed.
When set to true, a summary will be automatically generated for each unique domain in the batch
once all signals for that domain have completed processing.
falseExample: falseWhen true, enables async processing with a higher limit of 20,000 signals.
Returns a batchId for tracking instead of inline results.
The response shape differs from sync mode — returns { batchId, submittedAt, totalSignals, status, async }.
Use /v1/companies/signals/batches/status?domain=... to poll for progress.
falseExample: falseBatch accepted. Response shape depends on whether async was set:
- Sync mode (default): Returns
SignalBatchResponsewith inline results - Async mode (
async: true): ReturnsAsyncBatchResponsewithbatchIdfor tracking
Bad Request - Malformed request body (invalid JSON)
Unauthorized - Invalid or missing API key
Unprocessable Entity - Validation error or all signals in batch failed
Too Many Requests - Rate limit exceeded
Internal Server Error
Create a contact signal and block until the result is ready — returns the answer in the same response (recommended over async)
API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
Custom timeout in seconds (max 900). Defaults to your API key's configured timeout.
120If "true", returns 408 Request Timeout on timeout instead of 202 with latest status
falsePossible values: The contact profile URL to research (e.g., "https://linkedin.com/in/johndoe")
https://linkedin.com/in/johndoeThe research question to ask about the contact
What are this person's main professional interests?The expected format of the answer
open_textExample: open_textPossible values: Optional webhook URL to receive notifications when processing completes.
Webhooks are only sent for freshly processed signals — cached results do not trigger webhooks.
Set forceRefresh: true to bypass the cache and ensure webhook delivery.
https://myapp.com/webhooks/signalsThe importance/weight of the signal
importantPossible values: Optional signal template ID to use
a12b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6dControls how strictly Saber verifies answers before responding.
- strict: Only returns answers backed by verified sources (primary sources or trusted secondary sources like Crunchbase, PitchBook). Returns null when information is unavailable.
- lenient: Allows logical inference and best-effort estimates when direct evidence is missing. Uses industry benchmarks, logical correlates, and quantitative metrics.
strictExample: strictPossible values: Force re-run of the signal analysis, skipping the cache. When set to true, a new signal will be created even if a cached result exists.
falseExample: falseSignal completed successfully
Polymorphic signal response (company or contact)
When the signal processing completed (only present when status is completed)
2024-01-15T10:32:15ZThe AI-generated answer (only present when status is completed)
Detailed reasoning for the answer (only present when status is completed)
Based on the company's website and public information, Acme Corp specializes in enterprise software.Confidence score for the answer (0-1, only present when status is completed)
0.95Error message (only present when status is failed)
LinkedIn data is currently unavailable due to rate limits. Please try again later.Machine-readable error code (only present when status is failed)
LINKEDIN_RATE_LIMIT_EXCEEDEDPossible values: Suggested action to resolve the error (only present when status is failed)
You can: (1) Set connectors.salesNavigator.enabled="off" to skip LinkedIn data, (2) Add more LinkedIn connectors, or (3) Try again in 24 hours when rate limits reset.Verification mode used for signal generation
strictPossible values: Contact profile URL
Timeout reached - signal still processing
Bad Request - Invalid input
Unauthorized - Invalid or missing API key
Request Timeout - Signal processing exceeded timeout (only when X-Sbr-Timeout-Error header is set to true)
Too Many Requests - Rate limit exceeded
Internal Server Error
Create a contact signal asynchronously — returns immediately with a pending status; poll the returned ID or receive the result via webhook
API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
The contact profile URL to research (e.g., "https://linkedin.com/in/johndoe")
https://linkedin.com/in/johndoeThe research question to ask about the contact
What are this person's main professional interests?The expected format of the answer
open_textExample: open_textPossible values: Optional webhook URL to receive notifications when processing completes.
Webhooks are only sent for freshly processed signals — cached results do not trigger webhooks.
Set forceRefresh: true to bypass the cache and ensure webhook delivery.
https://myapp.com/webhooks/signalsThe importance/weight of the signal
importantPossible values: Optional signal template ID to use
a12b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6dControls how strictly Saber verifies answers before responding.
- strict: Only returns answers backed by verified sources (primary sources or trusted secondary sources like Crunchbase, PitchBook). Returns null when information is unavailable.
- lenient: Allows logical inference and best-effort estimates when direct evidence is missing. Uses industry benchmarks, logical correlates, and quantitative metrics.
strictExample: strictPossible values: Force re-run of the signal analysis, skipping the cache. When set to true, a new signal will be created even if a cached result exists.
falseExample: falseContact signal created successfully
Bad Request - Malformed request body (invalid JSON)
Unauthorized - Invalid or missing API key
Too Many Requests - Rate limit exceeded
Internal Server Error
Last updated