Web app and backend
Everything the Flutter SDK does goes through PurrCRM‘s HTTP API, and your own code can call it too. There are three parts, all at your PurrCRM address, https://app.purrcrm.com:
| Part | Who calls it | With |
|---|---|---|
Guest API, /guest/v1/ | Your website or web app, from the browser, on behalf of a signed-in user. | Your app key, and the user’s token. The site must be one of the app’s web origins. |
Server API, /server/v1/ | Your backend. | A server key, kept on your servers. |
Public routes, /public/v1/ | Anyone. Mostly used by PurrCRM‘s own pages and emails. | Nothing. |
Start here
Section titled “Start here”- From a website or web app: name your site in Web origins, then the messenger, conversations, events, the help center and notices, with
fetch. - From your backend: Identify, events, erase, export and event definitions, with curl, Node, Python and Go.
- Sign users in: minting the user’s token with your identity secret.
- Webhooks: PurrCRM telling your servers what happened.
- Errors and limits: what a refusal looks like, and how much you may send.
- API reference: every route, generated from the API itself.
Conventions
Section titled “Conventions”- Bodies are JSON (
Content-Type: application/json), in UTF-8. Field names aresnake_case. - Times are RFC 3339 in UTC, such as
2026-10-18T09:30:00Z. - Ids are strings. Your own id for a person, the external id, is 1 to 200 characters.
- A refusal is problem JSON with a
codeto switch on. - Send
Accept-Languagewith a user’s language, and words written for people come back in it where your team translated them.