AccessAPI key with followups:writeAvailable toDirect and platform keys
Parameters
- Header
Authorization
- stringRequired
Bearer API key, for example Bearer nps_test_….
- Header
Content-Type
- application/jsonRequired
Required for the JSON request body.
- Header
Idempotency-Key
- stringOptional
Strongly recommended. Reuse it only when retrying the identical request.
- Body
externalAppointmentId
- stringRequired
Your stable identifier for the completed appointment.
- Body
customer.email
- stringRequired
The customer address used for the follow-up.
- Body
completedAt
- ISO-8601 datetimeRequired
When the appointment finished.
- Body
externalAccountId
- stringOptional
Required for a platform key; omit for a direct key.
- Body
customer.externalId / customer.name
- stringOptional
Your customer reference and a customer-facing name.
- Body
metadata
- objectOptional
Extra appointment context. Top-level string, number, and boolean values can later be used as exact-match report filters.
Example request
curl "$API_BASE_URL/v1/follow-ups" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: appointment-booking_83921" \
-d '{
"externalAppointmentId": "booking_83921",
"customer": { "externalId": "customer_281", "name": "Jane Smith", "email": "jane@example.com" },
"completedAt": "2026-08-21T02:30:00Z",
"metadata": { "locationId": "auckland-central", "service": "colour" }
}'
201 Created
{
"id": "fup_7Bj3Kd92",
"externalAppointmentId": "booking_83921",
"metadata": { "locationId": "auckland-central", "service": "colour" },
"status": "scheduled",
"livemode": false,
"createdAt": "2026-08-21T02:30:01.000Z",
"updatedAt": "2026-08-21T02:30:01.000Z"
}
- ✓A test key records the workflow but never emails the supplied customer.
- ✓The same idempotency key and identical request returns the original result; reusing a key with different content returns 409.