| Parameter | Type | Required | Description |
|---|---|---|---|
| string | required | Company admin email address | |
| password | string | required | Account password (min 8 chars) |
| Parameter | Type | Required | Description |
|---|---|---|---|
| refreshToken | string | required | Refresh token received at login |
Authorization: Bearer YOUR_TOKENNo request body. Returns the current API key and its creation date.
Authorization: Bearer YOUR_TOKENNo request body. Invalidates the previous key and returns a new one.
| Parameter | Type | Required | Description |
|---|---|---|---|
| company.name | string | required | Company display name |
| company.phone | string | required | Company phone number |
| company.address | string | optional | Street address |
| company.city | string | optional | City |
| company.country | string | optional | Country code (e.g. PK, US) |
| owner.firstName | string | required | Owner first name |
| owner.lastName | string | required | Owner last name |
| owner.email | string | required | Owner email address |
| owner.password | string | required | Password (min 8 chars, 1 uppercase, 1 number) |
| owner.phone | string | optional | Owner phone number |
| Parameter | Type | Required | Description |
|---|---|---|---|
| token | string | required | Email verification token from signup email |
| Parameter | Type | Required | Description |
|---|---|---|---|
| string | required | Email address to send reset link to |
| Parameter | Type | Required | Description |
|---|---|---|---|
| token | string | required | Password reset token from email |
| password | string | required | New password (min 8 chars) |
Authorization: Bearer YOUR_TOKENNo request body. Returns authenticated user's profile data.
Authorization: Bearer YOUR_TOKEN| Parameter | Type | Required | Description |
|---|---|---|---|
| firstName | string | optional | User's first name |
| lastName | string | optional | User's last name |
| phone | string | optional | User's phone number |
Authorization: Bearer YOUR_TOKENNo request body. Returns all users in the authenticated company.
Authorization: Bearer YOUR_TOKEN| Parameter | Type | Required | Description |
|---|---|---|---|
| firstName | string | required | Invitee's first name |
| lastName | string | required | Invitee's last name |
| string | required | Invitee's email address | |
| phone | string | optional | Invitee's phone number |
| role | string | required | admin or member |
Authorization: Bearer YOUR_TOKEN| Parameter | Type | Required | Description |
|---|---|---|---|
| firstName | string | optional | Updated first name |
| lastName | string | optional | Updated last name |
| role | string | optional | admin or member |
Authorization: Bearer YOUR_TOKENNo request body. Removes the specified user from the company.
Authorization: Bearer YOUR_TOKENNo request body. Returns the company profile for the authenticated user's organization.
Authorization: Bearer YOUR_TOKEN| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | optional | Company display name |
| phone | string | optional | Company phone number |
| address | string | optional | Street address |
| city | string | optional | City |
| state | string | optional | State / province |
| country | string | optional | Country code |
Authorization: Bearer YOUR_TOKENNo request body. Returns summary cards: total messages sent, active devices, credits used, and recent activity.
Authorization: Bearer YOUR_TOKEN| Parameter | Type | Required | Description |
|---|---|---|---|
| users | string | optional | Comma-separated user IDs to filter by |
| devices | string | optional | Comma-separated device fingerprints to filter by |
Authorization: Bearer YOUR_TOKENNo request body. Returns a minimal list of devices (id, name) for use in analytics filter dropdowns.
Authorization: Bearer YOUR_TOKENNo request body. Returns all Android devices paired to the company account, including online status and SIM details.
Authorization: Bearer YOUR_TOKENQueues an SMS from a paired Android device. Legacy alias POST /zapier/send-sms is identical (kept for existing Zapier / Pabbly / Make zaps).
| Parameter | Type | Required | Description |
|---|---|---|---|
| device_fingerprint | string | required | Fingerprint of the paired Android device to send from (see GET /device/list) |
| phone | string | required | Recipient phone number |
| message | string | required | SMS message body |
| sim_slot | string | optional | SIM to send from: SIM1 or SIM2. Defaults to SIM1; must match the device's selected SIM |
Authorization: Bearer YOUR_TOKENReturns the newest 50 inbound messages. Use GET /zapier/latest-sms for just the single most recent, or register a push webhook (see Save Webhook Config) to have inbound SMS POSTed to your URL.
| Parameter | Type | Required | Description |
|---|---|---|---|
| device_fingerprint | string | optional | Filter to one device |
| sim_slot | string | optional | Filter to SIM1 / SIM2 |
Authorization: Bearer YOUR_TOKENReturns 202 queued. The anti-ban governor paces sends and may return 429 when a number is over its cap.
| Parameter | Type | Required | Description |
|---|---|---|---|
| number_id | string | required | Connected WhatsApp number (see GET /whatsapp/numbers) |
| to | string | required | Recipient phone number |
| content | string | required* | Message text (*required for text messages) |
| type | string | optional | Defaults text |
| media_url | string | optional | For media messages |
Authorization: Bearer YOUR_TOKENReturns 202 queued. Same governor pacing (429 when capped).
| Parameter | Type | Required | Description |
|---|---|---|---|
| handle_id | string | required | iMessage handle / agent (see GET /imessage/handles) |
| to | string | required | Recipient phone number or email |
| content | string | required | Message text |
Authorization: Bearer YOUR_TOKENNo request body. Returns your configured inbound webhook URLs plus the signingSecret (whsec_…) used to verify deliveries. One webhook config covers SMS, WhatsApp, and iMessage — scope each entry with channels / devices / wa_numbers / im_handles.
Every inbound delivery is signed: X-Pairfon-Timestamp + X-Pairfon-Signature: sha256=<hex> where hex = HMAC-SHA256(signingSecret, `${timestamp}.${rawBody}`). Recompute over timestamp + "." + rawBody, constant-time compare, and reject stale timestamps (replay protection).
Authorization: Bearer YOUR_TOKEN| Parameter | Type | Required | Description |
|---|---|---|---|
| webhooks | array | required | Array of webhook objects |
| webhooks[].url | string | required | HTTPS endpoint to POST inbound SMS payloads to |
| webhooks[].devices | array | optional | Device fingerprints to listen on. Empty = all devices |
| webhooks[].sims | array | optional | SIM slots to listen on (0, 1). Empty = all SIMs |
No request body. Returns all publicly available subscription plans with pricing and feature details.
Authorization: Bearer YOUR_TOKEN| Parameter | Type | Required | Description |
|---|---|---|---|
| plan_id | string | required | Plan identifier from the /plans endpoint |
| skip_trial | boolean | optional | Set true to skip the free trial period. Default: false |
Authorization: Bearer YOUR_TOKENNo request body. Returns a Stripe billing portal URL for managing subscriptions, payment methods, and invoices.
Authorization: Bearer YOUR_TOKENNo request body. Returns current plan, billing status, trial end date, and usage limits.