Files

220 lines
5.8 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"id",
"name",
"category",
"url",
"lastVerified",
"tiers",
"gotchas",
"tosHighlights",
"dataTraining",
"ipIndemnity"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"category": {
"type": "string",
"enum": [
"coding-ide",
"coding-router",
"api-provider"
]
},
"url": {
"type": "string"
},
"lastVerified": {
"type": "string",
"format": "date"
},
"stackingPolicy": {
"type": "string",
"enum": [
"allowed",
"silent",
"prohibited",
"unknown"
],
"description": "Whether buying multiple copies of this subscription (multiple accounts) is permitted by the provider's terms"
},
"stackingPolicyNote": {
"type": "string",
"description": "Evidence quote or explanation for the stacking policy"
},
"tiers": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"monthlyPrice",
"limits",
"models",
"estimatedTokenBudget"
],
"properties": {
"name": {
"type": "string"
},
"monthlyPrice": {
"type": [
"number",
"null"
]
},
"annualPrice": {
"type": [
"number",
"null"
]
},
"limits": {
"type": "object",
"minProperties": 1
},
"models": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string"
}
},
"modelAllowances": {
"additionalProperties": {
"type": "number"
},
"description": "Optional model-family or model-specific monthly credit allowance in USD",
"type": "object"
},
"perModelTokenBudgets": {
"type": "object",
"description": "Optional per-model token yields (M tokens/month if the whole quota is drained exclusively on that model). Keys are lowercase substrings of tier.models entries.",
"additionalProperties": {
"type": "object",
"properties": {
"estimatedMillionTokens": { "type": "number" },
"midpointEstimate": { "type": "number" },
"optimisticEstimate": { "type": "number" },
"basis": {
"type": "string",
"enum": ["official-table", "official-multiplier", "list-price-credit", "equal-rate"]
},
"confidence": {
"type": "string",
"enum": ["high", "medium", "low"]
}
},
"required": ["estimatedMillionTokens"]
}
},
"estimatedTokenBudget": {
"type": "object",
"required": [
"description",
"estimatedMillionTokens",
"assumptions",
"estimateMeta"
],
"properties": {
"description": {
"type": "string"
},
"estimatedMillionTokens": {
"type": "number",
"description": "Conservative (floor) estimate of monthly million tokens"
},
"midpointEstimate": {
"type": "number",
"description": "Midpoint of the documented monthly token range (millions)"
},
"optimisticEstimate": {
"type": "number",
"description": "Optimistic (ceiling) estimate of monthly token range (millions)"
},
"assumptions": {
"type": "string"
},
"estimateMeta": {
"type": "object",
"description": "Provenance for the token estimate",
"required": [
"sourceType",
"confidence",
"verifiedAt"
],
"properties": {
"sourceUrl": {
"type": "string"
},
"sourceQuote": {
"type": "string"
},
"sourceType": {
"type": "string",
"enum": [
"official",
"derived",
"research",
"community"
]
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"verifiedAt": {
"type": "string",
"format": "date"
},
"basisModel": {
"type": "string"
},
"cacheAssumption": {
"type": "string"
}
}
}
}
},
"notes": {
"type": "string"
}
}
}
},
"gotchas": {
"type": "array",
"items": {
"type": "string"
}
},
"tosHighlights": {
"type": "array",
"items": {
"type": "string"
}
},
"dataTraining": {
"type": "string"
},
"ipIndemnity": {
"type": [
"string",
"boolean"
]
}
}
}