# Provident Lead Intake API > Post leads into Provident's CRM, follow what happens to them, and read our reference data. - [Introduction](https://docs.prov.ae/introduction.md): What the Provident Lead Intake API does, and the shortest path from nothing to a lead in our CRM. - [Lead Intake API](https://docs.prov.ae/lead-intake-api.md): The complete integration handbook for POST /v2/public/leads — authentication, every field, matching, webhooks and reference data. - [Get an access token (client credentials)](https://docs.prov.ae/api-reference/authentication/get-an-access-token-client-credentials.md): Exchanges your `client_id` and `client_secret` for a short-lived opaque bearer token. `client_credentials` is the only supported grant type. - [Create a CRM lead](https://docs.prov.ae/api-reference/lead-intake/create-a-crm-lead.md): Creates a lead in the Provident CRM and attaches it to a contact. - [Locations, developers, property types and statuses](https://docs.prov.ae/api-reference/reference-data/locations-developers-property-types-and-statuses.md): Returns every lookup list in one call. There is no standalone locations endpoint — this is where locations come from. - [Search communities and areas](https://docs.prov.ae/api-reference/reference-data/search-communities-and-areas.md): Type-ahead over the whole location tree, relevance-ranked when a term is given. Omit the term to page the tree. Offset-paged like the developers endpoint; `page` is rejected with 422. - [Get one community or area](https://docs.prov.ae/api-reference/reference-data/get-one-community-or-area.md): For re-displaying a location the visitor picked earlier. - [List developers](https://docs.prov.ae/api-reference/reference-data/list-developers.md): Paginated list of enabled developers. CHANGED 2026-08: this endpoint moved from `page`/`limit` to `limit`/`offset`, and `meta` from `{page, limit, total, totalPages}` to `{limit, offset, total}`. `page` is no longer accepted — sending it returns 422, it is not ignored. - [Search developers](https://docs.prov.ae/api-reference/reference-data/search-developers.md): Matches the term against developer name, slug and description, ranking exact-name matches first. Falls back to the plain list when no term is given. CHANGED 2026-08: this endpoint moved from `page`/`limit` to `limit`/`offset`, and `meta` from `{page, limit, total, totalPages}` to `{limit, offset, to… - [Get one developer](https://docs.prov.ae/api-reference/reference-data/get-one-developer.md) - [List published projects](https://docs.prov.ae/api-reference/reference-data/list-published-projects.md): Paginated, filterable list of published projects. Returns the compact shape by default; pass `simplified=false` for the full record. - [Published projects inside a bounding box](https://docs.prov.ae/api-reference/reference-data/published-projects-inside-a-bounding-box.md): Map pins for published projects within the given viewport. Accepts the same filter parameters as the project list. Returns `{ "data": [] }` when any bound is not a finite number. - [Get one published project](https://docs.prov.ae/api-reference/reference-data/get-one-published-project.md) - [List project statuses](https://docs.prov.ae/api-reference/reference-data/list-project-statuses.md) - [Update a lead — details that arrive later](https://docs.prov.ae/api-reference/lead-follow-up/update-a-lead-—-details-that-arrive-later.md): For the case where you do not have the whole enquiry at once: the name, email and phone go in with POST /public/leads, and the quiz answers, budget and area follow minutes or hours later. - [Update a lead (alias of PUT)](https://docs.prov.ae/api-reference/lead-follow-up/update-a-lead-alias-of-put.md): For the case where you do not have the whole enquiry at once: the name, email and phone go in with POST /public/leads, and the quiz answers, budget and area follow minutes or hours later. - [Who a lead was assigned to](https://docs.prov.ae/api-reference/lead-follow-up/who-a-lead-was-assigned-to.md): For most leads the agent is chosen by a routing engine that runs AFTER POST /public/leads has answered, so an ownerless lead on the create response is normal. This tells you whether an agent is coming. - [Record the agent's response time on a lead](https://docs.prov.ae/api-reference/lead-follow-up/record-the-agents-response-time-on-a-lead.md): How long the assigned agent took to respond, in whole seconds from the customer's first contact. Last write wins, so retrying is safe. Timing is not sensitive — minutes or hours after the fact is fine. `agentRespondedAt` is stamped by Provident, not by you. ## OpenAPI Specs - [openapi](/api-reference/openapi.json) - [provident-lead-intake-openapi](/provident-lead-intake-openapi.json)