API reference / Admin

put/v2/projects/{id}

Reconfigure a tenant

Operation
updateProject
Authentication
API key

Internal. Requires `projects:write`. Only the fields present are written, so a plan change does not silently reset a negotiated rate limit or revenue share.

Request

Parameters

idpathrequiredstring

Body

namestring
planstring

Changing the plan moves the rate limit and quota with it, unless either is overridden in the same request.

one of: developerstartergrowthenterprise

rate_limit_per_minuteinteger
monthly_check_quotaintegernull
data_residencystringnull

Set when a tenant’s data may not leave a jurisdiction. Ethiopia requires local storage of locally-collected personal data (Proclamation 1321/2024, Art. 22(1)). Null means no requirement is recorded. **Recorded only** — nothing enforces it yet.

statusstring

one of: activesuspended

Responses

200Updated.
projectTenantrequired
400The request body or query failed validation.
errorobjectrequired
401No key, an unknown key, a revoked key, or a key whose tenant is not active. All four return an identical body on purpose: distinguishing them would let a caller discover which partners we have.
errorobjectrequired
403`projects:write` is required. No partner key is ever issued this scope.
errorobjectrequired
404Not found, or not yours. A resource belonging to another tenant answers 404 rather than 403, because 403 would confirm the record exists.
errorobjectrequired

Example

curl
curl -X PUT https://api.haavisa.com/v2/projects/<id> \
  -H "Authorization: Bearer $HAAVISA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

More in Admin

Something unclear? The eligibility guide explains the model behind the answers; the errors guide covers the envelope.