RenewalPriceChangeResponse
Screen S7: the renewal price moved and we did not charge. **`last_paid_amount_minor` is not optional in practice.** Daisy's rule: a price-change screen that cannot state what you paid last time has no reason to exist, so `pending` is never true without it — the frontend falls back to the normal renewal path instead of rendering a comparison against nothing. There is deliberately no `what_changed` field. The row renders only if we can decompose the price into the registry's part and ours, and we cannot: Openprovider quotes one reseller renewal price per ending with no split. Shipping the field as "Unknown" would put a guess inside a facts block whose entire job is to be checkable, so the field does not exist and the row is omitted.
CompanyDomainRegistrarArtificial IntelligenceDNSWHOIS
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/justdomain-ai/json-schema/justdomain-ai-renewal-price-change-response-schema.json",
"title": "RenewalPriceChangeResponse",
"description": "Screen S7: the renewal price moved and we did not charge.\n\n**`last_paid_amount_minor` is not optional in practice.** Daisy's rule:\na price-change screen that cannot state what you paid last time has no\nreason to exist, so `pending` is never true without it — the frontend\nfalls back to the normal renewal path instead of rendering a comparison\nagainst nothing.\n\nThere is deliberately no `what_changed` field. The row renders only if we\ncan decompose the price into the registry's part and ours, and we cannot:\nOpenprovider quotes one reseller renewal price per ending with no split.\nShipping the field as \"Unknown\" would put a guess inside a facts block\nwhose entire job is to be checkable, so the field does not exist and the\nrow is omitted.",
"x-generated": "2026-11-13",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/mcp-openapi.json#/components/schemas/RenewalPriceChangeResponse",
"properties": {
"pending": {
"type": "boolean",
"title": "Pending",
"default": false
},
"decision": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Decision"
},
"domain": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Domain"
},
"expires_on": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Expires On"
},
"new_expiry": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "New Expiry"
},
"charge_on": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Charge On"
},
"decide_by": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Decide By"
},
"amount_minor": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Amount Minor"
},
"last_paid_amount_minor": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Last Paid Amount Minor"
},
"currency": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Currency"
},
"years": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Years"
},
"term_years": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Term Years"
},
"card_brand": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Card Brand"
},
"card_last4": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Card Last4"
}
},
"type": "object"
}
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/justdomain-ai-renewal-price-change-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.