Skip to content
Fifi CRMHelp

Connect other tools

About 20 minutes · For owners and admins · Needs Pro or Business · Last checked in v0.61.0, Oct 2026

The Fifi API lets another tool read and change your records, and webhooks let Fifi tell another tool the moment something happens. This guide helps you decide if you need them, then creates a key, makes a first request and sets up one webhook. It doesn't list every endpoint; the reference guides do, and they are linked at the end.

Before you start

Do you need it?

You want to…Use
Get leads from your website into FifiA form. No code and no key.
Move your customers in or out onceCSV import and export. See Bring in your existing customers.
Keep another system in step with Fifi all the timeThe API, with a webhook so you don't have to keep asking.
Show Fifi's numbers in another toolThe API, read only.
Be told when a deal is won, an invoice is paid or a load is deliveredA webhook.

The API is for someone comfortable with web requests, or for a tool that sends them. If a form or a CSV does the job, use that.

What to have

  • Who can do it: owners and admins. Members don't see Settings → API.
  • Needs: the API module, which is part of Pro and Business. A workspace can use up to 3 webhook endpoints on Pro and 10 on Business, and 300 API requests a minute on Pro and 600 on Business.
  • Have ready: the name of the tool, what it needs to do, and, for a webhook, a public https:// address it can receive requests at. Sample workspaces can't use the API.

Steps

1. Create a key with the smallest access

  1. Open Settings → API.
  2. Click Create API key.
  3. Enter a Name that says which tool uses it.
  4. Under Access, choose No access, Read or Read and write for each area. Start with Read and only add Read and write for the areas the tool must change. The areas are Contacts, Companies, Deals, Tasks, Notes, calls and meetings, Webhooks, Floor plans and seats, Service records, Loads, and Invoices and payments. The last four are read only.
  5. Choose when it Expires. Shorter is safer.
  6. Click Create key.
  7. Copy the key from Copy your API key into a password manager or your tool's secret store. You won't see it again.

A key acts as you, limited to the access you gave it, and only reaches your workspace. If you are deactivated or stop being an owner or admin, Fifi revokes your keys for good.

Settings, API: the Create API key button with an empty key list, and the Webhooks section with Add webhook
Keys and webhooks live together in Settings → API.

Heads up

Treat a key like a password. Never paste it into a chat, an email or a support request, and never put it in a web page or a mobile app. Fifi never needs yours.

2. Make your first request

  1. In a terminal, set two variables with your Fifi address and your key.
  2. Ask who the key is:
export FIFI=https://app.fetchfifi.com
export FIFI_API_KEY=fifi_xxxxxxxx_...

curl "$FIFI/api/v1/me" -H "Authorization: Bearer $FIFI_API_KEY"

What you'll see: the workspace, the key's name, its access and expiry, and its rate limits. Then list some contacts:

curl "$FIFI/api/v1/contacts?limit=5" -H "Authorization: Bearer $FIFI_API_KEY"

Lists come back as data with a next_cursor for the next page. Money is whole cents, times are UTC and unknown fields are refused. The rules, filters and errors are in API keys and the REST API.

The areas added for newer features, service records, loads, and invoices and payments, are read only, so a tool can report on them but not change them. Their endpoints are /service-records, /loads, /invoices and /payments.

3. Add a webhook

  1. In Settings → API, scroll to Webhooks and click Add webhook.
  2. Enter the Endpoint URL. It must be https://, with a public host name.
  3. Tick the Events to send, only the ones your tool uses.
  4. Click Add webhook and copy the signing secret that starts with whsec_. It is shown once.
  5. On the endpoint's page, click Send test event.

Fifi signs every delivery. Your tool must check the Fifi-Signature header against the signing secret and the raw request body before it trusts the request, and must answer with a 2xx status within 10 seconds. A short function that does the check is in Webhooks. Fifi may send an event more than once, so use its id to skip duplicates.

4. Rotate keys and secrets

To replace an API key:

  1. Create a new key with the same access.
  2. Put it in the tool and confirm the tool works.
  3. In Settings → API, click Revoke next to the old key and confirm. It stops working at once and can't be undone.

To replace a webhook's secret, open the endpoint and click Roll secret, then copy the new one. For 24 hours Fifi signs with both, so nothing is missed while you switch. See Webhooks.

If a key may have leaked, revoke it first and make a new one after.

What you'll see

  • The key in the list with its status (Active, Paused, Expired or Revoked), when it was last used and from where.
  • The webhook with a delivery log of recent deliveries: Delivered, Retrying, Waiting or Failed.
  • Changes made through a key in the activity log as "you via API key".

Check your work

  • To do: The key has only the access the tool needs, and an expiry.
  • To do: The key is stored in a secret store, not in a document or chat.
  • To do: /api/v1/me answers with your workspace.
  • To do: The test event shows Delivered in the log.
  • To do: Your receiver rejects a request with a wrong signature.
  • To do: You wrote down when the key expires.

Troubleshooting

What you seeWhyWhat to do
401 unauthorized right after creating a keyThe key was copied only in part.Copy the whole key, including fifi_.
403 insufficient_scopeThe key lacks the access the request needs.Create a new key with that access and revoke the old one.
403 module_disabledThe API module, or the area's module, is off, or the plan doesn't include it.Turn it on in Settings → Modules.
429 rate_limitedToo many requests.Wait for the Retry-After seconds.
A webhook shows Failed or RetryingYour address isn't answering with a 2xx status in 10 seconds.Fix the receiver; Fifi retries on a schedule.
A key shows PausedThe person who created it isn't active.Create a new key as an active owner or admin.

Something out of date? Tell us.