Email Finder API

Find email addresses or phone numbers with a highly reliable API.

1. Authentication

To use SignalHire API, first you will need to register on the website and create an API key here - https://www.signalhire.com/integrations.

API keys should be kept secret and avoid sharing it with others. Sharing SignalHire API keys will allow others to make SignalHire API calls using your paid credits.

2. HTTP Response headers

Total remaining credits can be found in HTTP response header X-Credits-Left. Or alternatively use special API method.

3. HTTP response codes for API request

SignalHire API also returns following HTTP status codes to indicate success or failure of request.

  • 200 - Request is completed successfully, data is collected.
  • 201 - Request is accepted and server starts to collect data.
  • 204 - Request is still in progress.
  • 401 - Server can not verify your authentication to use API. Please check whether API key is proper or not.
  • 402 - You are running out of your credit limit.
  • 403 - Your account has been disabled or you ask for not yours request’s status.
  • 404 - Requested API can not be found on server or you give invalid json data or you ask for status of not existing request.
  • 406 - You gave more than maximum allowed items amount (limit is 100 now)
  • 422 - Server can not understand the request sent to it. This is kind of response can occur if parameters are passed wrongly.
  • 500 - Internal Server Error.

4. Requesting person’s data by using callback url

Callback url is a url to be provided by a client side Application Developer.

API endpoint - POST https://www.signalhire.com/api/v1/candidate/search

Request parameters

ParameterPlaceTypeDescriptionExample
apikeyRequest headerString, requiredYour secret API key to authenticate requestapikey: testapikey
itemsRequest bodyJson string, requiredArray of LinkedIn urls, emails or phones"items":["https://www.linkedin.com/in/url1",
"test@email.com",
"+44 0 808 189 3171"]
callbackUrlRequest bodyJson string, requiredCallback url on your domain will be POST requested by SignalHire once search requests are processed."callbackUrl":"https://www.yourdomain.com/yourUrl"

Example request and response

curl -X POST --include -H "apikey: testapikey" https://www.signalhire.com/api/v1/candidate/search --data '{"items":["https://www.linkedin.com/in/url1","test@email.com","+44 0 808 189 3171"],"callbackUrl":"https://www.yourdomain.com/callbackUrl"}'

Which should respond something like : {"requestId":1}
and status code 201.

Example callback request body

[{
    "item":"https:\/\/www.linkedin.com\/in\/url1", "status":"success", "candidate":{"fullName":"User1",...}
},
{
    "item":"test@email.com", "status":"failed"
},
{
    "item":"+44 0 808 189 3171", "status": "credits_are_over"
}]
                    

Data posting is considered successful if callback url returns 200 HTTP response. If callback url is unresponsive during initial reporting or if it's not able to connect successfully, 3 retries will be made. If callback url fails to return 200 during retry, it will be considered fail and discarded for further attempt.

5. Response body statuses

Status "success" indicates that individual data is collected and ready to return. Status "failed" indicates that server cannot find anything about candidate, for example because given LinkedIn url is not valid. If all contacts credits are used, returned status will be "credits_are_over" for all candidates.

6. Profile data example

 {
    "fullName": "FirstName LastName",
    "photo": {
        "url": "link to photo"
    },
    "locations": [
        {
            "name": "some location"
        }
    ],
    "skills": [
        "MySQL",
        "PHP",
        "Digital Marketing",
        "Google Analytics",
        "SEO",
        "Social Media"
    ],
    "education": [
        {
            "faculty": "Building Construction Technology",
            "university": "Poltava National Technical Yuri Kondratyuk University",
            "startedYear": 2005,
            "endedYear": 2010,
            "degree": [
                "Master of building construction"
            ]
        }
    ],
    "experience": [
        {
            "position": "Search Engine Optimization Manager",
            "location": null,
            "current": true,
            "started": "2017-01-01T00:00:00+00:00",
            "ended": null,
            "company": "GBKSOFT - Web & Mobile App Development",
            "summary": "Technical analysis, competitors, content planning, external links, PP\u0421, reporting, making tasks, creative ideas."
        },
        {
            "position": "SEO",
            "location": null,
            "current": false,
            "started": "2015-05-01T00:00:00+00:00",
            "ended": "2016-01-01T00:00:00+00:00",
            "company": "Prodex",
            "summary": "* SEO strategy development for projects: niche analysis, competition analysis, tools selection, smart keywords selection, etc. Provide SEO strategies with timing and budget.\n\n* SEO strategy implementation: keyword plan development, content management, setting tasks for content managers, setting tasks for developers.\n\n* SEO strategy management: daily analysis of project results, implementation of necessary changes, reporting, searching for new or non-standard approaches, experimenting."
        },
        {
            "position": "SEO, Content Manager",
            "location": null,
            "current": false,
            "started": "2015-01-01T00:00:00+00:00",
            "ended": "2015-05-01T00:00:00+00:00",
            "company": "Anex Tour",
            "summary": "Seo promotion of the project for the sale of tickets. Marketing Support Web resource. Content management."
        }
    ],
    "headLine": "SEO | Digital Marketing Manager",
    "summary": "Search Engine Optimization Manager",
    "contacts": [
        {
            "type": "email",
            "value": "developers@site.com",
            "rating": "100"
        },
        {
            "type": "phone",
            "value": "+44 (0)848745 4545",
            "rating": "100"
        },
        {
            "type": "email",
            "value": "full.email.available@business.subscription",
            "rating": "70"
        }
    ],
    "social": [
        {
            "type": "li",
            "link": "https:\/\/www.linkedin.com\/in\/url1",
            "rating": "100"
        },
        {
            "type": "fb",
            "link": "https:\/\/www.facebook.com\/url1",
            "rating": "100"
        },
        {
            "type": "li",
            "link": "https:\/\/www.linkedin.com\/in\/another-link",
            "rating": "100"
        }
    ]
}

7. Get remaining credits method

API endpoint - GET https://www.signalhire.com/api/v1/credits

Request parameters

ParameterPlaceTypeDescriptionExample
apikeyRequest headerString, requiredYour secret API key to authenticate requestapikey: testapikey

Example request and response

curl -X GET -H "apikey: testapikey" https://www.signalhire.com/api/v1/credits

Which should respond like: {"credits":27}
and status code 200.

By using SignalHire API you agree with our Terms of Use, Privacy Policy, and GDPR Compliance