{
  "@context": {
    "@vocab": "https://attrove.com/schema#",
    "schema": "https://schema.org/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "dcterms": "http://purl.org/dc/terms/",
    "attrove": "https://attrove.com/schema#",
    "ApiError": "attrove:ApiError",
    "code": {
      "@id": "attrove:code",
      "@type": "xsd:string"
    },
    "message": {
      "@id": "attrove:message",
      "@type": "xsd:string"
    },
    "details": {
      "@id": "attrove:details"
    },
    "ErrorResponse": "attrove:ErrorResponse",
    "success": {
      "@id": "attrove:success",
      "@type": "xsd:boolean"
    },
    "error": {
      "@id": "attrove:error"
    },
    "PaginationInfo": "attrove:PaginationInfo",
    "limit": {
      "@id": "attrove:limit",
      "@type": "xsd:decimal"
    },
    "offset": {
      "@id": "attrove:offset",
      "@type": "xsd:decimal"
    },
    "has_more": {
      "@id": "attrove:has_more",
      "@type": "xsd:boolean"
    },
    "total_count": {
      "@id": "attrove:total_count",
      "@type": "xsd:decimal"
    }
  },
  "@type": "schema:Dataset",
  "schema:name": "Attrove API JSON-LD context",
  "schema:description": "A JSON-LD @context for the objects Attrove's own API contract declares: one class per component schema, one property per declared field, typed from the contract. Derived by script (derive-json-ld.py, 2026-11-02) from openapi/attrove-com-openapi.json.",
  "dcterms:created": "2026-11-02",
  "dcterms:source": [
    "openapi/attrove-com-openapi.json"
  ]
}