Ta strona nie została jeszcze przetłumaczona na Twój język. Wyświetlamy wersję angielski (Wielka Brytania).
API overview
Make your first Fondaro API call with an API key that acts as you, and see which credential and which page covers each part of the API.
The Fondaro API lets your own code do what you do in Fondaro: work your leads, tasks, deals and notes, search and show listings, and send brochures and documents. One API key acts as the person who made it, with the access that person has. This page gets you to a first call and shows where each area lives.
Find the base URL
Every path in these docs is relative to it. Requests and responses are JSON over HTTPS unless a page says otherwise (file uploads use multipart/form-data). The API is for servers: call it from your backend, an automation or a script, not from a web page.
Make your first call
- Create a key on the API keys page (Settings › Integrations › For developers › API keys). See API keys. Copy it when it is shown: you see it once.
- Save it as an environment variable:
- Ask the API who the key acts as:
GET /v1/me needs no scope: any valid key with an owner can say who it is.
- List your five newest leads (needs
crm:read):
- Create a lead (needs
crm:write). Send anIdempotency-Keyso a retry never creates a second lead:
Every /v1 response carries an X-Request-Id header. Quote it if you contact support. See Errors and limits.
Choose a credential
Each part of the API takes its own credential. Authentication explains how to get and manage each one.
| You want to | Credential | Header |
|---|---|---|
| Use the Fondaro API: CRM, listings, property search, brochures, documents | API key (fondaro_pk_…), acts as you | Authorization: Bearer <key> |
| Automate with n8n or Zapier (agency-wide, webhooks) | Integration key (fdr_n8n_…) | Authorization: Bearer <key> |
| Connect an AI client | MCP key (fdr_mcp_…) or browser sign-in | See MCP server |
| Call the routes the dashboard uses, as a signed-in member | Session token | Authorization: Bearer <session-token> |
Find the area you need
| Area | Where | Scope |
|---|---|---|
| Leads, people, notes, tasks, calendar, deals, calls and emails | Leads, People, Notes, Tasks and calendar, Deals, Calls and conversations | crm:read, crm:write |
| Semantic search of your CRM and listing matches | Search | crm:read |
| Viewings, open houses, collections and buyer requests | Viewings and open houses, Network | properties:read |
| Listings: search, create and update | Search, Create and update listings | properties:read, properties:write, media:write |
| Property search across your connected sources | Property sources | sources:read |
| Brochures | Brochures | brochures:read, brochures:write (creating a brochure, adding or refreshing listings and renewing also need properties:read) |
| Documents | Documents (an active plan is required) | documents:read, documents:write |
| Agency-wide automation and webhooks | Integration reporting | Integration key |
| AI clients | MCP server, Build with AI | MCP key or sign-in |
| Dashboard features | Setup, Inbox, Calling, Calendar, Teams and more | Session token |
Listings and property search keep the paths they have always had, for example POST /properties/search. They now accept Authorization: Bearer too.
Browse the OpenAPI document
The whole Fondaro API describes itself in one OpenAPI 3 document at https://api.fondaro.com/openapi/fondaro.json. It is public. The listings and property search part alone stays at /openapi/properties.json for existing integrations. Every operation names the scope it needs in x-required-scopes. Browse it in the API reference, or point a code generator or AI assistant at it.
Read a response
A successful response is JSON: 200, 201 for a create, or 204 with no body for a delete. A single resource is the object itself. A list is wrapped in an object with data and hasMore:
Record ids are UUIDs, except leads (integers) and people (user ids such as user_2abcDEF). Times are ISO 8601 in UTC; date-only fields are YYYY-MM-DD. Errors and limits lists the error envelope, the paging styles, idempotency and rate limits.
Handle new versions
The /v1 routes only change by adding: new routes, new fields, new optional parameters. Build your client to ignore fields it does not know. A change that breaks a client would arrive as /v2, announced in the changelog, with /v1 still working.