Skip to content

Add or update a pet's birthday

POST /customers/{customer_id}/pets
Scopecustomers:write
Customer session tokenAccepted with the write scope, for the token’s own customer
Rate limit classwrite (limits)
Idempotency keyRequired (idempotency)
MCP toolcharm_save_customer_pet

For the pet birthday rule, with its limits and once-a-year change lock. Refusals carry details.reason like the children endpoint.

NameInTypeDescription
customer_idpathstringShopify customer GID (percent-encoded, e.g. gid%3A%2F%2Fshopify%2FCustomer%2F123) or the numeric customer id.
FieldTypeDescription
idstringExisting entry to rename or re-date; omit to add one. (optional)
namestring(optional)
birthdaystringYYYY-MM-DD. (optional)
speciesstring(optional)
localestring(optional)

Returns PetsResult.

FieldTypeDescription
changedboolean
petsarray of Subject
{
"changed": true,
"pets": [
{
"id": "id",
"name": "Gold",
"birthday": "birthday",
"species": "species",
"updated_at": "2026-10-01T09:30:00.000Z"
}
]
}
Terminal window
curl -X POST "https://charm.appfleece.app/api/v1/customers/7712345/pets" \
-H "Authorization: Bearer chrm_live_..." \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{}'

unauthorized · invalid_token · token_expired · insufficient_scope · access_required · not_found · validation_error · rate_limited · idempotency_conflict

Every error body carries code, message, request_id and a doc_url pointing at the matching entry in the error catalog.