{
  "@context": {
    "@vocab": "https://exchangerate.dev/schema#",
    "schema": "https://schema.org/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "dcterms": "http://purl.org/dc/terms/",
    "exchangerate": "https://exchangerate.dev/schema#",
    "AccountResponse": "exchangerate:AccountResponse",
    "result": {
      "@id": "exchangerate:result",
      "@type": "xsd:string"
    },
    "email": {
      "@id": "exchangerate:email"
    },
    "org": {
      "@id": "exchangerate:org"
    },
    "key": {
      "@id": "exchangerate:key"
    },
    "keys": {
      "@id": "exchangerate:keys",
      "@container": "@list"
    },
    "usage": {
      "@id": "exchangerate:usage"
    },
    "billing": {
      "@id": "exchangerate:billing"
    },
    "ApiKeyCreatedResponse": "exchangerate:ApiKeyCreatedResponse",
    "created": {
      "@id": "exchangerate:created",
      "@type": "xsd:boolean"
    },
    "org_id": {
      "@id": "exchangerate:org_id",
      "@type": "xsd:string"
    },
    "plaintext": {
      "@id": "exchangerate:plaintext"
    },
    "BillingSummary": "exchangerate:BillingSummary",
    "state": {
      "@id": "exchangerate:state",
      "@type": "xsd:string"
    },
    "interval": {
      "@id": "exchangerate:interval"
    },
    "current_period_end": {
      "@id": "exchangerate:current_period_end"
    },
    "ends_at": {
      "@id": "exchangerate:ends_at"
    },
    "CheckoutRequest": "exchangerate:CheckoutRequest",
    "plan": {
      "@id": "exchangerate:plan",
      "@type": "xsd:string"
    },
    "CheckoutResponse": "exchangerate:CheckoutResponse",
    "action": {
      "@id": "exchangerate:action",
      "@type": "xsd:string"
    },
    "url": {
      "@id": "exchangerate:url",
      "@type": "xsd:string"
    },
    "expires_at": {
      "@id": "exchangerate:expires_at"
    },
    "ConsentRequest": "exchangerate:ConsentRequest",
    "policy_version": {
      "@id": "exchangerate:policy_version",
      "@type": "xsd:string"
    },
    "ConsentResponse": "exchangerate:ConsentResponse",
    "accepted_at": {
      "@id": "exchangerate:accepted_at",
      "@type": "xsd:string"
    },
    "ConvertBatch": "exchangerate:ConvertBatch",
    "lines": {
      "@id": "exchangerate:lines",
      "@container": "@list"
    },
    "ConvertBatchRequest": "exchangerate:ConvertBatchRequest",
    "from": {
      "@id": "exchangerate:from",
      "@type": "xsd:string"
    },
    "pairs": {
      "@id": "exchangerate:pairs",
      "@container": "@list"
    },
    "ConvertBatchResponse": "exchangerate:ConvertBatchResponse",
    "conversions": {
      "@id": "exchangerate:conversions",
      "@container": "@list"
    },
    "source": {
      "@id": "exchangerate:source",
      "@type": "@id"
    },
    "sources": {
      "@id": "exchangerate:sources"
    },
    "stale": {
      "@id": "exchangerate:stale"
    },
    "market_session": {
      "@id": "exchangerate:market_session",
      "@type": "@id"
    },
    "timestamp": {
      "@id": "exchangerate:timestamp",
      "@type": "xsd:string"
    },
    "data_updated_at": {
      "@id": "exchangerate:data_updated_at",
      "@type": "xsd:string"
    },
    "effective_at": {
      "@id": "exchangerate:effective_at"
    },
    "notice": {
      "@id": "exchangerate:notice",
      "@type": "xsd:string"
    },
    "ConvertItem": "exchangerate:ConvertItem",
    "to": {
      "@id": "exchangerate:to",
      "@type": "xsd:string"
    },
    "amount": {
      "@id": "exchangerate:amount",
      "@type": "xsd:decimal"
    },
    "rate": {
      "@id": "exchangerate:rate",
      "@type": "xsd:decimal"
    },
    "converted": {
      "@id": "exchangerate:converted",
      "@type": "xsd:decimal"
    },
    "derived": {
      "@id": "exchangerate:derived",
      "@type": "xsd:boolean"
    },
    "derivation_bps_max": {
      "@id": "exchangerate:derivation_bps_max"
    },
    "ConvertLine": "exchangerate:ConvertLine",
    "base": {
      "@id": "exchangerate:base",
      "@type": "xsd:string"
    },
    "quote": {
      "@id": "exchangerate:quote",
      "@type": "xsd:string"
    },
    "date": {
      "@id": "exchangerate:date"
    },
    "direction": {
      "@id": "exchangerate:direction"
    },
    "ConvertResponse": "exchangerate:ConvertResponse",
    "CurrenciesResponse": "exchangerate:CurrenciesResponse",
    "currencies": {
      "@id": "exchangerate:currencies",
      "@container": "@list"
    },
    "CurrencyInfo": "exchangerate:CurrencyInfo",
    "code": {
      "@id": "exchangerate:code",
      "@type": "xsd:string"
    },
    "name": {
      "@id": "exchangerate:name",
      "@type": "xsd:string"
    },
    "type": {
      "@id": "exchangerate:type",
      "@type": "xsd:string"
    },
    "decimals": {
      "@id": "exchangerate:decimals",
      "@type": "xsd:integer"
    },
    "minor_units": {
      "@id": "exchangerate:minor_units",
      "@type": "xsd:integer"
    },
    "is_derived": {
      "@id": "exchangerate:is_derived",
      "@type": "xsd:boolean"
    },
    "fixed_to_euro": {
      "@id": "exchangerate:fixed_to_euro"
    },
    "DailyUsageEntry": "exchangerate:DailyUsageEntry",
    "count": {
      "@id": "exchangerate:count",
      "@type": "xsd:integer"
    },
    "rate_limited": {
      "@id": "exchangerate:rate_limited",
      "@type": "xsd:integer"
    },
    "DailyUsageResponse": "exchangerate:DailyUsageResponse",
    "tier": {
      "@id": "exchangerate:tier",
      "@type": "xsd:string"
    },
    "limit": {
      "@id": "exchangerate:limit",
      "@type": "xsd:integer"
    },
    "month_to_date": {
      "@id": "exchangerate:month_to_date",
      "@type": "xsd:integer"
    },
    "rate_limited_total": {
      "@id": "exchangerate:rate_limited_total",
      "@type": "xsd:integer"
    },
    "active_streams": {
      "@id": "exchangerate:active_streams"
    },
    "max_streams": {
      "@id": "exchangerate:max_streams",
      "@type": "xsd:integer"
    },
    "days": {
      "@id": "exchangerate:days",
      "@container": "@list"
    },
    "DeleteAccountResponse": "exchangerate:DeleteAccountResponse",
    "deleted": {
      "@id": "exchangerate:deleted",
      "@type": "xsd:boolean"
    },
    "ErrorResponse": "exchangerate:ErrorResponse",
    "message": {
      "@id": "exchangerate:message",
      "@type": "xsd:string"
    },
    "GainLoss": "exchangerate:GainLoss",
    "currency": {
      "@id": "exchangerate:currency",
      "@type": "xsd:string"
    },
    "booked_on": {
      "@id": "exchangerate:booked_on",
      "@type": "xsd:string"
    },
    "settled_on": {
      "@id": "exchangerate:settled_on",
      "@type": "xsd:string"
    },
    "kind": {
      "@id": "exchangerate:kind",
      "@type": "xsd:string"
    },
    "HTTPValidationError": "exchangerate:HTTPValidationError",
    "detail": {
      "@id": "exchangerate:detail",
      "@container": "@list"
    },
    "HistoricalResponse": "exchangerate:HistoricalResponse",
    "is_forward_filled": {
      "@id": "exchangerate:is_forward_filled",
      "@type": "xsd:boolean"
    },
    "rates": {
      "@id": "exchangerate:rates"
    },
    "derived_symbols": {
      "@id": "exchangerate:derived_symbols",
      "@container": "@list"
    },
    "IndexConstituent": "exchangerate:IndexConstituent",
    "weight": {
      "@id": "exchangerate:weight",
      "@type": "xsd:decimal"
    },
    "contribution": {
      "@id": "exchangerate:contribution",
      "@type": "xsd:decimal"
    },
    "IndexSnapshotResponse": "exchangerate:IndexSnapshotResponse",
    "index": {
      "@id": "exchangerate:index",
      "@type": "xsd:string"
    },
    "methodology_version": {
      "@id": "exchangerate:methodology_version",
      "@type": "xsd:string"
    },
    "value": {
      "@id": "exchangerate:value",
      "@type": "xsd:decimal"
    },
    "source_type": {
      "@id": "exchangerate:source_type",
      "@type": "xsd:string"
    },
    "base_date": {
      "@id": "exchangerate:base_date"
    },
    "weights": {
      "@id": "exchangerate:weights"
    },
    "constituents": {
      "@id": "exchangerate:constituents",
      "@container": "@list"
    },
    "IndexTimeseriesResponse": "exchangerate:IndexTimeseriesResponse",
    "data": {
      "@id": "exchangerate:data",
      "@container": "@list"
    },
    "next_cursor": {
      "@id": "exchangerate:next_cursor"
    },
    "has_more": {
      "@id": "exchangerate:has_more",
      "@type": "xsd:boolean"
    },
    "IndexTimeseriesRow": "exchangerate:IndexTimeseriesRow",
    "KeyInventorySummary": "exchangerate:KeyInventorySummary",
    "id": {
      "@id": "exchangerate:id",
      "@type": "xsd:string"
    },
    "prefix": {
      "@id": "exchangerate:prefix",
      "@type": "xsd:string"
    },
    "created_at": {
      "@id": "exchangerate:created_at",
      "@type": "xsd:string"
    },
    "last_used_at": {
      "@id": "exchangerate:last_used_at"
    },
    "revoked_at": {
      "@id": "exchangerate:revoked_at"
    },
    "KeySummary": "exchangerate:KeySummary",
    "first_success_at": {
      "@id": "exchangerate:first_success_at"
    },
    "LatestResponse": "exchangerate:LatestResponse",
    "MarketSession": "exchangerate:MarketSession",
    "NamedKeyRequest": "exchangerate:NamedKeyRequest",
    "request_id": {
      "@id": "exchangerate:request_id"
    },
    "OrgSummary": "exchangerate:OrgSummary",
    "status": {
      "@id": "exchangerate:status",
      "@type": "xsd:string"
    },
    "stream_connections": {
      "@id": "exchangerate:stream_connections",
      "@type": "xsd:integer"
    },
    "stream_pairs_per_connection": {
      "@id": "exchangerate:stream_pairs_per_connection",
      "@type": "xsd:integer"
    },
    "ProvisionRequest": "exchangerate:ProvisionRequest",
    "defer_key": {
      "@id": "exchangerate:defer_key",
      "@type": "xsd:boolean"
    },
    "signup_attribution": {
      "@id": "exchangerate:signup_attribution"
    },
    "marketing_consent": {
      "@id": "exchangerate:marketing_consent"
    },
    "RangeResponse": "exchangerate:RangeResponse",
    "start_date": {
      "@id": "exchangerate:start_date",
      "@type": "xsd:string"
    },
    "end_date": {
      "@id": "exchangerate:end_date",
      "@type": "xsd:string"
    },
    "RangeRow": "exchangerate:RangeRow",
    "RateResponse": "exchangerate:RateResponse",
    "pair": {
      "@id": "exchangerate:pair",
      "@type": "xsd:string"
    },
    "Source": "exchangerate:Source",
    "TimeseriesResponse": "exchangerate:TimeseriesResponse",
    "symbols": {
      "@id": "exchangerate:symbols",
      "@container": "@list"
    },
    "TimeseriesRow": "exchangerate:TimeseriesRow",
    "UsageSummary": "exchangerate:UsageSummary",
    "calls_this_month": {
      "@id": "exchangerate:calls_this_month",
      "@type": "xsd:integer"
    },
    "resets_on": {
      "@id": "exchangerate:resets_on",
      "@type": "xsd:string"
    },
    "ValidationError": "exchangerate:ValidationError",
    "loc": {
      "@id": "exchangerate:loc",
      "@container": "@list"
    },
    "msg": {
      "@id": "exchangerate:msg",
      "@type": "xsd:string"
    },
    "input": {
      "@id": "exchangerate:input"
    },
    "ctx": {
      "@id": "exchangerate:ctx"
    },
    "_CreateBody": "exchangerate:_CreateBody",
    "events": {
      "@id": "exchangerate:events",
      "@container": "@list"
    },
    "description": {
      "@id": "exchangerate:description"
    },
    "email_fallback": {
      "@id": "exchangerate:email_fallback"
    }
  },
  "@type": "schema:Dataset",
  "schema:name": "exchangerate-dev API JSON-LD context",
  "schema:description": "A JSON-LD @context for the objects exchangerate-dev'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-10-30) from openapi/exchangerate-dev-openapi.json.",
  "dcterms:created": "2026-10-30",
  "dcterms:source": [
    "openapi/exchangerate-dev-openapi.json"
  ]
}