Skip to main content
POST
/
v1
/
prospect
/
icp
ICP Search
curl --request POST \
  --url https://api.gtmapis.com/v1/prospect/icp \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "company_linkedin_url": "<string>",
  "cascade": [
    {
      "include_title": [
        {}
      ],
      "exclude_title": [
        {}
      ],
      "location": [
        {}
      ],
      "include_headline_search": [
        {}
      ]
    }
  ],
  "max_results": 123
}
'
{
  "persons": [
    {
      "linkedin_url": "<string>",
      "first_name": "<string>",
      "last_name": "<string>",
      "full_name": "<string>",
      "title": "<string>",
      "headline": "<string>",
      "location": "<string>",
      "company_name": "<string>",
      "company_linkedin": "<string>",
      "email": "<string>",
      "all_emails": [
        {}
      ],
      "phone": "<string>"
    }
  ],
  "total_results": 123,
  "credits_charged": 123
}

ICP Search

Search for people at a company using a waterfall cascade of title, location, and headline filters. Returns matching person records with contact info.

Endpoint

POST /v1/prospect/icp

Request

company_linkedin_url
string
required
LinkedIn company page URL (e.g., “https://linkedin.com/company/acme”)
cascade
array
required
Array of cascade steps. Each step defines filters to find matching people. Results from earlier steps are prioritized.
max_results
integer
Maximum number of results to return

Example Request

curl -X POST https://api.gtmapis.com/v1/prospect/icp \
  -H "Content-Type: application/json" \
  -H "X-API-Key: gtm_test_your_key_here" \
  -d '{
    "company_linkedin_url": "https://linkedin.com/company/acme",
    "cascade": [
      {
        "include_title": ["VP Sales", "Head of Sales"],
        "location": ["United States"]
      },
      {
        "include_title": ["Sales Director", "Director of Sales"],
        "location": ["United States"]
      }
    ],
    "max_results": 10
  }'

Response

persons
array
Array of matching person records
total_results
integer
Number of results returned
credits_charged
integer
Total credits charged

Success Response

{
  "persons": [
    {
      "linkedin_url": "https://linkedin.com/in/janesmith",
      "first_name": "Jane",
      "last_name": "Smith",
      "full_name": "Jane Smith",
      "title": "VP of Sales",
      "headline": "Driving revenue growth at Acme",
      "location": "San Francisco, CA",
      "company_name": "Acme Inc",
      "company_linkedin": "https://linkedin.com/company/acme",
      "email": "jane.smith@acme.com",
      "all_emails": ["jane.smith@acme.com"],
      "phone": "+14155551234"
    }
  ],
  "total_results": 1,
  "credits_charged": 1
}

No Results Response

{
  "persons": [],
  "total_results": 0,
  "credits_charged": 0
}

Credit Pricing

ResultCredits Charged
Per person returned1 credit
No results0 credits
Error / failure0 credits
Credits are charged per person returned. A search returning 5 people costs 5 credits.

Cascade Logic

The cascade works as a waterfall: each step defines a set of filters, and steps are tried in order. Results from earlier steps are prioritized, making it easy to define a “wish list” of ideal profiles.
StepExample Use
Step 1VP-level sales leaders in the US
Step 2Director-level sales leaders (fallback)
Step 3Any sales manager (broader net)

Error Responses

400 Bad Request

{
  "error": "Bad Request",
  "message": "company_linkedin_url is required"
}

401 Unauthorized

{
  "error": "Unauthorized",
  "message": "Invalid API key"
}

Use Cases

Define your ICP criteria and find matching contacts at target accounts automatically.
Use cascade steps to find decision-makers at multiple seniority levels simultaneously.
Filter by location to find contacts in specific sales territories.

Employee Search

Search employees with job filters

Company Search

Find companies matching criteria

Email from LinkedIn

Get email from LinkedIn profile

Phone from LinkedIn

Get phone from LinkedIn profile

Prospect Account

Check account status and credits