# API reference

> Every endpoint, parameter, response and error of the Funnelfeedr API, rendered from the OpenAPI spec.

The machine-readable contract is the OpenAPI 3 document at [/developers/openapi.json](https://funnelfeedr.com/developers/openapi.json). It is generated from the API's code, so it is always the current truth; load it into your HTTP client, code generator or agent framework. Every `operationId` is verb_noun (`match_people`, `reveal_contacts`, `get_credits`) so it can be used directly as a tool name, and operations that can spend credits carry an `x-credit-cost` extension.

Base URL: `https://api.funnelfeedr.com/external/v1`. Authentication: `Authorization: Bearer $FUNNELFEEDR_API_KEY` on every request.

## Operations

| Method and path | `operationId` | Spends credits |
|---|---|---|
| `POST /organizations/match` | `match_organizations` | When `reveal` is set and `dryRun` is not `true` |
| `POST /organizations/contacts/match` | `match_organization_contacts` | No |
| `POST /organizations/switchboards/match` | `match_organization_switchboards` | When `reveal` is set and `dryRun` is not `true` |
| `POST /people/match` | `match_people` | When `reveal` is set and `dryRun` is not `true` |
| `POST /contacts/reveal` | `reveal_contacts` | Yes, unless `dryRun` is `true` |
| `GET /credits` | `get_credits` | No |

Every API key can call every operation.

For how these behave, read [Matching](https://funnelfeedr.com/developers/matching.md), [Credits & reveal](https://funnelfeedr.com/developers/credits-and-reveal.md), [Batching](https://funnelfeedr.com/developers/batching.md), [Pagination](https://funnelfeedr.com/developers/pagination.md), [Idempotency](https://funnelfeedr.com/developers/idempotency.md), [Rate limits](https://funnelfeedr.com/developers/rate-limits.md) and [Errors](https://funnelfeedr.com/developers/errors.md).
