Get a project's current terms of service
Returns the project's current terms document, or 404 when the project has none (a project without terms requires no acceptance). Public: frontends render the document on signup and notice pages without authenticating.
/projects/{project_id}/terms-of-serviceReturns the project's current terms document, or 404 when the project has none (a project without terms requires no acceptance). Public: frontends render the document on signup and notice pages without authenticating.
Path Parameters
Project ID.
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
curl -X GET "https://example.com/projects/497f6eca-6276-4993-bfeb-53cbbbba6f08/terms-of-service"{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
"version": 1,
"content": "string",
"effective_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}{
"detail": "string",
"instance": "../dictionary",
"errors": [
{
"field": "string",
"message": "string"
}
],
"type": "http://example.com",
"status": 404,
"title": "Not Found"
}{
"detail": "string",
"instance": "../dictionary",
"errors": [
{
"field": "string",
"message": "string"
}
],
"type": "http://example.com",
"status": 500,
"title": "Internal Server Error"
}{
"detail": "string",
"instance": "../dictionary",
"errors": [
{
"field": "string",
"message": "string"
}
],
"type": "http://example.com",
"status": 503,
"title": "Identity Unavailable"
}Upsert a project's email template override PUT
Saves the project's override for one kind. The body is a Go template rendered with the same variables as the built-in defaults: `ActionURL`, `ProjectName`, `Expiry`, `ProjectDomain`, `Email`. The body must reference `{{.ActionURL}}` at least once (the actionable link always comes from IdentityX) and must render; violations are rejected with 422-style validation errors. The authenticated actor must be an admin or owner of the project.
Introduce a project's terms of service (v1) POST
Creates the project's first terms document as version 1. This is the migration from "no terms" (v0): every human user of the project is emailed the LGPD art. 9 §6 change notice — the new content, the effective date (30 days out), the continued-use clause, and the account-termination path for those who disagree. Creating when terms already exist is a 409 — use `PUT` to update. The authenticated actor must be an admin or owner of the project.