Documentation Index
Fetch the complete documentation index at: https://docs.signalhire.com/llms.txt
Use this file to discover all available pages before exploring further.
General
Do I need a separate subscription to use the API?
Do I need a separate subscription to use the API?
Where do I get an API key?
Where do I get an API key?
How do I know how many credits I have left?
How do I know how many credits I have left?
X-Credits-Left header with the current balance. For standard credits, the value updates automatically after each request. Credits can also be checked explicitly via the Get Remaining Credits endpoint.Credits
What credit types does SignalHire API use?
What credit types does SignalHire API use?
- Standard credits — used by the Person API when fetching profiles with contacts. Shared across the website, browser extension, and API.
- Without-contacts credits — used by the Person API with
withoutContacts: true. Independent from standard credits. Contact support@signalhire.com to purchase. - Company data credits — used by
/company/info. Independent from all other credit types. Part of the Company API which requires separate access. Contact support@signalhire.com to purchase.
X-Credits-Left response header always reflects the balance of the credit type relevant to the request made.Are API credits shared with the website and browser extension?
Are API credits shared with the website and browser extension?
How do I check my remaining balance for each credit type?
How do I check my remaining balance for each credit type?
- Standard credits:
GET /api/v1/credits - Without-contacts credits:
GET /api/v1/credits?withoutContacts=true
X-Credits-Left header returned by /company/info.When exactly is a credit consumed?
When exactly is a credit consumed?
Person API
Why do I need to set up a callback URL? Can't I just get the result directly?
Why do I need to set up a callback URL? Can't I just get the result directly?
withoutWaterfall: true. Results will be returned synchronously in the response, though contact coverage may be slightly lower.How do I authenticate incoming callbacks to my endpoint?
How do I authenticate incoming callbacks to my endpoint?
callbackUrl are not supported — SignalHire POSTs to the provided URL without additional headers. Two recommended patterns for production:1. Secret token in the callback URLMy callback URL never receives a response. What's wrong?
My callback URL never receives a response. What's wrong?
200. If delivery fails after 3 retries, the callback is discarded. SignalHire sends an email notification with the affected request IDs — check your inbox and resubmit the failed requests. See Callback Delivery for details.I submitted a request but nothing came to my callback. Was I charged?
I submitted a request but nothing came to my callback. Was I charged?
Can I mix LinkedIn URLs, emails, and phone numbers in a single request?
Can I mix LinkedIn URLs, emails, and phone numbers in a single request?
items array accepts any combination of LinkedIn URLs, email addresses, phone numbers, and 32-character SignalHire UIDs in a single request — up to 100 items per request.What does status 'failed' in the callback mean?
What does status 'failed' in the callback mean?
What is the difference between withoutContacts and withoutWaterfall?
What is the difference between withoutContacts and withoutWaterfall?
withoutContacts: true controls what is returned — profile data without emails and phone numbers, using a separate credit type that must be purchased via support@signalhire.com. withoutWaterfall: true controls how results are delivered — synchronously in the response instead of via callback, without querying external sources.How long should I wait for a callback before assuming it was lost?
How long should I wait for a callback before assuming it was lost?
I can't set up a public callback server. Can I still use the Person API?
I can't set up a public callback server. Can I still use the Person API?
withoutWaterfall: true — it returns results synchronously in the response body without requiring a callback URL. This is particularly useful for local development, scripts, or environments where setting up a publicly accessible endpoint is not practical. Keep in mind that contact coverage may be lower than in standard async mode, as only contacts already cached in the database are returned.Does withoutWaterfall return contact details?
Does withoutWaterfall return contact details?
contacts array may be empty for profiles where no contacts have been cached yet.Search API
Why does the scrollId expire after only 15 seconds?
Why does the scrollId expire after only 15 seconds?
Can I save the scrollId and resume the search later?
Can I save the scrollId and resume the search later?
scrollId expires (15 seconds after it was issued), the scroll session is lost and cannot be resumed. The correct approach is to fetch all batches in one continuous session, save each batch to the database as it arrives, and process everything afterwards.Does each scrollSearch call count as a new search against my daily quota?
Does each scrollSearch call count as a new search against my daily quota?
searchByQuery calls count as searches. However, every profile returned by both searchByQuery and scrollSearch counts against the daily profile quota. Both limits — queries and profiles — are tracked independently.My location string returns a 422 error. What formats are accepted?
My location string returns a 422 error. What formats are accepted?
"Germany"), US and Canadian states ("California", "Ontario, Canada"), and city strings ("London, United Kingdom"). The value must be recognizable — if it cannot be resolved, a 422 is returned. For precise searches, use latitude/longitude or coordinates instead, which bypass text resolution entirely. See Location Formats.Can I use excludeRevealed without any other filters?
Can I use excludeRevealed without any other filters?
excludeRevealed, excludeWatched, excludeInLists, excludeInProgress, excludeEmailed) must be combined with at least one non-exclude filter such as currentTitle or industry. A request with only exclude filters returns 422.The Search API returns profiles without contact details. How do I get their contacts?
The Search API returns profiles without contact details. How do I get their contacts?
uid field from each search profile and pass it to the Person API. The Person API will return the full profile including emails and phone numbers. Standard credits are consumed for each successfully matched profile.Why is my daily search quota shared with the website?
Why is my daily search quota shared with the website?
Company API
How do I get access to the Company API?
How do I get access to the Company API?
What is the difference between company data credits and profile credits?
What is the difference between company data credits and profile credits?
/company/info — one credit per call. Profile credits are consumed by /company/getProfiles when fetching employee lists. Both are separate from standard Person API credits. The /company/findById and /company/getCount endpoints are free.Can I search companies by name?
Can I search companies by name?
/company/findById with a company slug (e.g. accenture) or a numeric LinkedIn company ID to look up a company. If you don’t know the ID or slug, start with the slug — it is usually a lowercase version of the company name.