Skip to main content
Base URL https://api.usefrictionless.com/api/v1. Send JSON with your API key in the Authorization header. Every endpoint is in the API reference, where you can try it.

Create or update a contact

PUT /contacts/:userId. Only the fields you send change. Set an attribute to null to remove it.
Returns the contact, and linkedChats: how many chats it’s now linked to.

Send an event

POST /events. Say who it happened to with:
  • userId: best. Saved even before they ever chat, and creates the contact if needed.
  • phone: for someone already chatting on WhatsApp.
  • or both.
amount and reference in properties get their own rows on the card.
level is optional. "problem" puts the event at the top of the agent’s panel in red, "info" keeps it in the list. Leave it out and Frictionless decides from the name: words like failed, declined or rejected make it a problem. Returns 201 with the event’s id and postedToConversations: how many active chats received a card. occurredAt (ISO 8601) is optional and defaults to now.

In Node.js

Read or delete a contact

  • GET /contacts/:userId returns the contact and its latest 20 events, which helps when checking an integration.
  • DELETE /contacts/:userId removes the contact and its events, for example when a user deletes their account with you. Chats and messages stay.