{
  "openapi": "3.1.0",
  "info": {
    "title": "Voda Astro Data API",
    "version": "0.1.0",
    "description": "Machine-payable astrology and location data. Runtime HTTP 402 challenges are authoritative.",
    "contact": {
      "email": "joseph@dutchdata.io"
    },
    "x-guidance": "Every /api route here is machine-payable per request: fetch it unauthenticated to receive a 402 whose WWW-Authenticate headers (MPP: Stripe or Tempo) and Payment-Required header (x402 v2 exact USDC) carry the authoritative offers; retry the identical request with your payment credential to receive the data. No account or API key is needed."
  },
  "servers": [
    {
      "url": "https://astro.dutchdata.io"
    }
  ],
  "x-service-info": {
    "categories": [
      "data",
      "astrology",
      "geo"
    ],
    "docs": {
      "homepage": "https://astro.dutchdata.io",
      "apiReference": "https://astro.dutchdata.io/openapi.json",
      "llms": "https://astro.dutchdata.io/llms.txt"
    }
  },
  "paths": {
    "/api/locations/count": {
      "get": {
        "operationId": "get__api_locations_count",
        "summary": "Total number of location records available",
        "description": "Location data",
        "tags": [
          "data"
        ],
        "parameters": [],
        "x-example": {
          "path": "/api/locations/count",
          "request": {},
          "response": {
            "count": 245789
          }
        },
        "x-price": {
          "amountMinor": 50,
          "currency": "USD",
          "display": "$0.50"
        },
        "x-payment-info": {
          "offers": [
            {
              "method": "stripe",
              "intent": "charge",
              "amount": "50",
              "currency": "usd",
              "decimals": 2,
              "description": "Location data"
            },
            {
              "method": "tempo",
              "intent": "charge",
              "amount": "500000",
              "currency": "pathUSD",
              "decimals": 6,
              "description": "Location data"
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.50"
          },
          "protocols": [
            {
              "mpp": {
                "method": "stripe",
                "intent": "charge",
                "currency": "usd"
              }
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "pathUSD"
              }
            },
            {
              "x402": {
                "version": 2,
                "scheme": "exact",
                "asset": "USDC"
              }
            }
          ]
        },
        "x-payment": {
          "authority": "runtime HTTP 402 response",
          "mpp": {
            "offers": [
              {
                "method": "stripe",
                "intent": "charge",
                "amount": "50",
                "currency": "usd",
                "decimals": 2,
                "description": "Machine-payable request"
              },
              {
                "method": "tempo",
                "intent": "charge",
                "amount": "500000",
                "currency": "pathUSD",
                "decimals": 6,
                "description": "Machine-payable request"
              }
            ],
            "runtime": {
              "protocol": "mpp",
              "realm": "astro.dutchdata.io",
              "intent": "charge",
              "challenge_header": "WWW-Authenticate",
              "credential_header": "Authorization",
              "receipt_header": "payment-receipt",
              "methods": [
                {
                  "method": "stripe",
                  "network_id": "internal",
                  "currency": "usd",
                  "decimals": 2,
                  "payment_method_types": [
                    "card"
                  ]
                },
                {
                  "method": "tempo",
                  "currency": "0x20C000000000000000000000b9537d11c60E8b50",
                  "recipient": "0xa783B7548aF268666E4FbfaCbf5B18A19d87445d",
                  "chain_id": 4217,
                  "decimals": 6
                }
              ]
            }
          },
          "x402": {
            "version": 2,
            "scheme": "exact",
            "asset": "USDC",
            "extensions": {
              "bazaar": {
                "info": {
                  "input": {
                    "type": "http",
                    "method": "GET",
                    "bodyType": null,
                    "example": {
                      "path": "/api/locations/count"
                    }
                  },
                  "output": {
                    "type": "json",
                    "mimeType": "application/json"
                  }
                },
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "description": "x402 Bazaar discovery metadata",
                  "properties": {
                    "input": {
                      "type": "object",
                      "properties": {
                        "queryParams": {
                          "type": "object",
                          "properties": {}
                        }
                      }
                    },
                    "output": {
                      "type": "object",
                      "properties": {
                        "example": {
                          "mimeType": "application/json",
                          "schema": {
                            "type": "object",
                            "properties": {
                              "count": {
                                "type": "integer",
                                "minimum": 0
                              }
                            },
                            "required": [
                              "count"
                            ]
                          },
                          "example": {
                            "count": 245789
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "accepts": [
              {
                "scheme": "exact",
                "network": "eip155:8453",
                "amount": "500000",
                "payTo": "0xa783B7548aF268666E4FbfaCbf5B18A19d87445d",
                "maxTimeoutSeconds": 300,
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "extra": {
                  "assetTransferMethod": "eip3009",
                  "name": "USD Coin",
                  "version": "2"
                }
              }
            ]
          }
        },
        "responses": {
          "200": {
            "description": "Location data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "minimum": 0
                    }
                  },
                  "required": [
                    "count"
                  ]
                },
                "example": {
                  "count": 245789
                }
              }
            }
          },
          "402": {
            "description": "Payment required; response headers contain authoritative MPP and x402 offers"
          }
        }
      }
    },
    "/api/locations/countries": {
      "get": {
        "operationId": "get__api_locations_countries",
        "summary": "List all countries with location coverage",
        "description": "Location data",
        "tags": [
          "data"
        ],
        "parameters": [],
        "x-example": {
          "path": "/api/locations/countries",
          "request": {},
          "response": {
            "countries": [
              "CA",
              "GB",
              "US"
            ]
          }
        },
        "x-price": {
          "amountMinor": 50,
          "currency": "USD",
          "display": "$0.50"
        },
        "x-payment-info": {
          "offers": [
            {
              "method": "stripe",
              "intent": "charge",
              "amount": "50",
              "currency": "usd",
              "decimals": 2,
              "description": "Location data"
            },
            {
              "method": "tempo",
              "intent": "charge",
              "amount": "500000",
              "currency": "pathUSD",
              "decimals": 6,
              "description": "Location data"
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.50"
          },
          "protocols": [
            {
              "mpp": {
                "method": "stripe",
                "intent": "charge",
                "currency": "usd"
              }
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "pathUSD"
              }
            },
            {
              "x402": {
                "version": 2,
                "scheme": "exact",
                "asset": "USDC"
              }
            }
          ]
        },
        "x-payment": {
          "authority": "runtime HTTP 402 response",
          "mpp": {
            "offers": [
              {
                "method": "stripe",
                "intent": "charge",
                "amount": "50",
                "currency": "usd",
                "decimals": 2,
                "description": "Machine-payable request"
              },
              {
                "method": "tempo",
                "intent": "charge",
                "amount": "500000",
                "currency": "pathUSD",
                "decimals": 6,
                "description": "Machine-payable request"
              }
            ],
            "runtime": {
              "protocol": "mpp",
              "realm": "astro.dutchdata.io",
              "intent": "charge",
              "challenge_header": "WWW-Authenticate",
              "credential_header": "Authorization",
              "receipt_header": "payment-receipt",
              "methods": [
                {
                  "method": "stripe",
                  "network_id": "internal",
                  "currency": "usd",
                  "decimals": 2,
                  "payment_method_types": [
                    "card"
                  ]
                },
                {
                  "method": "tempo",
                  "currency": "0x20C000000000000000000000b9537d11c60E8b50",
                  "recipient": "0xa783B7548aF268666E4FbfaCbf5B18A19d87445d",
                  "chain_id": 4217,
                  "decimals": 6
                }
              ]
            }
          },
          "x402": {
            "version": 2,
            "scheme": "exact",
            "asset": "USDC",
            "extensions": {
              "bazaar": {
                "info": {
                  "input": {
                    "type": "http",
                    "method": "GET",
                    "bodyType": null,
                    "example": {
                      "path": "/api/locations/countries"
                    }
                  },
                  "output": {
                    "type": "json",
                    "mimeType": "application/json"
                  }
                },
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "description": "x402 Bazaar discovery metadata",
                  "properties": {
                    "input": {
                      "type": "object",
                      "properties": {
                        "queryParams": {
                          "type": "object",
                          "properties": {}
                        }
                      }
                    },
                    "output": {
                      "type": "object",
                      "properties": {
                        "example": {
                          "mimeType": "application/json",
                          "schema": {
                            "type": "object",
                            "properties": {
                              "countries": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "required": [
                              "countries"
                            ]
                          },
                          "example": {
                            "countries": [
                              "CA",
                              "GB",
                              "US"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "accepts": [
              {
                "scheme": "exact",
                "network": "eip155:8453",
                "amount": "500000",
                "payTo": "0xa783B7548aF268666E4FbfaCbf5B18A19d87445d",
                "maxTimeoutSeconds": 300,
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "extra": {
                  "assetTransferMethod": "eip3009",
                  "name": "USD Coin",
                  "version": "2"
                }
              }
            ]
          }
        },
        "responses": {
          "200": {
            "description": "Location data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "countries": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "countries"
                  ]
                },
                "example": {
                  "countries": [
                    "CA",
                    "GB",
                    "US"
                  ]
                }
              }
            }
          },
          "402": {
            "description": "Payment required; response headers contain authoritative MPP and x402 offers"
          }
        }
      }
    },
    "/api/locations/countries/{country_code}/regions": {
      "get": {
        "operationId": "get__api_locations_countries__country_code__regions",
        "summary": "List a country's regions/states",
        "description": "Location data",
        "tags": [
          "data"
        ],
        "parameters": [
          {
            "name": "country_code",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-example": {
          "path": "/api/locations/countries/US/regions",
          "request": {},
          "response": {
            "regions": [
              "CA",
              "NY",
              "WA"
            ]
          }
        },
        "x-price": {
          "amountMinor": 50,
          "currency": "USD",
          "display": "$0.50"
        },
        "x-payment-info": {
          "offers": [
            {
              "method": "stripe",
              "intent": "charge",
              "amount": "50",
              "currency": "usd",
              "decimals": 2,
              "description": "Location data"
            },
            {
              "method": "tempo",
              "intent": "charge",
              "amount": "500000",
              "currency": "pathUSD",
              "decimals": 6,
              "description": "Location data"
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.50"
          },
          "protocols": [
            {
              "mpp": {
                "method": "stripe",
                "intent": "charge",
                "currency": "usd"
              }
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "pathUSD"
              }
            },
            {
              "x402": {
                "version": 2,
                "scheme": "exact",
                "asset": "USDC"
              }
            }
          ]
        },
        "x-payment": {
          "authority": "runtime HTTP 402 response",
          "mpp": {
            "offers": [
              {
                "method": "stripe",
                "intent": "charge",
                "amount": "50",
                "currency": "usd",
                "decimals": 2,
                "description": "Machine-payable request"
              },
              {
                "method": "tempo",
                "intent": "charge",
                "amount": "500000",
                "currency": "pathUSD",
                "decimals": 6,
                "description": "Machine-payable request"
              }
            ],
            "runtime": {
              "protocol": "mpp",
              "realm": "astro.dutchdata.io",
              "intent": "charge",
              "challenge_header": "WWW-Authenticate",
              "credential_header": "Authorization",
              "receipt_header": "payment-receipt",
              "methods": [
                {
                  "method": "stripe",
                  "network_id": "internal",
                  "currency": "usd",
                  "decimals": 2,
                  "payment_method_types": [
                    "card"
                  ]
                },
                {
                  "method": "tempo",
                  "currency": "0x20C000000000000000000000b9537d11c60E8b50",
                  "recipient": "0xa783B7548aF268666E4FbfaCbf5B18A19d87445d",
                  "chain_id": 4217,
                  "decimals": 6
                }
              ]
            }
          },
          "x402": {
            "version": 2,
            "scheme": "exact",
            "asset": "USDC",
            "extensions": {
              "bazaar": {
                "info": {
                  "input": {
                    "type": "http",
                    "method": "GET",
                    "bodyType": null,
                    "example": {
                      "path": "/api/locations/countries/US/regions"
                    }
                  },
                  "output": {
                    "type": "json",
                    "mimeType": "application/json"
                  }
                },
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "description": "x402 Bazaar discovery metadata",
                  "properties": {
                    "input": {
                      "type": "object",
                      "properties": {
                        "queryParams": {
                          "type": "object",
                          "properties": {
                            "country_code": {
                              "type": "string",
                              "in": "path",
                              "description": "path parameter"
                            }
                          }
                        }
                      }
                    },
                    "output": {
                      "type": "object",
                      "properties": {
                        "example": {
                          "mimeType": "application/json",
                          "schema": {
                            "type": "object",
                            "properties": {
                              "regions": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "required": [
                              "regions"
                            ]
                          },
                          "example": {
                            "regions": [
                              "CA",
                              "NY",
                              "WA"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "accepts": [
              {
                "scheme": "exact",
                "network": "eip155:8453",
                "amount": "500000",
                "payTo": "0xa783B7548aF268666E4FbfaCbf5B18A19d87445d",
                "maxTimeoutSeconds": 300,
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "extra": {
                  "assetTransferMethod": "eip3009",
                  "name": "USD Coin",
                  "version": "2"
                }
              }
            ]
          }
        },
        "responses": {
          "200": {
            "description": "Location data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "regions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "regions"
                  ]
                },
                "example": {
                  "regions": [
                    "CA",
                    "NY",
                    "WA"
                  ]
                }
              }
            }
          },
          "402": {
            "description": "Payment required; response headers contain authoritative MPP and x402 offers"
          }
        }
      }
    },
    "/api/locations/{country_code}/{region_code}/search": {
      "get": {
        "operationId": "get__api_locations__country_code___region_code__search",
        "summary": "Fuzzy-search cities within a country region",
        "description": "Location data",
        "tags": [
          "data"
        ],
        "parameters": [
          {
            "name": "country_code",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "region_code",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "query",
            "in": "query",
            "required": false,
            "description": "City-name search text",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Maximum results (default 50)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "x-example": {
          "path": "/api/locations/US/NY/search",
          "request": {},
          "response": [
            {
              "id": 5128581,
              "city": "New York",
              "region_code": "NY",
              "country_code": "US",
              "lat": 40.71427,
              "lon": -74.00597,
              "timezone": "America/New_York",
              "population": 8804190
            }
          ]
        },
        "x-price": {
          "amountMinor": 50,
          "currency": "USD",
          "display": "$0.50"
        },
        "x-payment-info": {
          "offers": [
            {
              "method": "stripe",
              "intent": "charge",
              "amount": "50",
              "currency": "usd",
              "decimals": 2,
              "description": "Location data"
            },
            {
              "method": "tempo",
              "intent": "charge",
              "amount": "500000",
              "currency": "pathUSD",
              "decimals": 6,
              "description": "Location data"
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.50"
          },
          "protocols": [
            {
              "mpp": {
                "method": "stripe",
                "intent": "charge",
                "currency": "usd"
              }
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "pathUSD"
              }
            },
            {
              "x402": {
                "version": 2,
                "scheme": "exact",
                "asset": "USDC"
              }
            }
          ]
        },
        "x-payment": {
          "authority": "runtime HTTP 402 response",
          "mpp": {
            "offers": [
              {
                "method": "stripe",
                "intent": "charge",
                "amount": "50",
                "currency": "usd",
                "decimals": 2,
                "description": "Machine-payable request"
              },
              {
                "method": "tempo",
                "intent": "charge",
                "amount": "500000",
                "currency": "pathUSD",
                "decimals": 6,
                "description": "Machine-payable request"
              }
            ],
            "runtime": {
              "protocol": "mpp",
              "realm": "astro.dutchdata.io",
              "intent": "charge",
              "challenge_header": "WWW-Authenticate",
              "credential_header": "Authorization",
              "receipt_header": "payment-receipt",
              "methods": [
                {
                  "method": "stripe",
                  "network_id": "internal",
                  "currency": "usd",
                  "decimals": 2,
                  "payment_method_types": [
                    "card"
                  ]
                },
                {
                  "method": "tempo",
                  "currency": "0x20C000000000000000000000b9537d11c60E8b50",
                  "recipient": "0xa783B7548aF268666E4FbfaCbf5B18A19d87445d",
                  "chain_id": 4217,
                  "decimals": 6
                }
              ]
            }
          },
          "x402": {
            "version": 2,
            "scheme": "exact",
            "asset": "USDC",
            "extensions": {
              "bazaar": {
                "info": {
                  "input": {
                    "type": "http",
                    "method": "GET",
                    "bodyType": null,
                    "example": {
                      "path": "/api/locations/US/NY/search"
                    }
                  },
                  "output": {
                    "type": "json",
                    "mimeType": "application/json"
                  }
                },
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "description": "x402 Bazaar discovery metadata",
                  "properties": {
                    "input": {
                      "type": "object",
                      "properties": {
                        "queryParams": {
                          "type": "object",
                          "properties": {
                            "query": {
                              "type": "string",
                              "description": "City-name search text"
                            },
                            "limit": {
                              "type": "string",
                              "description": "Maximum results (default 50)"
                            },
                            "country_code": {
                              "type": "string",
                              "in": "path",
                              "description": "path parameter"
                            },
                            "region_code": {
                              "type": "string",
                              "in": "path",
                              "description": "path parameter"
                            }
                          }
                        }
                      }
                    },
                    "output": {
                      "type": "object",
                      "properties": {
                        "example": {
                          "mimeType": "application/json",
                          "schema": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/RichLocation"
                            }
                          },
                          "example": [
                            {
                              "id": 5128581,
                              "city": "New York",
                              "region_code": "NY",
                              "country_code": "US",
                              "lat": 40.71427,
                              "lon": -74.00597,
                              "timezone": "America/New_York",
                              "population": 8804190
                            }
                          ]
                        }
                      }
                    }
                  }
                }
              }
            },
            "accepts": [
              {
                "scheme": "exact",
                "network": "eip155:8453",
                "amount": "500000",
                "payTo": "0xa783B7548aF268666E4FbfaCbf5B18A19d87445d",
                "maxTimeoutSeconds": 300,
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "extra": {
                  "assetTransferMethod": "eip3009",
                  "name": "USD Coin",
                  "version": "2"
                }
              }
            ]
          }
        },
        "responses": {
          "200": {
            "description": "Location data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RichLocation"
                  }
                },
                "example": [
                  {
                    "id": 5128581,
                    "city": "New York",
                    "region_code": "NY",
                    "country_code": "US",
                    "lat": 40.71427,
                    "lon": -74.00597,
                    "timezone": "America/New_York",
                    "population": 8804190
                  }
                ]
              }
            }
          },
          "402": {
            "description": "Payment required; response headers contain authoritative MPP and x402 offers"
          }
        }
      }
    },
    "/api/locations/{country_code}/{region_code}/{city}": {
      "get": {
        "operationId": "get__api_locations__country_code___region_code___city",
        "summary": "Rich location record with coordinates and timezone",
        "description": "Location data",
        "tags": [
          "data"
        ],
        "parameters": [
          {
            "name": "country_code",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "region_code",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "city",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-example": {
          "path": "/api/locations/US/NY/New%20York",
          "request": {},
          "response": {
            "location": {
              "id": 5128581,
              "city": "New York",
              "region_code": "NY",
              "country_code": "US",
              "lat": 40.71427,
              "lon": -74.00597,
              "timezone": "America/New_York",
              "population": 8804190
            }
          }
        },
        "x-price": {
          "amountMinor": 50,
          "currency": "USD",
          "display": "$0.50"
        },
        "x-payment-info": {
          "offers": [
            {
              "method": "stripe",
              "intent": "charge",
              "amount": "50",
              "currency": "usd",
              "decimals": 2,
              "description": "Location data"
            },
            {
              "method": "tempo",
              "intent": "charge",
              "amount": "500000",
              "currency": "pathUSD",
              "decimals": 6,
              "description": "Location data"
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.50"
          },
          "protocols": [
            {
              "mpp": {
                "method": "stripe",
                "intent": "charge",
                "currency": "usd"
              }
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "pathUSD"
              }
            },
            {
              "x402": {
                "version": 2,
                "scheme": "exact",
                "asset": "USDC"
              }
            }
          ]
        },
        "x-payment": {
          "authority": "runtime HTTP 402 response",
          "mpp": {
            "offers": [
              {
                "method": "stripe",
                "intent": "charge",
                "amount": "50",
                "currency": "usd",
                "decimals": 2,
                "description": "Machine-payable request"
              },
              {
                "method": "tempo",
                "intent": "charge",
                "amount": "500000",
                "currency": "pathUSD",
                "decimals": 6,
                "description": "Machine-payable request"
              }
            ],
            "runtime": {
              "protocol": "mpp",
              "realm": "astro.dutchdata.io",
              "intent": "charge",
              "challenge_header": "WWW-Authenticate",
              "credential_header": "Authorization",
              "receipt_header": "payment-receipt",
              "methods": [
                {
                  "method": "stripe",
                  "network_id": "internal",
                  "currency": "usd",
                  "decimals": 2,
                  "payment_method_types": [
                    "card"
                  ]
                },
                {
                  "method": "tempo",
                  "currency": "0x20C000000000000000000000b9537d11c60E8b50",
                  "recipient": "0xa783B7548aF268666E4FbfaCbf5B18A19d87445d",
                  "chain_id": 4217,
                  "decimals": 6
                }
              ]
            }
          },
          "x402": {
            "version": 2,
            "scheme": "exact",
            "asset": "USDC",
            "extensions": {
              "bazaar": {
                "info": {
                  "input": {
                    "type": "http",
                    "method": "GET",
                    "bodyType": null,
                    "example": {
                      "path": "/api/locations/US/NY/New%20York"
                    }
                  },
                  "output": {
                    "type": "json",
                    "mimeType": "application/json"
                  }
                },
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "description": "x402 Bazaar discovery metadata",
                  "properties": {
                    "input": {
                      "type": "object",
                      "properties": {
                        "queryParams": {
                          "type": "object",
                          "properties": {
                            "country_code": {
                              "type": "string",
                              "in": "path",
                              "description": "path parameter"
                            },
                            "region_code": {
                              "type": "string",
                              "in": "path",
                              "description": "path parameter"
                            },
                            "city": {
                              "type": "string",
                              "in": "path",
                              "description": "path parameter"
                            }
                          }
                        }
                      }
                    },
                    "output": {
                      "type": "object",
                      "properties": {
                        "example": {
                          "mimeType": "application/json",
                          "schema": {
                            "type": "object",
                            "properties": {
                              "location": {
                                "$ref": "#/components/schemas/RichLocation"
                              }
                            },
                            "required": [
                              "location"
                            ]
                          },
                          "example": {
                            "location": {
                              "id": 5128581,
                              "city": "New York",
                              "region_code": "NY",
                              "country_code": "US",
                              "lat": 40.71427,
                              "lon": -74.00597,
                              "timezone": "America/New_York",
                              "population": 8804190
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "accepts": [
              {
                "scheme": "exact",
                "network": "eip155:8453",
                "amount": "500000",
                "payTo": "0xa783B7548aF268666E4FbfaCbf5B18A19d87445d",
                "maxTimeoutSeconds": 300,
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "extra": {
                  "assetTransferMethod": "eip3009",
                  "name": "USD Coin",
                  "version": "2"
                }
              }
            ]
          }
        },
        "responses": {
          "200": {
            "description": "Location data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "location": {
                      "$ref": "#/components/schemas/RichLocation"
                    }
                  },
                  "required": [
                    "location"
                  ]
                },
                "example": {
                  "location": {
                    "id": 5128581,
                    "city": "New York",
                    "region_code": "NY",
                    "country_code": "US",
                    "lat": 40.71427,
                    "lon": -74.00597,
                    "timezone": "America/New_York",
                    "population": 8804190
                  }
                }
              }
            }
          },
          "402": {
            "description": "Payment required; response headers contain authoritative MPP and x402 offers"
          }
        }
      }
    },
    "/api/full_chart/dt/{unix_ms_utc}": {
      "get": {
        "operationId": "get__api_full_chart_dt__unix_ms_utc",
        "summary": "Full astrological chart for a UTC instant (planets, houses, aspects)",
        "description": "Full astrological chart",
        "tags": [
          "data"
        ],
        "parameters": [
          {
            "name": "unix_ms_utc",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "x-example": {
          "path": "/api/full_chart/dt/1767225600000",
          "request": {},
          "response": [
            {
              "planet": 0,
              "sign": 9,
              "deg_min_sec": "10º15'30\"",
              "house_num": 1,
              "is_rx": false,
              "lat": 0.0001
            }
          ]
        },
        "x-price": {
          "amountMinor": 50,
          "currency": "USD",
          "display": "$0.50"
        },
        "x-payment-info": {
          "offers": [
            {
              "method": "stripe",
              "intent": "charge",
              "amount": "50",
              "currency": "usd",
              "decimals": 2,
              "description": "Full astrological chart"
            },
            {
              "method": "tempo",
              "intent": "charge",
              "amount": "500000",
              "currency": "pathUSD",
              "decimals": 6,
              "description": "Full astrological chart"
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.50"
          },
          "protocols": [
            {
              "mpp": {
                "method": "stripe",
                "intent": "charge",
                "currency": "usd"
              }
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "pathUSD"
              }
            },
            {
              "x402": {
                "version": 2,
                "scheme": "exact",
                "asset": "USDC"
              }
            }
          ]
        },
        "x-payment": {
          "authority": "runtime HTTP 402 response",
          "mpp": {
            "offers": [
              {
                "method": "stripe",
                "intent": "charge",
                "amount": "50",
                "currency": "usd",
                "decimals": 2,
                "description": "Machine-payable request"
              },
              {
                "method": "tempo",
                "intent": "charge",
                "amount": "500000",
                "currency": "pathUSD",
                "decimals": 6,
                "description": "Machine-payable request"
              }
            ],
            "runtime": {
              "protocol": "mpp",
              "realm": "astro.dutchdata.io",
              "intent": "charge",
              "challenge_header": "WWW-Authenticate",
              "credential_header": "Authorization",
              "receipt_header": "payment-receipt",
              "methods": [
                {
                  "method": "stripe",
                  "network_id": "internal",
                  "currency": "usd",
                  "decimals": 2,
                  "payment_method_types": [
                    "card"
                  ]
                },
                {
                  "method": "tempo",
                  "currency": "0x20C000000000000000000000b9537d11c60E8b50",
                  "recipient": "0xa783B7548aF268666E4FbfaCbf5B18A19d87445d",
                  "chain_id": 4217,
                  "decimals": 6
                }
              ]
            }
          },
          "x402": {
            "version": 2,
            "scheme": "exact",
            "asset": "USDC",
            "extensions": {
              "bazaar": {
                "info": {
                  "input": {
                    "type": "http",
                    "method": "GET",
                    "bodyType": null,
                    "example": {
                      "path": "/api/full_chart/dt/1767225600000"
                    }
                  },
                  "output": {
                    "type": "json",
                    "mimeType": "application/json"
                  }
                },
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "description": "x402 Bazaar discovery metadata",
                  "properties": {
                    "input": {
                      "type": "object",
                      "properties": {
                        "queryParams": {
                          "type": "object",
                          "properties": {
                            "unix_ms_utc": {
                              "type": "string",
                              "in": "path",
                              "description": "path parameter"
                            }
                          }
                        }
                      }
                    },
                    "output": {
                      "type": "object",
                      "properties": {
                        "example": {
                          "mimeType": "application/json",
                          "schema": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "planet": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 11
                                },
                                "sign": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 11
                                },
                                "deg_min_sec": {
                                  "type": "string"
                                },
                                "house_num": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 12
                                },
                                "is_rx": {
                                  "type": "boolean"
                                },
                                "lat": {
                                  "type": "number"
                                }
                              },
                              "required": [
                                "planet",
                                "sign",
                                "deg_min_sec",
                                "house_num",
                                "is_rx",
                                "lat"
                              ]
                            }
                          },
                          "example": [
                            {
                              "planet": 0,
                              "sign": 9,
                              "deg_min_sec": "10º15'30\"",
                              "house_num": 1,
                              "is_rx": false,
                              "lat": 0.0001
                            }
                          ]
                        }
                      }
                    }
                  }
                }
              }
            },
            "accepts": [
              {
                "scheme": "exact",
                "network": "eip155:8453",
                "amount": "500000",
                "payTo": "0xa783B7548aF268666E4FbfaCbf5B18A19d87445d",
                "maxTimeoutSeconds": 300,
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "extra": {
                  "assetTransferMethod": "eip3009",
                  "name": "USD Coin",
                  "version": "2"
                }
              }
            ]
          }
        },
        "responses": {
          "200": {
            "description": "Full astrological chart",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "planet": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 11
                      },
                      "sign": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 11
                      },
                      "deg_min_sec": {
                        "type": "string"
                      },
                      "house_num": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 12
                      },
                      "is_rx": {
                        "type": "boolean"
                      },
                      "lat": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "planet",
                      "sign",
                      "deg_min_sec",
                      "house_num",
                      "is_rx",
                      "lat"
                    ]
                  }
                },
                "example": [
                  {
                    "planet": 0,
                    "sign": 9,
                    "deg_min_sec": "10º15'30\"",
                    "house_num": 1,
                    "is_rx": false,
                    "lat": 0.0001
                  }
                ]
              }
            }
          },
          "402": {
            "description": "Payment required; response headers contain authoritative MPP and x402 offers"
          }
        }
      }
    },
    "/api/mundane_chart": {
      "post": {
        "operationId": "post__api_mundane_chart",
        "summary": "Mundane (transit-to-transit) aspect time series over a date range",
        "description": "Mundane chart",
        "tags": [
          "data"
        ],
        "parameters": [],
        "x-example": {
          "path": "/api/mundane_chart",
          "request": {
            "aspect_context": 1,
            "contact_uuid": null,
            "y_0": 2026,
            "m_0": 7,
            "d_0": 1,
            "y_1": 2026,
            "m_1": 8,
            "d_1": 1,
            "q": 24,
            "t_f1": [
              0,
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9
            ],
            "n_f2": [
              0,
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9
            ]
          },
          "response": {
            "data": [
              [
                0.0
              ]
            ],
            "labels": [
              "2026-07-01T00:00:00Z"
            ],
            "metadata": [
              []
            ]
          }
        },
        "x-price": {
          "amountMinor": 50,
          "currency": "USD",
          "display": "$0.50"
        },
        "x-payment-info": {
          "offers": [
            {
              "method": "stripe",
              "intent": "charge",
              "amount": "50",
              "currency": "usd",
              "decimals": 2,
              "description": "Mundane chart"
            },
            {
              "method": "tempo",
              "intent": "charge",
              "amount": "500000",
              "currency": "pathUSD",
              "decimals": 6,
              "description": "Mundane chart"
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.50"
          },
          "protocols": [
            {
              "mpp": {
                "method": "stripe",
                "intent": "charge",
                "currency": "usd"
              }
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "pathUSD"
              }
            },
            {
              "x402": {
                "version": 2,
                "scheme": "exact",
                "asset": "USDC"
              }
            }
          ]
        },
        "x-payment": {
          "authority": "runtime HTTP 402 response",
          "mpp": {
            "offers": [
              {
                "method": "stripe",
                "intent": "charge",
                "amount": "50",
                "currency": "usd",
                "decimals": 2,
                "description": "Machine-payable request"
              },
              {
                "method": "tempo",
                "intent": "charge",
                "amount": "500000",
                "currency": "pathUSD",
                "decimals": 6,
                "description": "Machine-payable request"
              }
            ],
            "runtime": {
              "protocol": "mpp",
              "realm": "astro.dutchdata.io",
              "intent": "charge",
              "challenge_header": "WWW-Authenticate",
              "credential_header": "Authorization",
              "receipt_header": "payment-receipt",
              "methods": [
                {
                  "method": "stripe",
                  "network_id": "internal",
                  "currency": "usd",
                  "decimals": 2,
                  "payment_method_types": [
                    "card"
                  ]
                },
                {
                  "method": "tempo",
                  "currency": "0x20C000000000000000000000b9537d11c60E8b50",
                  "recipient": "0xa783B7548aF268666E4FbfaCbf5B18A19d87445d",
                  "chain_id": 4217,
                  "decimals": 6
                }
              ]
            }
          },
          "x402": {
            "version": 2,
            "scheme": "exact",
            "asset": "USDC",
            "extensions": {
              "bazaar": {
                "info": {
                  "input": {
                    "type": "http",
                    "method": "POST",
                    "bodyType": "json",
                    "example": {
                      "aspect_context": 1,
                      "contact_uuid": null,
                      "y_0": 2026,
                      "m_0": 7,
                      "d_0": 1,
                      "y_1": 2026,
                      "m_1": 8,
                      "d_1": 1,
                      "q": 24,
                      "t_f1": [
                        0,
                        1,
                        2,
                        3,
                        4,
                        5,
                        6,
                        7,
                        8,
                        9
                      ],
                      "n_f2": [
                        0,
                        1,
                        2,
                        3,
                        4,
                        5,
                        6,
                        7,
                        8,
                        9
                      ]
                    }
                  },
                  "output": {
                    "type": "msgpack",
                    "mimeType": "application/msgpack"
                  }
                },
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "description": "x402 Bazaar discovery metadata",
                  "properties": {
                    "input": {
                      "type": "object",
                      "properties": {
                        "body": {
                          "type": "object",
                          "properties": {
                            "aspect_context": {
                              "type": "integer",
                              "enum": [
                                0,
                                1,
                                2
                              ]
                            },
                            "contact_uuid": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "format": "uuid"
                            },
                            "y_0": {
                              "type": "integer"
                            },
                            "m_0": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 12
                            },
                            "d_0": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 31
                            },
                            "y_1": {
                              "type": "integer"
                            },
                            "m_1": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 12
                            },
                            "d_1": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 31
                            },
                            "q": {
                              "type": "integer",
                              "minimum": 1
                            },
                            "t_f1": {
                              "type": "array",
                              "items": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 11
                              }
                            },
                            "n_f2": {
                              "type": "array",
                              "items": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 11
                              }
                            }
                          },
                          "required": [
                            "aspect_context",
                            "y_0",
                            "m_0",
                            "d_0",
                            "y_1",
                            "m_1",
                            "d_1",
                            "q",
                            "t_f1",
                            "n_f2"
                          ]
                        }
                      }
                    },
                    "output": {
                      "type": "object",
                      "properties": {
                        "example": {
                          "mimeType": "application/msgpack",
                          "schema": {
                            "type": "object",
                            "properties": {
                              "data": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              },
                              "labels": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "metadata": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "object"
                                  }
                                }
                              }
                            },
                            "required": [
                              "data",
                              "labels",
                              "metadata"
                            ]
                          },
                          "example": {
                            "data": [
                              [
                                0.0
                              ]
                            ],
                            "labels": [
                              "2026-07-01T00:00:00Z"
                            ],
                            "metadata": [
                              []
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "accepts": [
              {
                "scheme": "exact",
                "network": "eip155:8453",
                "amount": "500000",
                "payTo": "0xa783B7548aF268666E4FbfaCbf5B18A19d87445d",
                "maxTimeoutSeconds": 300,
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "extra": {
                  "assetTransferMethod": "eip3009",
                  "name": "USD Coin",
                  "version": "2"
                }
              }
            ]
          }
        },
        "responses": {
          "200": {
            "description": "Mundane chart",
            "content": {
              "application/msgpack": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      }
                    },
                    "labels": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "metadata": {
                      "type": "array",
                      "items": {
                        "type": "array",
                        "items": {
                          "type": "object"
                        }
                      }
                    }
                  },
                  "required": [
                    "data",
                    "labels",
                    "metadata"
                  ]
                },
                "example": {
                  "data": [
                    [
                      0.0
                    ]
                  ],
                  "labels": [
                    "2026-07-01T00:00:00Z"
                  ],
                  "metadata": [
                    []
                  ]
                }
              }
            }
          },
          "402": {
            "description": "Payment required; response headers contain authoritative MPP and x402 offers"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "aspect_context": {
                    "type": "integer",
                    "enum": [
                      0,
                      1,
                      2
                    ]
                  },
                  "contact_uuid": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "format": "uuid"
                  },
                  "y_0": {
                    "type": "integer"
                  },
                  "m_0": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 12
                  },
                  "d_0": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 31
                  },
                  "y_1": {
                    "type": "integer"
                  },
                  "m_1": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 12
                  },
                  "d_1": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 31
                  },
                  "q": {
                    "type": "integer",
                    "minimum": 1
                  },
                  "t_f1": {
                    "type": "array",
                    "items": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 11
                    }
                  },
                  "n_f2": {
                    "type": "array",
                    "items": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 11
                    }
                  }
                },
                "required": [
                  "aspect_context",
                  "y_0",
                  "m_0",
                  "d_0",
                  "y_1",
                  "m_1",
                  "d_1",
                  "q",
                  "t_f1",
                  "n_f2"
                ]
              },
              "example": {
                "aspect_context": 1,
                "contact_uuid": null,
                "y_0": 2026,
                "m_0": 7,
                "d_0": 1,
                "y_1": 2026,
                "m_1": 8,
                "d_1": 1,
                "q": 24,
                "t_f1": [
                  0,
                  1,
                  2,
                  3,
                  4,
                  5,
                  6,
                  7,
                  8,
                  9
                ],
                "n_f2": [
                  0,
                  1,
                  2,
                  3,
                  4,
                  5,
                  6,
                  7,
                  8,
                  9
                ]
              }
            }
          }
        }
      }
    },
    "/api/transit_chart/inline": {
      "post": {
        "operationId": "post__api_transit_chart_inline",
        "summary": "Transit aspect time series with birth data supplied inline (no account)",
        "description": "Inline transit chart",
        "tags": [
          "data"
        ],
        "parameters": [],
        "x-example": {
          "path": "/api/transit_chart/inline",
          "request": {
            "contact": {
              "name": "Example",
              "is_main": false,
              "relationship": "self",
              "birth": {
                "year": 1990,
                "month": 6,
                "date": 15,
                "hour": 14,
                "minute": 30,
                "timezone": "America/New_York",
                "location": {
                  "country": "US",
                  "state": "NY",
                  "city": "New York",
                  "lat": 40.7128,
                  "lon": -74.006
                }
              }
            },
            "chart": {
              "aspect_context": 0,
              "contact_uuid": null,
              "y_0": 2026,
              "m_0": 7,
              "d_0": 1,
              "y_1": 2026,
              "m_1": 8,
              "d_1": 1,
              "q": 24,
              "t_f1": [
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9
              ],
              "n_f2": [
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9
              ]
            }
          },
          "response": {
            "data": [
              [
                0.0
              ]
            ],
            "labels": [
              "2026-07-01T00:00:00Z"
            ],
            "metadata": [
              []
            ]
          }
        },
        "x-price": {
          "amountMinor": 50,
          "currency": "USD",
          "display": "$0.50"
        },
        "x-payment-info": {
          "offers": [
            {
              "method": "stripe",
              "intent": "charge",
              "amount": "50",
              "currency": "usd",
              "decimals": 2,
              "description": "Inline transit chart"
            },
            {
              "method": "tempo",
              "intent": "charge",
              "amount": "500000",
              "currency": "pathUSD",
              "decimals": 6,
              "description": "Inline transit chart"
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.50"
          },
          "protocols": [
            {
              "mpp": {
                "method": "stripe",
                "intent": "charge",
                "currency": "usd"
              }
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "pathUSD"
              }
            },
            {
              "x402": {
                "version": 2,
                "scheme": "exact",
                "asset": "USDC"
              }
            }
          ]
        },
        "x-payment": {
          "authority": "runtime HTTP 402 response",
          "mpp": {
            "offers": [
              {
                "method": "stripe",
                "intent": "charge",
                "amount": "50",
                "currency": "usd",
                "decimals": 2,
                "description": "Machine-payable request"
              },
              {
                "method": "tempo",
                "intent": "charge",
                "amount": "500000",
                "currency": "pathUSD",
                "decimals": 6,
                "description": "Machine-payable request"
              }
            ],
            "runtime": {
              "protocol": "mpp",
              "realm": "astro.dutchdata.io",
              "intent": "charge",
              "challenge_header": "WWW-Authenticate",
              "credential_header": "Authorization",
              "receipt_header": "payment-receipt",
              "methods": [
                {
                  "method": "stripe",
                  "network_id": "internal",
                  "currency": "usd",
                  "decimals": 2,
                  "payment_method_types": [
                    "card"
                  ]
                },
                {
                  "method": "tempo",
                  "currency": "0x20C000000000000000000000b9537d11c60E8b50",
                  "recipient": "0xa783B7548aF268666E4FbfaCbf5B18A19d87445d",
                  "chain_id": 4217,
                  "decimals": 6
                }
              ]
            }
          },
          "x402": {
            "version": 2,
            "scheme": "exact",
            "asset": "USDC",
            "extensions": {
              "bazaar": {
                "info": {
                  "input": {
                    "type": "http",
                    "method": "POST",
                    "bodyType": "json",
                    "example": {
                      "contact": {
                        "name": "Example",
                        "is_main": false,
                        "relationship": "self",
                        "birth": {
                          "year": 1990,
                          "month": 6,
                          "date": 15,
                          "hour": 14,
                          "minute": 30,
                          "timezone": "America/New_York",
                          "location": {
                            "country": "US",
                            "state": "NY",
                            "city": "New York",
                            "lat": 40.7128,
                            "lon": -74.006
                          }
                        }
                      },
                      "chart": {
                        "aspect_context": 0,
                        "contact_uuid": null,
                        "y_0": 2026,
                        "m_0": 7,
                        "d_0": 1,
                        "y_1": 2026,
                        "m_1": 8,
                        "d_1": 1,
                        "q": 24,
                        "t_f1": [
                          0,
                          1,
                          2,
                          3,
                          4,
                          5,
                          6,
                          7,
                          8,
                          9
                        ],
                        "n_f2": [
                          0,
                          1,
                          2,
                          3,
                          4,
                          5,
                          6,
                          7,
                          8,
                          9
                        ]
                      }
                    }
                  },
                  "output": {
                    "type": "msgpack",
                    "mimeType": "application/msgpack"
                  }
                },
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "description": "x402 Bazaar discovery metadata",
                  "properties": {
                    "input": {
                      "type": "object",
                      "properties": {
                        "body": {
                          "type": "object",
                          "properties": {
                            "contact": {
                              "anyOf": [
                                {
                                  "$ref": "#/components/schemas/Contact"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "chart": {
                              "$ref": "#/components/schemas/ChartRequest"
                            }
                          },
                          "required": [
                            "chart"
                          ]
                        }
                      }
                    },
                    "output": {
                      "type": "object",
                      "properties": {
                        "example": {
                          "mimeType": "application/msgpack",
                          "schema": {
                            "type": "object",
                            "properties": {
                              "data": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              },
                              "labels": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "metadata": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "object"
                                  }
                                }
                              }
                            },
                            "required": [
                              "data",
                              "labels",
                              "metadata"
                            ]
                          },
                          "example": {
                            "data": [
                              [
                                0.0
                              ]
                            ],
                            "labels": [
                              "2026-07-01T00:00:00Z"
                            ],
                            "metadata": [
                              []
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "accepts": [
              {
                "scheme": "exact",
                "network": "eip155:8453",
                "amount": "500000",
                "payTo": "0xa783B7548aF268666E4FbfaCbf5B18A19d87445d",
                "maxTimeoutSeconds": 300,
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "extra": {
                  "assetTransferMethod": "eip3009",
                  "name": "USD Coin",
                  "version": "2"
                }
              }
            ]
          }
        },
        "responses": {
          "200": {
            "description": "Inline transit chart",
            "content": {
              "application/msgpack": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      }
                    },
                    "labels": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "metadata": {
                      "type": "array",
                      "items": {
                        "type": "array",
                        "items": {
                          "type": "object"
                        }
                      }
                    }
                  },
                  "required": [
                    "data",
                    "labels",
                    "metadata"
                  ]
                },
                "example": {
                  "data": [
                    [
                      0.0
                    ]
                  ],
                  "labels": [
                    "2026-07-01T00:00:00Z"
                  ],
                  "metadata": [
                    []
                  ]
                }
              }
            }
          },
          "402": {
            "description": "Payment required; response headers contain authoritative MPP and x402 offers"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "contact": {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/Contact"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "chart": {
                    "$ref": "#/components/schemas/ChartRequest"
                  }
                },
                "required": [
                  "chart"
                ]
              },
              "example": {
                "contact": {
                  "name": "Example",
                  "is_main": false,
                  "relationship": "self",
                  "birth": {
                    "year": 1990,
                    "month": 6,
                    "date": 15,
                    "hour": 14,
                    "minute": 30,
                    "timezone": "America/New_York",
                    "location": {
                      "country": "US",
                      "state": "NY",
                      "city": "New York",
                      "lat": 40.7128,
                      "lon": -74.006
                    }
                  }
                },
                "chart": {
                  "aspect_context": 0,
                  "contact_uuid": null,
                  "y_0": 2026,
                  "m_0": 7,
                  "d_0": 1,
                  "y_1": 2026,
                  "m_1": 8,
                  "d_1": 1,
                  "q": 24,
                  "t_f1": [
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9
                  ],
                  "n_f2": [
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9
                  ]
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "RichLocation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "city": {
            "type": "string"
          },
          "region_code": {
            "type": "string"
          },
          "country_code": {
            "type": "string"
          },
          "lat": {
            "type": "number"
          },
          "lon": {
            "type": "number"
          },
          "timezone": {
            "type": "string"
          },
          "population": {
            "type": "integer"
          }
        },
        "required": [
          "id",
          "city",
          "region_code",
          "country_code",
          "lat",
          "lon",
          "timezone",
          "population"
        ]
      },
      "Contact": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "is_main": {
            "type": "boolean"
          },
          "relationship": {
            "type": "string"
          },
          "birth": {
            "type": "object",
            "properties": {
              "year": {
                "type": "integer"
              },
              "month": {
                "type": "integer"
              },
              "date": {
                "type": "integer"
              },
              "hour": {
                "type": "integer"
              },
              "minute": {
                "type": "integer"
              },
              "timezone": {
                "type": "string"
              },
              "location": {
                "type": "object",
                "properties": {
                  "country": {
                    "type": "string"
                  },
                  "state": {
                    "type": "string"
                  },
                  "city": {
                    "type": "string"
                  },
                  "lat": {
                    "type": "number"
                  },
                  "lon": {
                    "type": "number"
                  }
                },
                "required": [
                  "country",
                  "state",
                  "city",
                  "lat",
                  "lon"
                ]
              }
            },
            "required": [
              "year",
              "month",
              "date",
              "hour",
              "minute",
              "timezone",
              "location"
            ]
          }
        },
        "required": [
          "name",
          "birth",
          "relationship"
        ]
      },
      "ChartRequest": {
        "type": "object",
        "properties": {
          "aspect_context": {
            "type": "integer",
            "enum": [
              0,
              1,
              2
            ]
          },
          "contact_uuid": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "y_0": {
            "type": "integer"
          },
          "m_0": {
            "type": "integer",
            "minimum": 1,
            "maximum": 12
          },
          "d_0": {
            "type": "integer",
            "minimum": 1,
            "maximum": 31
          },
          "y_1": {
            "type": "integer"
          },
          "m_1": {
            "type": "integer",
            "minimum": 1,
            "maximum": 12
          },
          "d_1": {
            "type": "integer",
            "minimum": 1,
            "maximum": 31
          },
          "q": {
            "type": "integer",
            "minimum": 1
          },
          "t_f1": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 11
            }
          },
          "n_f2": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 11
            }
          }
        },
        "required": [
          "aspect_context",
          "y_0",
          "m_0",
          "d_0",
          "y_1",
          "m_1",
          "d_1",
          "q",
          "t_f1",
          "n_f2"
        ]
      }
    }
  }
}