Saperly · JSON-LD Context

Saperly Context

JSON-LD context defining the semantic vocabulary for Saperly from Saperly.

32 Classes 30 Properties 4 Namespaces
View Context View on GitHub

Namespaces

schema: https://schema.org/
xsd: http://www.w3.org/2001/XMLSchema#
dcterms: http://purl.org/dc/terms/
saperly: https://saperly.com/schema#

Classes

WorkspaceNotFound InternalError Unauthorized AuthorizationDenied RateLimited AssistantUnavailable NumberNotFound CountryNotAvailable NumberQuotaExceeded PriceChanged IdempotencyConflict NoNumbersAvailable InsufficientFunds PaymentMethodRequired UpstreamError IdempotencyKeyMismatch InvalidSmsSenderId InvalidCallerIdName ConnectionNotFound UnsupportedModel UnsupportedVoice AudioConfigurationError RecipientOptedOut MessageSendFailed DestinationNotSupported SpendLimitExceeded NumberHasNoConnection CallStartFailed CallNotFound CustomVoiceConflict CustomVoiceNotFound InvalidVoiceUpload

Properties

Property Type Container
_tag string
slug string
traceId string
message string
reason string
bucket string
numberId string
country string
limit decimal
current decimal
phoneNumber string
actualMonthlyPriceCents decimal
actualUpfrontPriceCents decimal
expectedMonthlyPriceCents decimal
expectedUpfrontPriceCents decimal
currency string
numberType string
balanceCents decimal
requestedCents decimal
activeNumbers decimal
status decimal
code string
id string
field string
model string
voice string
to string
limitCents decimal
priorSpendCents decimal
callId string

JSON-LD Document

Raw ↑
{
  "@context": {
    "@vocab": "https://saperly.com/schema#",
    "schema": "https://schema.org/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "dcterms": "http://purl.org/dc/terms/",
    "saperly": "https://saperly.com/schema#",
    "WorkspaceNotFound": "saperly:WorkspaceNotFound",
    "_tag": {
      "@id": "saperly:_tag",
      "@type": "xsd:string"
    },
    "slug": {
      "@id": "saperly:slug",
      "@type": "xsd:string"
    },
    "InternalError": "saperly:InternalError",
    "traceId": {
      "@id": "saperly:traceId",
      "@type": "xsd:string"
    },
    "Unauthorized": "saperly:Unauthorized",
    "message": {
      "@id": "saperly:message",
      "@type": "xsd:string"
    },
    "AuthorizationDenied": "saperly:AuthorizationDenied",
    "reason": {
      "@id": "saperly:reason",
      "@type": "xsd:string"
    },
    "RateLimited": "saperly:RateLimited",
    "bucket": {
      "@id": "saperly:bucket",
      "@type": "xsd:string"
    },
    "AssistantUnavailable": "saperly:AssistantUnavailable",
    "NumberNotFound": "saperly:NumberNotFound",
    "numberId": {
      "@id": "saperly:numberId",
      "@type": "xsd:string"
    },
    "CountryNotAvailable": "saperly:CountryNotAvailable",
    "country": {
      "@id": "saperly:country",
      "@type": "xsd:string"
    },
    "NumberQuotaExceeded": "saperly:NumberQuotaExceeded",
    "limit": {
      "@id": "saperly:limit",
      "@type": "xsd:decimal"
    },
    "current": {
      "@id": "saperly:current",
      "@type": "xsd:decimal"
    },
    "PriceChanged": "saperly:PriceChanged",
    "phoneNumber": {
      "@id": "saperly:phoneNumber",
      "@type": "xsd:string"
    },
    "actualMonthlyPriceCents": {
      "@id": "saperly:actualMonthlyPriceCents",
      "@type": "xsd:decimal"
    },
    "actualUpfrontPriceCents": {
      "@id": "saperly:actualUpfrontPriceCents",
      "@type": "xsd:decimal"
    },
    "expectedMonthlyPriceCents": {
      "@id": "saperly:expectedMonthlyPriceCents",
      "@type": "xsd:decimal"
    },
    "expectedUpfrontPriceCents": {
      "@id": "saperly:expectedUpfrontPriceCents",
      "@type": "xsd:decimal"
    },
    "currency": {
      "@id": "saperly:currency",
      "@type": "xsd:string"
    },
    "IdempotencyConflict": "saperly:IdempotencyConflict",
    "NoNumbersAvailable": "saperly:NoNumbersAvailable",
    "numberType": {
      "@id": "saperly:numberType",
      "@type": "xsd:string"
    },
    "InsufficientFunds": "saperly:InsufficientFunds",
    "balanceCents": {
      "@id": "saperly:balanceCents",
      "@type": "xsd:decimal"
    },
    "requestedCents": {
      "@id": "saperly:requestedCents",
      "@type": "xsd:decimal"
    },
    "PaymentMethodRequired": "saperly:PaymentMethodRequired",
    "activeNumbers": {
      "@id": "saperly:activeNumbers",
      "@type": "xsd:decimal"
    },
    "UpstreamError": "saperly:UpstreamError",
    "status": {
      "@id": "saperly:status",
      "@type": "xsd:decimal"
    },
    "code": {
      "@id": "saperly:code",
      "@type": "xsd:string"
    },
    "IdempotencyKeyMismatch": "saperly:IdempotencyKeyMismatch",
    "InvalidSmsSenderId": "saperly:InvalidSmsSenderId",
    "InvalidCallerIdName": "saperly:InvalidCallerIdName",
    "ConnectionNotFound": "saperly:ConnectionNotFound",
    "id": {
      "@id": "saperly:id",
      "@type": "xsd:string"
    },
    "UnsupportedModel": "saperly:UnsupportedModel",
    "field": {
      "@id": "saperly:field",
      "@type": "xsd:string"
    },
    "model": {
      "@id": "saperly:model",
      "@type": "xsd:string"
    },
    "UnsupportedVoice": "saperly:UnsupportedVoice",
    "voice": {
      "@id": "saperly:voice",
      "@type": "xsd:string"
    },
    "AudioConfigurationError": "saperly:AudioConfigurationError",
    "RecipientOptedOut": "saperly:RecipientOptedOut",
    "to": {
      "@id": "saperly:to",
      "@type": "xsd:string"
    },
    "MessageSendFailed": "saperly:MessageSendFailed",
    "DestinationNotSupported": "saperly:DestinationNotSupported",
    "SpendLimitExceeded": "saperly:SpendLimitExceeded",
    "limitCents": {
      "@id": "saperly:limitCents",
      "@type": "xsd:decimal"
    },
    "priorSpendCents": {
      "@id": "saperly:priorSpendCents",
      "@type": "xsd:decimal"
    },
    "NumberHasNoConnection": "saperly:NumberHasNoConnection",
    "CallStartFailed": "saperly:CallStartFailed",
    "CallNotFound": "saperly:CallNotFound",
    "callId": {
      "@id": "saperly:callId",
      "@type": "xsd:string"
    },
    "CustomVoiceConflict": "saperly:CustomVoiceConflict",
    "CustomVoiceNotFound": "saperly:CustomVoiceNotFound",
    "InvalidVoiceUpload": "saperly:InvalidVoiceUpload"
  },
  "@type": "schema:Dataset",
  "schema:name": "Saperly API JSON-LD context",
  "schema:description": "A JSON-LD @context for the objects Saperly'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-07) from openapi/saperly-openapi.yml.",
  "dcterms:created": "2026-10-07",
  "dcterms:source": [
    "openapi/saperly-openapi.yml"
  ]
}