Skip to main content
POST

Authorizations

Authorization
string
header
required

Opaque bearer token created on your paired Android phone. The format is rfk_live_ followed by 32 URL-safe alphanumeric characters (≥160 bits of entropy). Test tokens use the rfk_test_ prefix.

Body

application/json
question
string
required

The question shown on the phone. 1–1000 characters.

Example:

"Deploy to production?"

choices
string[]

Answer labels rendered as buttons. 2–4 entries. Default ["Approve","Deny"].

Required array length: 2 - 4 elements
Example:
expires_in
integer

Seconds until the ask expires. 60–86400, default 600.

Required range: 60 <= x <= 86400
Example:

600

idempotency_key
string

Client-supplied dedup key; server derives one from content hashes when absent.

Required string length: 1 - 128

Response

Idempotent duplicate — an existing interaction with the same idempotency key, still within its idempotency window (until its expires_at), was returned instead of creating a new one. No new prompt was sent to the phone. Can surface an already-answered interaction's id if the duplicate arrives after the phone answered but before expiry.

id
string
required

Interaction id (int_ prefix). Poll it via GET /v1/interactions/{id}.

Example:

"int_3f6e2a7c9b1d4f8e8a5b6c1d2e3f4a5b"

expires_at
integer
required

Unix epoch seconds when the interaction expires without an answer.

Example:

1754800000