Skip to main content
POST

Start typing

Method: POST | Endpoint: /v1/conversations/{conversation_id}/typing Description: Show the contact the typing bubble (the three animated dots) in an iMessage conversation, for example while your AI writes a reply. It lasts 10 seconds; call again every 5 seconds to keep it going. Sending a message clears it. See Typing while your AI thinks. Authentication: API key in the Authorization header: Authorization: Bearer ib_pk_<64 hex>. Create keys in the dashboard under Settings → API access. Rate limit: 300 conversation actions per 60 seconds per account, shared with tapbacks and mark read. Over that, 429 rate_limited with a Retry-After header; see Rate limits. A refresh every 5 seconds is 12 calls a minute per conversation.

Request Body

None. The path parameter conversation_id is the conversation’s ID (a UUID): conversation_id on every message and on message.inbound.

How it behaves

  • It lasts 10 seconds. expires_at says when it stops unless you call again. The dots appear on the phone within about a second.
  • Keep it going by calling every 5 seconds. Calls less than 3 seconds apart are answered started without doing anything new, and keep the earlier expires_at.
  • Sending ends it. When you send a message, it replaces the dots straight away. If you stop calling instead, or call Stop typing, iBubbl stops typing, but the dots can stay on the contact’s iPhone for up to about a minute.
  • iMessage, one-to-one only. Where typing can’t be shown, the call answers 200 with status: "ignored" and does nothing:
  • Blocked and opted-out contacts are refused. Typing is a signal to the contact, so a blocked contact gets 422 contact_blocked and an opted-out one 422 contact_opted_out.
  • No webhook fires for typing.

Responses

200 OK
401 Unauthorized
Other message values: Authorization Bearer token required, API key required (use Authorization: Bearer ib_pk_…), Invalid API key format, Customer account not found. 403 Forbidden
Your iBubbl account is suspended or cancelled (message is then Account is cancelled). Every API-key endpoint returns this. 404 Not Found
Also returned for a malformed ID and a conversation that belongs to another account. 422 Unprocessable Entity
contact_blocked or contact_opted_out, in a one-to-one conversation. Nothing was shown. Group conversations are answered ignored instead. 429 Too Many Requests
Wait the Retry-After header’s seconds, then call again. 503 Service Unavailable
iBubbl couldn’t confirm the contact hasn’t opted out, so it showed nothing. Retry after a short backoff.

Authorizations

Authorization
string
header
required

Bearer API key. Format: Authorization: Bearer ib_pk_<64 hex> (70 characters). Generate keys from Dashboard → Settings → API Access.

Path Parameters

conversation_id
string
required

Response

Typing started (or ignored).

conversation_id
string
required

The conversation.

typing
boolean
required

Whether the typing bubble is on after this call.

status
enum<string>
required

started (or kept going), stopped, or ignored: typing can't be shown here and nothing was done; see ignored_reason.

Available options:
started,
stopped,
ignored
ignored_reason
enum<string> | null
required

group (not available in group conversations), not_imessage (the contact is on SMS or RCS), no_chat (the contact hasn't messaged this line yet). Null otherwise.

Available options:
group,
not_imessage,
no_chat
expires_at
string | null
required

When the bubble stops unless you call again (UTC), 10 seconds after the call. Null unless started.