All integrations

Spoki

MARKETING · MARKETING

WhatsApp templates, campaigns, and conversations from their own channel.

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

spoki_delete_api_1_campaigns_by_idWRITE

Delete campaign via DELETE /api/1/campaigns/{id}/ -- rate limit 5/min

api
spoki_delete_api_1_contacts_by_idWRITE

Delete contact via DELETE /api/1/contacts/{id}/ -- rate limit 120/min

api
spoki_delete_api_1_custom_fields_by_idWRITE

Delete custom field via DELETE /api/1/custom-fields/{id}/ -- rate limit 5/min

api
spoki_delete_api_1_external_webhooks_by_idWRITE

Delete webhook via DELETE /api/1/external-webhooks/{id}/ -- rate limit 30/min

api
spoki_delete_api_1_invitations_by_idWRITE

Delete invitation via DELETE /api/1/invitations/{id}/ -- rate limit 10/min

api
spoki_delete_api_1_lists_by_idWRITE

Delete list via DELETE /api/1/lists/{id}/ -- rate limit 5/min

api
spoki_delete_api_1_media_by_idWRITE

Delete media via DELETE /api/1/media/{id}/ -- rate limit 60/min

api
spoki_delete_api_1_partner_invitations_by_idWRITE

Delete invitation via DELETE /api/1/partner-invitations/{id}/ -- rate limit 10/min

api
spoki_delete_api_1_partner_roles_by_idWRITE

Delete role via DELETE /api/1/partner-roles/{id}/ -- rate limit 5/min

api
spoki_delete_api_1_roles_by_idWRITE

Delete role via DELETE /api/1/roles/{id}/ -- rate limit 5/min

api
spoki_delete_api_1_templates_by_idWRITE

Delete template via DELETE /api/1/templates/{id}/ -- rate limit 10/min

api
spoki_delete_api_1_tickets_by_idWRITE

Delete ticket via DELETE /api/1/tickets/{id}/ -- rate limit 60/min

api
spoki_get_api_1_accountsREAD

List, search, and filter accounts via GET /api/1/accounts/ -- rate limit 5/min

api
spoki_get_api_1_accounts_by_idREAD

Retrieve account via GET /api/1/accounts/{id}/ -- rate limit 5/min

api
spoki_get_api_1_accounts_by_id_current_reportREAD

Current report via GET /api/1/accounts/{id}/current_report/ -- rate limit 5/min

api
spoki_get_api_1_accounts_phone_by_phoneREAD

Retrieve account by phone via GET /api/1/accounts/phone/{phone}/ -- rate limit 5/min

api
spoki_get_api_1_agenciesREAD

List agencies via GET /api/1/agencies/ -- rate limit 5/min

api
spoki_get_api_1_agencies_by_idREAD

Retrieve agency via GET /api/1/agencies/{id}/ -- rate limit 5/min

api
spoki_get_api_1_automationsREAD

List, search, and filter automations via GET /api/1/automations/ -- rate limit 60/min

api
spoki_get_api_1_automations_by_idREAD

Retrieve automation via GET /api/1/automations/{id}/ -- rate limit 60/min

api
spoki_get_api_1_automations_by_id_custom_fields_usedREAD

Custom fields used via GET /api/1/automations/{id}/custom-fields-used/ -- rate limit 60/min

api
spoki_get_api_1_campaignsREAD

List, search, and filter campaigns via GET /api/1/campaigns/ -- rate limit 5/min

api
spoki_get_api_1_campaigns_by_idREAD

Retrieve campaign via GET /api/1/campaigns/{id}/ -- rate limit 5/min

api
spoki_get_api_1_channelREAD

List channels via GET /api/1/channel/

api
spoki_get_api_1_channel_by_id_channelREAD

Retrieve channel via GET /api/1/channel/{id_channel}/

api
spoki_get_api_1_channel_phone_by_identifierREAD

Lookup channel by phone via GET /api/1/channel/phone/{identifier}/

api
spoki_get_api_1_contactsREAD

List, search, and filter contacts via GET /api/1/contacts/ -- rate limit 120/min

api
spoki_get_api_1_contacts_by_idREAD

Retrieve contact via GET /api/1/contacts/{id}/ -- rate limit 120/min

api
spoki_get_api_1_custom_fieldsREAD

List, search, and filter custom fields via GET /api/1/custom-fields/ -- rate limit 5/min

api
spoki_get_api_1_custom_fields_by_idREAD

Retrieve custom field via GET /api/1/custom-fields/{id}/ -- rate limit 5/min

api
spoki_get_api_1_external_webhooksREAD

List, search, and filter webhooks via GET /api/1/external-webhooks/ -- rate limit 30/min

api
spoki_get_api_1_external_webhooks_by_idREAD

Retrieve webhook via GET /api/1/external-webhooks/{id}/ -- rate limit 30/min

api
spoki_get_api_1_external_webhooks_by_id_expandsREAD

Get expands via GET /api/1/external-webhooks/{id}/expands/ -- rate limit 30/min

api
spoki_get_api_1_invitationsREAD

List, search, and filter invitations via GET /api/1/invitations/ -- rate limit 5/min

api
spoki_get_api_1_invitations_by_idREAD

Retrieve invitation via GET /api/1/invitations/{id}/ -- rate limit 5/min

api
spoki_get_api_1_listsREAD

List, search, and filter lists via GET /api/1/lists/ -- rate limit 5/min

api
spoki_get_api_1_lists_by_idREAD

Retrieve list via GET /api/1/lists/{id}/ -- rate limit 5/min

api
spoki_get_api_1_mediaREAD

List, search, and filter media via GET /api/1/media/ -- rate limit 10/min

api
spoki_get_api_1_media_by_idREAD

Retrieve media via GET /api/1/media/{id}/ -- rate limit 10/min

api
spoki_get_api_1_partner_invitationsREAD

List, search, and filter invitations via GET /api/1/partner-invitations/ -- rate limit 5/min

api
spoki_get_api_1_partner_invitations_by_idREAD

Retrieve invitation via GET /api/1/partner-invitations/{id}/ -- rate limit 5/min

api
spoki_get_api_1_partner_rolesREAD

List, search, and filter roles via GET /api/1/partner-roles/ -- rate limit 5/min

api
spoki_get_api_1_partner_roles_by_idREAD

Retrieve role via GET /api/1/partner-roles/{id}/ -- rate limit 5/min

api
spoki_get_api_1_partner_roles_by_id_has_private_keyREAD

Has Private Key via GET /api/1/partner-roles/{id}/has_private_key/ -- rate limit 10/min

api
spoki_get_api_1_partnersREAD

List, search and filter partners via GET /api/1/partners/

api
spoki_get_api_1_partners_accountsREAD

Get associated accounts via GET /api/1/partners/accounts/

api
spoki_get_api_1_partners_get_account_forecastsREAD

Get account forecasts via GET /api/1/partners/get_account_forecasts/

api
spoki_get_api_1_partners_get_account_reportREAD

Get account report via GET /api/1/partners/get_account_report/

api
spoki_get_api_1_reportsREAD

List, search, and filter reports via GET /api/1/reports/ -- rate limit 5/min -- DEPRECATED by Spoki: scheduled for removal on 2026-06-10 in favour of the richer GET /api/1/reports/detailed/ -- prefer that tool

api
spoki_get_api_1_reports_detailedREAD

List, search, and filter reports V2 via GET /api/1/reports/detailed/

api
spoki_get_api_1_rolesREAD

List, search, and filter roles via GET /api/1/roles/ -- rate limit 5/min

api
spoki_get_api_1_roles_by_idREAD

Retrieve role via GET /api/1/roles/{id}/ -- rate limit 5/min

api
spoki_get_api_1_roles_by_id_has_private_keyREAD

Has Private Key via GET /api/1/roles/{id}/has_private_key/ -- rate limit 10/min

api
spoki_get_api_1_tagsREAD

List, search, and filter tags via GET /api/1/tags/ -- rate limit 10/min

api
spoki_get_api_1_tags_by_idREAD

Retrieve tag via GET /api/1/tags/{id}/ -- rate limit 10/min

api
spoki_get_api_1_templatesREAD

List, search, and filter templates via GET /api/1/templates/

api
spoki_get_api_1_templates_by_idREAD

Retrieve template via GET /api/1/templates/{id}/

api
spoki_get_api_1_templates_by_id_cloneREAD

Clone template via GET /api/1/templates/{id}/clone/ -- rate limit 10/min

api
spoki_get_api_1_ticketsREAD

List, search, and filter tickets via GET /api/1/tickets/ -- rate limit 10/min

api
spoki_get_api_1_tickets_by_idREAD

Retrieve ticket via GET /api/1/tickets/{id}/ -- rate limit 10/min

api
spoki_patch_api_1_campaigns_by_idWRITE

Update campaign via PATCH /api/1/campaigns/{id}/ -- rate limit 5/min

api
spoki_patch_api_1_channel_by_id_channelWRITE

Rename channel via PATCH /api/1/channel/{id_channel}/

api
spoki_patch_api_1_contacts_by_idWRITE

Update a contact via PATCH /api/1/contacts/{id}/ -- rate limit 120/min -- accepts phone, first_name, last_name, email, language and custom_fields, or an is_blocked flag (true blocks the contact, false unblocks it)

api
spoki_patch_api_1_custom_fields_by_idWRITE

Update custom field via PATCH /api/1/custom-fields/{id}/ -- rate limit 5/min

api
spoki_patch_api_1_external_webhooks_by_idWRITE

Update webhook via PATCH /api/1/external-webhooks/{id}/ -- rate limit 30/min

api
spoki_patch_api_1_media_by_idWRITE

Update media via PATCH /api/1/media/{id}/ -- rate limit 120/min

api
spoki_patch_api_1_templates_by_idWRITE

Update template via PATCH /api/1/templates/{id}/ -- rate limit 10/min

api
spoki_patch_api_1_tickets_by_idWRITE

Update ticket via PATCH /api/1/tickets/{id}/ -- rate limit 120/min

api
spoki_post_api_1_automationsWRITE

Create Automation via POST /api/1/automations/ -- rate limit 60/min

api
spoki_post_api_1_campaignsWRITE

Create campaign via POST /api/1/campaigns/ -- rate limit 5/min

api
spoki_post_api_1_channelWRITE

Create channel via POST /api/1/channel/

api
spoki_post_api_1_channel_by_id_channel_refresh_wa_statusWRITE

Refresh WhatsApp phone status via POST /api/1/channel/{id_channel}/refresh-wa-status/

api
spoki_post_api_1_channel_by_id_channel_set_primaryWRITE

Set primary channel via POST /api/1/channel/{id_channel}/set-primary/

api
spoki_post_api_1_contacts_by_id_add_operatorWRITE

Add Operator via POST /api/1/contacts/{id}/add_operator/ -- rate limit 5/min

api
spoki_post_api_1_contacts_by_id_remove_operatorWRITE

Remove Operator via POST /api/1/contacts/{id}/remove_operator/ -- rate limit 5/min

api
spoki_post_api_1_contacts_syncWRITE

Create or update contact via POST /api/1/contacts/sync/ -- rate limit 120/min

api
spoki_post_api_1_contacts_sync_allWRITE

Sync contacts via POST /api/1/contacts/sync_all/ -- rate limit 1/min

api
spoki_post_api_1_custom_fieldsWRITE

Create custom field via POST /api/1/custom-fields/ -- rate limit 5/min

api
spoki_post_api_1_external_webhooksWRITE

Create webhook via POST /api/1/external-webhooks/

api
spoki_post_api_1_external_webhooks_by_id_expandsWRITE

Set expands via POST /api/1/external-webhooks/{id}/expands/ -- rate limit 30/min

api
spoki_post_api_1_external_webhooks_by_id_rotate_secretWRITE

Rotate secret via POST /api/1/external-webhooks/{id}/rotate_secret/ -- rate limit 30/min

api
spoki_post_api_1_external_webhooks_by_id_testWRITE

Send test webhook via POST /api/1/external-webhooks/{id}/test/ -- rate limit 30/min

api
spoki_post_api_1_invitationsWRITE

Invite new user by email via POST /api/1/invitations/ -- rate limit 10/min

api
spoki_post_api_1_invitations_by_id_sendWRITE

Resend invitation email via POST /api/1/invitations/{id}/send/ -- rate limit 5/min

api
spoki_post_api_1_invitations_by_id_update_roleWRITE

Update role via POST /api/1/invitations/{id}/update_role/ -- rate limit 5/min

api
spoki_post_api_1_listsWRITE

Create list via POST /api/1/lists/ -- rate limit 10/min

api
spoki_post_api_1_lists_by_id_remove_all_contactsWRITE

Remove all contacts via POST /api/1/lists/{id}/remove_all_contacts/

api
spoki_post_api_1_lists_by_id_remove_contactsWRITE

Remove contacts via POST /api/1/lists/{id}/remove_contacts/

api
spoki_post_api_1_lists_by_id_sync_contactsWRITE

Create or update contacts, then add to the list via POST /api/1/lists/{id}/sync_contacts/ -- rate limit 1/min

api
spoki_post_api_1_mediaWRITE

Create media via POST /api/1/media/ -- rate limit 120/min

api
spoki_post_api_1_messages_sendWRITE

Send a WhatsApp message via POST /api/1/messages/send/ -- rate limit 60/min -- set type=Template with a template id for a pre-approved template (optionally with buttons, a dynamic header_media, or a header_media_set carousel), or type=Message with content_type Text, Interactive (buttons) or List for a free-form message inside an open conversation; an optional channel_id routes through a specific channel, and omitting it resolves the account's primary compatible channel

api
spoki_post_api_1_partner_invitationsWRITE

Invite new user by email via POST /api/1/partner-invitations/ -- rate limit 10/min

api
spoki_post_api_1_partner_invitations_by_id_sendWRITE

Resend invitation email via POST /api/1/partner-invitations/{id}/send/ -- rate limit 5/min

api
spoki_post_api_1_partner_invitations_by_id_update_roleWRITE

Update role via POST /api/1/partner-invitations/{id}/update_role/ -- rate limit 5/min

api
spoki_post_api_1_partner_roles_by_id_update_roleWRITE

Update Role via POST /api/1/partner-roles/{id}/update_role/ -- rate limit 10/min

api
spoki_post_api_1_partners_add_sv_clientsWRITE

Add Software Vendor Clients via POST /api/1/partners/add_sv_clients/

api
spoki_post_api_1_partners_create_conversations_subrechargeWRITE

Create Conversations Subrecharge - Software Vendor Only - DEPRECATED via POST /api/1/partners/create_conversations_subrecharge/ -- DEPRECATED by Spoki and software-vendor only

api
spoki_post_api_1_partners_create_subrechargeWRITE

Create Meta Credit Subrecharge via POST /api/1/partners/create_subrecharge/

api
spoki_post_api_1_partners_move_credit_from_accountWRITE

Move Credit From Account - Software Vendor Only via POST /api/1/partners/move_credit_from_account/

api
spoki_post_api_1_partners_onboardingWRITE

Create Onboarding Link via POST /api/1/partners/onboarding/

api
spoki_post_api_1_partners_set_profitsWRITE

Set Account Profit Margins - Software Vendor Only via POST /api/1/partners/set_profits/

api
spoki_post_api_1_roles_add_service_userWRITE

Add Service User via POST /api/1/roles/add_service_user/ -- rate limit 10/min

api
spoki_post_api_1_roles_by_id_update_roleWRITE

Update Role via POST /api/1/roles/{id}/update_role/ -- rate limit 10/min

api
spoki_post_api_1_templatesWRITE

Create template via POST /api/1/templates/

api
spoki_post_api_1_templates_by_id_back_to_draftWRITE

Back template to Draft via POST /api/1/templates/{id}/back_to_draft/ -- rate limit 10/min

api
spoki_post_api_1_templates_by_id_submitWRITE

Request template via POST /api/1/templates/{id}/submit/ -- rate limit 10/min

api
spoki_post_api_1_ticketsWRITE

Create ticket via POST /api/1/tickets/ -- rate limit 120/min

api
spoki_post_wh_ap_by_uuidWRITE

Start Automation via POST /wh/ap/{uuid}/ -- NOT CALLABLE on a Spoki connection: this trigger is addressed by a per-automation UUID minted in the Spoki dashboard and authenticated by a secret in its request body, not by the account API key, so it always refuses here

api
spoki_post_wh_ap_by_uuid_bulkWRITE

Start Automation for many contacts via POST /wh/ap/{uuid}/bulk/ -- NOT CALLABLE on a Spoki connection: this trigger is addressed by a per-automation UUID minted in the Spoki dashboard and authenticated by a secret in its request body, not by the account API key, so it always refuses here

api

Put Spoki behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.