pub struct TermsOfService {
pub deadline: Option<DateTime<Utc>>,
pub languages: Vec<String>,
pub url: Url,
pub version_id: TosVersionId,
}Expand description
Metadata for one Terms of Service document a Customer may need to
accept. Each entry represents one logical document (identified by
versionId) that may be published in multiple languages —
languages lists the BCP 47 language tags the document is available
to view and accept in. An optional deadline records the end of a grace
period: a future deadline is non-blocking due, an elapsed deadline is
past_due, and no deadline means acceptance is required immediately with
status due. url is the canonical, language-agnostic document URL;
partners append ?lang=<tag> (where <tag> is one of languages) to
retrieve a specific translation, and omit the parameter to let the
documentation site choose a default. This API does not serve Terms of
Service body content; this schema describes metadata only.
JSON schema
{
"description": "Metadata for one Terms of Service document a Customer may need to\naccept. Each entry represents one logical document (identified by\n`versionId`) that may be published in multiple languages —\n`languages` lists the BCP 47 language tags the document is available\nto view and accept in. An optional `deadline` records the end of a grace\nperiod: a future deadline is non-blocking `due`, an elapsed deadline is\n`past_due`, and no deadline means acceptance is required immediately with\nstatus `due`. `url` is the canonical, language-agnostic document URL;\npartners append `?lang=<tag>` (where `<tag>` is one of `languages`) to\nretrieve a specific translation, and omit the parameter to let the\ndocumentation site choose a default. This API does not serve Terms of\nService body content; this schema describes metadata only.\n",
"examples": [
{
"languages": [
"en"
],
"url": "https://www.coinbase.com/legal/user-agreements-third-party-provider",
"versionId": "us_individual_2026-05-29"
}
],
"type": "object",
"required": [
"languages",
"url",
"versionId"
],
"properties": {
"deadline": {
"description": "Optional deadline by which the Customer must accept this Terms of\nService version, in ISO 8601 / RFC 3339 format. A future deadline is\nnon-blocking grace with requirement status `due`; an elapsed deadline\nproduces `past_due`. When omitted, acceptance is required immediately\nand the requirement status remains `due`.\n",
"examples": [
"2026-06-30T23:59:59Z"
],
"type": "string",
"format": "date-time"
},
"languages": {
"description": "BCP 47 language tags this Terms of Service document can be viewed\nand accepted in. The list is non-empty (every published document\ncarries at least one language). Append the chosen tag to `url` as\n`?lang=<tag>` to fetch the localized document, and submit the same\ntag as `language` on the corresponding `TosAcceptance` to record\nwhich translation the Customer reviewed.\n",
"examples": [
[
"en"
]
],
"type": "array",
"items": {
"examples": [
"en"
],
"type": "string"
},
"minItems": 1
},
"url": {
"description": "Canonical, language-agnostic URL where the Terms of Service\ndocument is hosted (for example,\n`https://www.coinbase.com/legal/user-agreements-third-party-provider`).\nAppend `?lang=<tag>` (where `<tag>` is one of `languages`) to\nretrieve a specific translation; without the parameter, the\ndocumentation site renders a default translation.\n",
"examples": [
"https://www.coinbase.com/legal/user-agreements-third-party-provider"
],
"allOf": [
{
"$ref": "#/components/schemas/Url"
}
]
},
"versionId": {
"description": "Stable identifier for this Terms of Service document. Submit this\nvalue as `versionId` on a `TosAcceptance` to record acceptance.\n",
"allOf": [
{
"$ref": "#/components/schemas/TosVersionId"
}
]
}
}
}Fields§
§deadline: Option<DateTime<Utc>>Optional deadline by which the Customer must accept this Terms of
Service version, in ISO 8601 / RFC 3339 format. A future deadline is
non-blocking grace with requirement status due; an elapsed deadline
produces past_due. When omitted, acceptance is required immediately
and the requirement status remains due.
languages: Vec<String>BCP 47 language tags this Terms of Service document can be viewed
and accepted in. The list is non-empty (every published document
carries at least one language). Append the chosen tag to url as
?lang=<tag> to fetch the localized document, and submit the same
tag as language on the corresponding TosAcceptance to record
which translation the Customer reviewed.
url: UrlCanonical, language-agnostic URL where the Terms of Service
document is hosted (for example,
https://www.coinbase.com/legal/user-agreements-third-party-provider).
Append ?lang=<tag> (where <tag> is one of languages) to
retrieve a specific translation; without the parameter, the
documentation site renders a default translation.
version_id: TosVersionIdStable identifier for this Terms of Service document. Submit this
value as versionId on a TosAcceptance to record acceptance.