# ICON Developer Center > Public documentation for ICON's affiliate API: search for offers, poll results, submit leads, pre-check duplicates. Every page is available as Markdown at the links below. The API itself requires an API key. API base URL: https://iconroute.io OpenAPI description: https://developers.iconroute.io/openapi.json All pages in one file: https://developers.iconroute.io/llms-full.txt ## Get started - [Welcome](https://developers.iconroute.io/index.md): Public documentation for ICON's affiliate API: search, results, submit, duplicate pre-check, standardized responses. - [Quickstart](https://developers.iconroute.io/quickstart.md): Send a test lead through search, results and submit in five minutes with curl. - [Authentication and API keys](https://developers.iconroute.io/authentication.md): Every call carries an API key issued to your affiliate account, and names your campaign and affiliate. ## API reference - [Affiliate API overview](https://developers.iconroute.io/affiliate-api.md): Three calls: search with a lead, poll for results, submit the result the consumer chose. - [Search](https://developers.iconroute.io/api/search.md): POST /api/v1/engine/search: one lead in, the offers it qualifies for out. - [Results](https://developers.iconroute.io/api/results.md): GET /api/v1/engine/results/{icon_lead_id}: poll a search until every offer has answered. - [Submit a lead](https://developers.iconroute.io/api/leads.md): POST /api/v1/engine/leads: submit a search result, or post a lead straight to an offer. - [Duplicate pre-check](https://developers.iconroute.io/api/dupe-check.md): POST /api/v1/engine/dupe-check: ask whether ICON would call a lead a duplicate, before you post it. ## Guides and reference - [Standard responses](https://developers.iconroute.io/responses.md): Every answer carries status, reason and code from one catalog. The tables below are generated from it. - [Errors and retries](https://developers.iconroute.io/errors.md): How to read a failed answer, which answers to retry, and how to retry safely. - [Field dictionary](https://developers.iconroute.io/fields.md): The lead fields ICON reads, where it stores them, the other names it accepts and the values it stores. - [Consent and TCPA](https://developers.iconroute.io/consent.md): Show each result's consent statement as ICON gives it, and send the consumer's decision with the lead. - [Attribution](https://developers.iconroute.io/attribution.md): Send your sub ids, UTM values and click ids with the lead; ICON stores them as sent and returns its own lead id. - [Rate limits](https://developers.iconroute.io/rate-limits.md): Limits are per API key and per endpoint. Over a limit ICON answers 429 with Retry-After. - [Testing](https://developers.iconroute.io/testing.md): Test leads run the whole pipeline with your live key and are held before any buyer receives them. ## Resources - [Changelog](https://developers.iconroute.io/changelog.md): Changes to what the API accepts and answers, newest first.