Jigglewire is a cloud business phone system. The API exposes your company's call log, extensions and messages, and can place calls.
Base URL: https://jigglewire.tone.fyi
Authentication
Create an API key in the Jigglewire console under API keys. Keys carry scopes; a request that needs a scope the key doesn't have gets 403 with insufficient_scope.
Scopes
ReadCallLog | Read the company call log |
ReadAccounts | Read account and extension info |
ReadMessages | Read messages |
ReadPresence | Read presence |
RingOut | Place calls (RingOut) |
WebhookSubscriptions | Create webhook subscriptions |
EditAccounts | Edit account settings |
Rate limits
Each account can make 10 requests per 60 seconds. Over the limit, requests get 429 with a Retry-After header. Responses carry X-Rate-Limit-Limit, X-Rate-Limit-Remaining and X-Rate-Limit-Window.
Pagination
List endpoints return records, paging and navigation. When more results exist, navigation.nextPage.uri holds the URL of the next page.
Times
Timestamps are ISO 8601 with a UTC offset.
Errors
Errors return a JSON body: {"error": {"code": "...", "message": "..."}}.
Endpoints
GET /restapi/v1.0/account/~/call-log
Company call log, newest first.
Scope: ReadCallLog
dateFrom, dateTo | Time range (ISO 8601). Default: the last 24 hours. |
page, perPage | Page number and size (max 1000). Follow navigation.nextPage.uri. |
This endpoint is in the Heavy usage group: 10 requests per 60 seconds.
POST /restapi/v1.0/account/~/extension/~/ring-out
Place a call: ring the caller's own phone, then connect to the number in to.
Scope: RingOut
Body: JSON
to | Number to call, E.164 (required). |
from | Your extension's phone number. |
GET /restapi/v1.0/account/~/extension
Extensions (users and queues) on the account.
Scope: ReadAccounts
Webhooks
Webhooks are signed following the Standard Webhooks specification (webhook-id, webhook-timestamp, webhook-signature). Deliveries are retried on failure, and may occasionally arrive more than once.