PPingloopDocs
Developers

REST API

Base URL: https://api.yourdomain.com (local: http://localhost:4000).

Authentication

Create a token under Settings → Developer → API tokens and send it as a bearer token. Tokens are scoped to a workspace and act as an Admin.

curl $API/tickets -H "Authorization: Bearer plp_…"

User JWTs (from POST /auth/login) also work and require the x-workspace-id header.

Endpoints

ResourceEndpoints
ConversationsGET /conversations, POST /conversations, GET /conversations/:id, POST /conversations/:id/messages, PUT /conversations/:id/assign, POST /conversations/:id/hold, /resume, /wrap-up, /notes, /translate, /ai-reply, `GETPOSTDELETE /conversations/views`
TicketsGET /tickets, GET /tickets/board, GET /tickets/stats, POST /tickets, `GETPUTDELETE /tickets/:id, POST /tickets/:id/comments, GETPUT /tickets/settings`
Contacts`GETPOST /contacts, GETPUTDELETE /contacts/:id, POST /contacts/:id/notes, GET /contacts/duplicates, POST /contacts/merge, POST /contacts/import, GETPOST /contacts/companies, GETPOSTPUTDELETE /contacts/fields`
Queues & SLA`GETPOST /queues, PUTDELETE /queues/:id, GETPUT /queues/capacity, GETPOST /sla/policies, PUTDELETE /sla/policies/:id, GET /sla/summary`
AutomationsGET /automations/meta, `GETPOST /automations, GETPUTDELETE /automations/:id, POST /automations/:id/test, GET /automations/runs`
AI agents`GETPOST /ai-agents, GETPUTDELETE /ai-agents/:id, POST /ai-agents/:id/playground, GET /ai-agents/meta`
Analytics`GET /analytics/summaryinboxticketsworkforceai, GETPOST /analytics/dashboards, GETPUTDELETE /analytics/dashboards/:id, POST /analytics/presence`
ReportsGET /reports, GET /reports/:key, GET /reports/:key/export, POST /csat
Permissions`GETPUT /permissions, GET /permissions/me, POST /permissions/reset`
DeveloperGET /developer/meta, `GETPOST /developer/webhooks, PUTDELETE /developer/webhooks/:id, POST /developer/webhooks/:id/test, GETPOST /developer/tokens, DELETE /developer/tokens/:id`
ChannelsGET /channels, POST /channels/connect, DELETE /channels/:id, POST /custom-channel/:id/inbound

All list endpoints accept the query filters used by the admin UI (for example ?status=OPEN&priority=HIGH&search=refund).