Accept the Terms of Service
Records that the signed-in person accepts version 1.1 of the Terms of Service, with the request's IP address and user agent as evidence, and returns the acceptance.
Accepting again keeps the first record. Only the person signed in to the dashboard can accept, so no app can agree for them.
Guide: Your account
A project secret key: vh_sk_... for production, vh_sk_test_... for test. Keep it on your servers.
In: header
Request body
application/json
TypeScript definitions
Use the request body type in TypeScript.
Where the person accepted: sign_up (the sign-up form) or in_app (the dashboard's prompt).
Value in
- "sign_up"
- "in_app"
The version the person read and accepts; it must be currentTermsVersion.
Examples
curl -X PUT "https://api.voidhash.com/api/v1/me/terms-acceptance" \ -H "Authorization: Bearer vh_sk_..." \ -H "Content-Type: application/json" \ -d '{ "source": "in_app", "termsVersion": "1.1" }'{ "currentTermsVersion": "1.1", "acceptedTermsVersion": "1.1", "acceptedAt": "2026-09-14T08:21:37.000Z", "hasAcceptedCurrentTerms": true}{ "error": { "type": "invalid_request", "code": "terms_version_not_current", "message": "Only the current Terms of Service, version 1.1, can be accepted.", "param": "termsVersion" }}{ "error": { "type": "unauthenticated", "code": "invalid_api_key", "message": "This secret key is not valid." }}{ "error": { "type": "permission_denied", "code": "dashboard_session_required", "message": "Only you, signed in to Voidhash, can accept the Terms of Service; an app or key acting for you cannot." }}{ "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
Errors
| Status | type | code | When |
|---|---|---|---|
| 400 | invalid_request | terms_version_not_current | For any other termsVersion. |
| 403 | permission_denied | dashboard_session_required | For a CLI key, a connected app or a secret key. |
It can also fail with the errors every operation shares, such as unauthenticated; see Errors.
More in Terms of Service
Something wrong or missing on this page? Tell us by email or on Discord.