Developer API

Resool Team · · 5 min read

The Developer API is Resool's REST API. It lets your own systems, such as your website, back office, ERP or data warehouse, read and update Resool data: create and update contacts, tag them, list conversations, send messages, and create and update tickets and tasks. You authenticate with an API key that you create in Resool, and each key can only do what the member who created it is allowed to do.

Before you begin

  • Only workspace Owners and Admins can create and revoke API keys.
  • A key acts as the member who created it. It never has more access than that member's role.

How to create an API key

  1. Go to Settings › Apps and open the Developer tools tab.
  2. Click Connect (or Manage) on the Developer API card. The Developer API page opens.
  3. In the API keys card, click New key.
  4. Enter a Name that says where the key is used, for example "Website" or "ERP".
  5. Choose the Access:
    • Read: view contacts, conversations, tickets and tasks.
    • Read and write: also create and update records and send messages.
  6. Click Create key.
Screenshot placeholder

Settings › Apps › Developer tools › Developer API › New key

The "New key" dialog with the Name field filled in ("Website") and the Access options Read and Read and write, with Read and write selected.

File: screenshots/developer-api-new-key.png

Name the key and choose its access.
  1. In Copy your new key, click the copy button and store the key somewhere safe, such as your server's secret store. This is the only time the key is shown. Click Done.

How to manage API keys

The API keys card lists every active key with:

  • Name, and who created it and when ("By … · date").
  • Key: the first characters of the key, so you can recognise it.
  • Access: Read or Read and write.
  • Last used: when the key last made a request, or Never.
Screenshot placeholder

Settings › Apps › Developer tools › Developer API

The Developer API page with the API keys card: the base address under the title, the New key button, and a table with two keys (one Read, one Read and write) showing Last used dates and revoke buttons.

File: screenshots/developer-api-keys-list.png

Your API keys, their access and when they were last used.

To stop a key, click the revoke button on its row and confirm Revoke. Anything using the key stops working right away. Removing the member who created a key also stops it.

How to make your first request

The base address is shown under the API keys title. Send the key as a Bearer token in the Authorization header:

curl https://api.resool.io/v1/me \
  -H "Authorization: Bearer YOUR_API_KEY"

/me is the connection test. It returns the workspace, the member the key belongs to and the permissions the key has. Use the base address exactly as your API keys card shows it.

Requests and responses are JSON. Dates are ISO 8601 and IDs are UUIDs. No cookies are needed.

What you can do with the API

AreaRequests
AccountGET /me
ContactsGET /contacts (search and paginate), GET /contacts/{id}, POST /contacts, PATCH /contacts/{id}
Contact tagsPOST /contacts/{id}/tags (by tag ID, or by name: created if missing), DELETE /contacts/{id}/tags/{tagId}, GET /tags
MessagesPOST /contacts/{id}/messages (on the contact's latest conversation), POST /conversations/{id}/messages, GET /conversations/{id}/messages (latest 50)
ConversationsGET /conversations (filter by status), PATCH /conversations/{id} (status, assignee, team)
TicketsGET /tickets, GET /tickets/{id}, POST /tickets, PATCH /tickets/{id}
TasksGET /projects, GET /tasks, POST /tasks, PATCH /tasks/{id}
MembersGET /members
Event subscriptionsPOST /hooks, DELETE /hooks/{id}. See Webhooks.

Every request also checks the member's permissions. For example, sending a message needs permission to reply in the inbox, and a Read key can never create, update or send. Channel rules still apply: on WhatsApp, a free-form message can only be sent within 24 hours of the customer's last message.

Notes and limitations

  • Rate limit: up to 120 requests per minute. Above that you get HTTP 429; wait and try again.
  • Errors are JSON with a status code and an error code:
StatusMeaning
400The input isn't valid.
401The key is missing, wrong or revoked.
402The workspace's plan doesn't include the API, or the subscription isn't active.
403The key is read-only, or the member doesn't have the permission.
404Not found in this workspace.
429Too many requests.
  • A key works for one workspace only: the one it was created in.

FAQ and troubleshooting

I get 401 even though I copied the key

What you can do:

  • Send the header as Authorization: Bearer <key>, with a space after "Bearer" and no quotes.
  • Check that the key wasn't revoked and that the member who created it is still in the workspace.

I get 403 when creating a contact or sending a message

The key has Read access, or the member who created it isn't allowed to do that. Create a Read and write key as a member whose role has the permission.

Can I see a lost key again?

No. Keys are shown only once. Revoke the lost key and create a new one.

Do I need the API to use Zapier, Make or n8n?

You don't need to create a key: those tools connect with a Resool sign-in. They still need the Scale plan. See Zapier, Make and n8n.

How do I get notified when something happens instead of polling?

Use Webhooks. Resool sends a signed request to your server when contacts, conversations, tickets, tasks and deals change.

What's next?

Can't find what you're looking for?

Our team replies by email, usually within one business day.