# Sakari API

> Sakari API on Apizie: 26 endpoints (Get token for accessing APIs, Fetch campaigns, Create campaign, Fetch campaign by ID, …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://zieapi.vercel.app/v1/communication:sakari/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `communication:sakari`
- Category: Communication
- Status: byok
- Source: https://sakari.io
- Page: https://zieapi.vercel.app/api/communication/sakari
- OpenAPI: https://zieapi.vercel.app/api/communication/sakari/openapi.json

# Introduction Welcome to the documentation for the Sakari Messaging REST API. Sakari provides an advanced platform to drive large scale customized SMS communication REST is a web-service protocol that lends itself to…

## Endpoints

### Get token for accessing APIs
`POST https://zieapi.vercel.app/v1/communication:sakari/auth-token` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Fetch campaigns
`GET https://zieapi.vercel.app/v1/communication:sakari/campaigns-fetch-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| offset | integer | no | Results to skip when paginating through a result set |
| limit | integer | no | Maximum number of results to return |
| name | string | no | Filter by name or part of |

### Create campaign
`POST https://zieapi.vercel.app/v1/communication:sakari/campaigns-create` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| body | object | no | JSON request body |

### Fetch campaign by ID
`GET https://zieapi.vercel.app/v1/communication:sakari/campaigns-fetch` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| campaignId | string | yes | ID of campaign to return |

### Updates a campaign
`POST https://zieapi.vercel.app/v1/communication:sakari/campaigns-update` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| campaignId | string | yes | ID of campaign |

### Deletes a campaign
`POST https://zieapi.vercel.app/v1/communication:sakari/campaigns-remove` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| campaignId | string | yes | Campaign id to delete |

### Fetch contacts
`GET https://zieapi.vercel.app/v1/communication:sakari/contacts-fetch-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| offset | integer | no | Results to skip when paginating through a result set |
| limit | integer | no | Maximum number of results to return |
| firstName | string | no | Filter by first name or part of |
| lastName | string | no | Filter by last name or part of |
| mobile | string | no | Filter by mobile or part of |
| email | string | no | Filter by email or part of |
| tags | string | no | Filter by tag(s) |

### Create contact
`POST https://zieapi.vercel.app/v1/communication:sakari/contacts-create` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| mergeStrategy | string | no | Determines how existing contacts with matching mobile numbers are treated |
| body | object | no | JSON request body |

### Fetch contact by ID
`GET https://zieapi.vercel.app/v1/communication:sakari/contacts-fetch` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| contactId | string | yes | ID of contact to return |

### Updates a contact
`POST https://zieapi.vercel.app/v1/communication:sakari/contacts-update` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| contactId | string | yes | ID of contact |

### Deletes a contact
`POST https://zieapi.vercel.app/v1/communication:sakari/contacts-remove` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| contactId | string | yes | Contact id to delete |

### Fetch conversations
`GET https://zieapi.vercel.app/v1/communication:sakari/conversations-fetch-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| offset | integer | no | Results to skip when paginating through a result set |
| limit | integer | no | Maximum number of results to return |

### Fetch conversation by ID
`GET https://zieapi.vercel.app/v1/communication:sakari/conversations-fetch` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| conversationId | string | yes | ID of template to return |

### Closes a conversation
`POST https://zieapi.vercel.app/v1/communication:sakari/conversations-close` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| conversationId | string | yes | ID of conversation |

### Fetch messages
`GET https://zieapi.vercel.app/v1/communication:sakari/messages-fetch-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| offset | integer | no | Results to skip when paginating through a result set |
| limit | integer | no | Maximum number of results to return |
| contactId | string | no | ID of contact |
| conversationId | string | no | ID of conversation |

### Send Messages
`POST https://zieapi.vercel.app/v1/communication:sakari/messages-send` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| body | object | no | JSON request body |

### Fetch message by id
`GET https://zieapi.vercel.app/v1/communication:sakari/messages-fetch` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| messageId | string | yes | ID of message to return |

### Fetch templates
`GET https://zieapi.vercel.app/v1/communication:sakari/templates-fetch-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| offset | integer | no | Results to skip when paginating through a result set |
| limit | integer | no | Maximum number of results to return |
| name | string | no | Filter by name or part of |

### Create template
`POST https://zieapi.vercel.app/v1/communication:sakari/templates-create` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| body | object | no | JSON request body |

### Fetch template by ID
`GET https://zieapi.vercel.app/v1/communication:sakari/templates-fetch` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| templateId | string | yes | ID of template to return |

### Updates a template
`POST https://zieapi.vercel.app/v1/communication:sakari/templates-update` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| templateId | string | yes | ID of template |

### Deletes a template
`POST https://zieapi.vercel.app/v1/communication:sakari/templates-remove` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| templateId | string | yes | Template id to delete |

### Fetch active webhooks
`GET https://zieapi.vercel.app/v1/communication:sakari/webhooks-fetch-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |

### Subscribe to message events
`POST https://zieapi.vercel.app/v1/communication:sakari/webhooks-subscribe` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| body | object | yes | JSON request body |

### Unsubscribe to message events
`POST https://zieapi.vercel.app/v1/communication:sakari/webhooks-unsubscribe` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accountId | string | yes | Account to apply operations to |
| url | string | yes | Account to apply operations to |

### Share file - use to host a file and generate a short link to be used directly in a message or as a link to…
`POST https://zieapi.vercel.app/v1/communication:sakari/tools-share-file` (byok)

## Example
```
curl "https://zieapi.vercel.app/v1/communication:sakari/auth-token" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the Sakari API?
Create a free Apizie key, then send POST https://zieapi.vercel.app/v1/communication:sakari/auth-token with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the Sakari API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. Sakari itself also needs your own key from sakari.io.

### Can AI agents use the Sakari API?
Yes. Add the Apizie MCP server (https://zieapi.vercel.app/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key communication:sakari.

### What is the status of the Sakari API?
Needs your own provider key (bring your own key)
