Update Pricing
Update an existing pricing rule.
Endpointโ
PATCH /v1/experiences/{id}/pricing/{pricingId}
Authenticationโ
Requires an API key with the experiences:write scope.
Path Parametersโ
| Parameter | Type | Description |
|---|---|---|
id | integer | Experience ID |
pricingId | integer | Pricing rule ID |
Request Bodyโ
All fields are optional. Only include fields you want to update.
| Field | Type | Required | Description |
|---|---|---|---|
pricing_type | string | No | participant or group |
price | number | No | New price amount |
rate_category | integer | No | Rate category ID |
season_id | integer | No | Season ID (only if experience uses seasonal pricing) |
booking_option_id | integer | No | Move this price onto another way of booking. Send null to hand it back to the experience's first option. Leave it out and the row stays where it is |
max_participants | integer | No | Max participants (only accepted for group pricing) |
price_per_participant | number | No | Optional per-participant charge added on top of the group price (only accepted for group pricing) |
per_participant_included | integer | No | Participants the base covers before the per-participant charge starts (only accepted for group pricing) |
Example Requestโ
curl -X PATCH "https://app.equipdash.com/api/v1/experiences/1/pricing/4" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"price": 50.00
}'
Responseโ
Success (200 OK)โ
{
"data": {
"id": 4,
"booking_option_id": null,
"season": null,
"pricing_type": "participant",
"rate_category": {
"id": 1,
"label": "Adult",
"description": "Ages 13+"
},
"price": 50.00,
"price_per_participant": null,
"per_participant_included": null,
"max_participants": null,
"created_at": "2026-02-01T10:00:00+00:00",
"updated_at": "2026-02-01T12:00:00+00:00"
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-01T12:00:00+00:00"
}
}
Errorsโ
| Status | Code | Description |
|---|---|---|
| 400 | validation_error | Invalid request body |
| 401 | authentication_required | No API key provided |
| 403 | insufficient_scope | API key lacks experiences:write scope |
| 404 | not_found | Experience or pricing rule not found |
| 404 | resource_not_found | booking_option_id does not belong to this experience |
Notesโ
max_participantsis only accepted forgrouppricing type- If you change
pricing_typefromgrouptoparticipant,max_participants,price_per_participantandper_participant_includedwill be automatically cleared - Moving a row onto another way of booking leaves the option it came from with one price fewer. Check nothing you still sell is left unpriced
- Updating pricing does not affect existing bookings
- Price changes apply to new bookings only
- Season validation applies: seasonal experiences require
season_id, year-round experiences cannot haveseason_id