Search 70M+ enriched company profiles using flexible filters: industry, location, employee size, revenue, funding, techn…
Authentication
No API key - create one in the dashboard
Body
Up to 5 LinkedIn company URLs or domains to find similar companies
Company-level filters (nested DSL). Wrappers: enum/string keys use {"any":{"include":[...],"exclude":[...]}} ("all" instead of "any" requires every value); text keys use {"any":{"include":{"mode":"WORD","content":[...]}}} (mode: WORD|SMART|STRICT); numeric keys use {"type":"RANGE","range":[{"start":n,"end":n}]}. Keys — text: industries, technologies, name, url, productAndServices; enum: location, type, domain, linkedin, socialMedia, naics; range: employeeSize, revenue, foundedYear; object: funding, keyword, metric, geoLocation. type values: PUBLIC_COMPANY, PRIVATELY_HELD, SELF_EMPLOYED, SELF_OWNED, PARTNERSHIP, GOVERNMENT_AGENCY, NON_PROFIT, EDUCATIONAL. funding.type values: PRE_SEED, SEED, SERIES_A, SERIES_B, SERIES_C, SERIES_D, SERIES_E, SERIES_F, SERIES_G, SERIES_H, SERIES_I, SERIES_J, VENTURE_ROUND, ANGEL, PRIVATE_EQUITY, DEBT_FINANCING, CONVERTIBLE_NOTE, GRANT, CORPORATE_ROUND, EQUITY_CROWDFUNDING, PRODUCT_CROWDFUNDING, SECONDARY_MARKET, POST_IPO_EQUITY, POST_IPO_DEBT, POST_IPO_SECONDARY, NON_EQUITY_ASSISTANCE, INITIAL_COIN_OFFERING, UNDISCLOSED, SERIES_UNKNOWN, FUNDING_ROUND. Unknown enum values are NOT rejected by AI Ark — they silently return 0 results, so a wrong spelling is indistinguishable from an empty niche. ColdIQ validates every value in this filter against the lists documented here and echoes anything that does not match as `unmatched_filters` on the 200 response (the request is still forwarded in full). That list is OUR documentation, not AI Ark’s full taxonomy: a value flagged as unmatched may still be valid upstream, and an unflagged value is not guaranteed to be. Exclusions match only the field they are written on: an `industries` exclude filters the industry label, NOT the company NAME, so excluding "robotics" still returns a company called "Nordic Robotics AS" whose industry is something else — exclude on `name` as well when you mean both. e.g. {"industries":{"any":{"include":{"mode":"WORD","content":["software development"]}}},"location":{"any":{"include":["United States"]}},"employeeSize":{"type":"RANGE","range":[{"start":10,"end":50}]}}
Exclusion lists created with POST /ai-ark/lists. `{"company_id":{"exclude":["<list id>"]}}` on Company Search or `{"people_id":{"exclude":["<list id>"]}}` on People Search removes every id in those lists from the results. Up to 10 lists per request; lists expire 24 hours after creation.
Page number, zero-based. The offset is computed as page * size, so `size` must stay CONSTANT across a paged pull: reducing `size` on a later page moves the offset BACKWARDS into rows you already received and paid for, and bills you for them a second time. To shrink the page length, restart the pull from page 0.
Number of results per page (1-100). Do not change this between pages of the same pull — the offset is page * size, so a smaller `size` on a later page re-requests and re-bills rows already returned.
import requests url = "https://api.coldiq.com/v1/ai-ark/companies" headers = { "Authorization": "Bearer ", "Content-Type": "application/json" } response = requests.post(url, headers=headers) print(response.json())