whatsync-app Account API
The Account API from whatsync-app — 2 operation(s) for account.
The Account API from whatsync-app — 2 operation(s) for account.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/whatsync-app:whatsync-app-account-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: WhatSync Account API
version: '2026-10-01'
description: 'Use WhatsApp from Claude, ChatGPT, n8n, Make, Zapier or your own code: read, search and send WhatsApp messages, manage groups, Business templates, campaigns and forms, and receive signed webhooks. WhatsApp tools and signed webhooks with an account API key. API keys and webhooks are part of the Max plan and up (https://whatsync.app/pricing); other accounts get 403 plan_required. Personal WhatsApp numbers can send 50 messages a day through the API (429 daily_limit_reached); the official Business API has no WhatSync daily limit. Docs: https://whatsync.app/docs/api/quickstart The Business template routes under /api/send-template use a workspace service API key instead and are used by Attio workflows.'
contact:
name: WhatSync support
email: hello@whatsync.app
url: https://whatsync.app/contact
servers:
- url: https://whatsync.app
security:
- bearerKey: []
- headerKey: []
tags:
- name: Account
paths:
/api/v1/me:
get:
summary: Check account, numbers and granted permissions
responses:
'200':
description: Successful JSON result. Optional provider fields may be absent or null.
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
type: object
properties:
connection_id:
type: string
providers:
type: array
items:
type: object
properties:
channel:
type: string
connected:
type: boolean
status:
type:
- string
- 'null'
phone_number:
type:
- string
- 'null'
display_name:
type:
- string
- 'null'
sending_enabled:
type: boolean
connect_url:
type: string
capabilities:
type: array
items:
type: string
required: []
additionalProperties: true
permissions:
type: array
items:
type: string
routing:
type: string
account_id:
type: string
key_name:
type:
- string
- 'null'
required:
- account_id
- connection_id
- providers
- key_name
- permissions
- routing
additionalProperties: true
example:
connection_id: conn_example
account_id: conn_example
key_name: Read-only reporting
permissions:
- whatsapp.messages:read
providers:
- channel: qr
connected: true
status: connected
phone_number: '15550000002'
display_name: Sample account
connect_url: https://whatsync.app/dashboard
capabilities:
- one_to_one_text
- groups
- selected_group_sync
bulk_sending: false
routing: Choose the channel explicitly when both accounts are connected.
'400':
description: 'invalid_input: invalid JSON, fields or request parameters.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'invalid_api_key: key missing, invalid, revoked, or account access unavailable.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'insufficient_permission or plan_required: check granted permissions and Business plan access.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: 'unknown_tool or not_found: tool or account-owned resource not found.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'405':
description: 'method_not_allowed: use the documented HTTP method.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: 'outcome_unknown: inspect error.intent_id with get_send_status or error.operation_id with get_operation. Never retry an uncertain write with a new key. Also used for whatsapp_not_connected and resource conflicts.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'413':
description: 'invalid_input: JSON body exceeds the 600,000-byte limit.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'415':
description: 'invalid_input: use Content-Type: application/json.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: 'tool_error: tool or provider rejected the request; inspect the error before retrying.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: 'rate_limited or daily_limit_reached: wait for Retry-After; retain the same inputs and idempotency key.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
Retry-After:
description: Seconds until retry is permitted.
schema:
type: integer
minimum: 1
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'503':
description: 'tool_error: request failed. Quote X-Request-Id to support; do not blindly retry writes.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
operationId: getApiAccount
tags:
- Account
/api/v1/tools:
get:
summary: List permitted tools and input schemas
responses:
'200':
description: Successful JSON result. Optional provider fields may be absent or null.
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
type: object
properties:
tools:
type: array
items:
type: object
properties:
name:
type: string
title:
type: string
description:
type: string
annotations:
type: object
additionalProperties: true
inputSchema:
type: object
additionalProperties: true
required:
- name
- title
- description
- annotations
- inputSchema
additionalProperties: true
required:
- tools
additionalProperties: true
'400':
description: 'invalid_input: invalid JSON, fields or request parameters.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'invalid_api_key: key missing, invalid, revoked, or account access unavailable.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'insufficient_permission or plan_required: check granted permissions and Business plan access.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: 'unknown_tool or not_found: tool or account-owned resource not found.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'405':
description: 'method_not_allowed: use the documented HTTP method.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: 'outcome_unknown: inspect error.intent_id with get_send_status or error.operation_id with get_operation. Never retry an uncertain write with a new key. Also used for whatsapp_not_connected and resource conflicts.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'413':
description: 'invalid_input: JSON body exceeds the 600,000-byte limit.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'415':
description: 'invalid_input: use Content-Type: application/json.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: 'tool_error: tool or provider rejected the request; inspect the error before retrying.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: 'rate_limited or daily_limit_reached: wait for Retry-After; retain the same inputs and idempotency key.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
Retry-After:
description: Seconds until retry is permitted.
schema:
type: integer
minimum: 1
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'503':
description: 'tool_error: request failed. Quote X-Request-Id to support; do not blindly retry writes.'
headers:
X-Request-Id:
description: Quote this ID when contacting support.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
operationId: listApiTools
tags:
- Account
description: Returns only tools granted to this key. Tool calls return direct JSON, not MCP content wrappers.
components:
schemas:
Error:
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
retry_after:
type: integer
upgrade_url:
type: string
operation_id:
type: string
intent_id:
type: string
required:
- code
- message
additionalProperties: true
required:
- error
additionalProperties: true
securitySchemes:
bearerKey:
type: http
scheme: bearer
bearerFormat: wsk_live_
headerKey:
type: apiKey
in: header
name: X-API-Key
ServiceApiKey:
type: apiKey
in: header
name: x-service-api-key
description: Workspace service API key shown in WhatSync. Only for /api/send-template.
ServiceBearerAuth:
type: http
scheme: bearer
bearerFormat: WhatSync service API key
description: The workspace service API key as a Bearer token. Only for /api/send-template.