Update a product
Renames a product or changes its slug.
Its type and billing period cannot change.
Guide: Products and perks
A project secret key: vh_sk_... for production, vh_sk_test_... for test. Keep it on your servers.
In: header
Path parameters
The project's id, proj_.... A secret key works only in the project it belongs to.
The product's id, prod_....
Request body
application/json
TypeScript definitions
Use the request body type in TypeScript.
The new name.
The new slug, unique in the project. Anything that names the product by its old slug stops finding it.
Examples
curl -X PATCH "https://api.voidhash.com/api/v1/projects/proj_tz4a98xxat96iws9zmbrgj3a/products/prod_x8k2m5q9v3n7c1z4w6e0r2t5" \ -H "Authorization: Bearer vh_sk_..." \ -H "Content-Type: application/json" \ -d '{ "name": "Pro (monthly)" }'{ "id": "prod_x8k2m5q9v3n7c1z4w6e0r2t5", "projectId": "proj_tz4a98xxat96iws9zmbrgj3a", "name": "Pro (monthly)", "slug": "pro_monthly", "type": "subscription", "billingPeriod": "monthly"}{ "error": { "type": "invalid_request", "code": "invalid_body", "message": "The request body is invalid: Expected object" }}{ "error": { "type": "unauthenticated", "code": "invalid_api_key", "message": "This secret key is not valid." }}{ "error": { "type": "permission_denied", "code": "permission_denied", "message": "Insufficient permissions." }}{ "error": { "type": "not_found", "code": "project_not_found", "message": "There is no project proj_tz4a98xxat96iws9zmbrgj3a, or this credential cannot use it.", "param": "projectId" }}{ "error": { "type": "conflict", "code": "product_slug_taken", "message": "Another product in this project already uses the slug \"pro-monthly\".", "param": "slug" }}{ "error": { "type": "internal", "code": "internal_error", "message": "Something went wrong on our side. Try again, and contact support with the Request-Id header if it keeps failing." }}Response body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
Errors
| Status | type | code | When |
|---|---|---|---|
| 409 | conflict | product_slug_taken | When another product in the project uses the slug. |
It can also fail with the errors every operation shares, such as unauthenticated; see Errors.
More in Products
- List products
GET - Create a product
POST - Retrieve a product
GET - Delete a product
DELETE - List a product's perks
GET - Add a perk to a product
PUT - Remove a perk from a product
DELETE
Something wrong or missing on this page? Tell us by email or on Discord.