{
  "name": "promptpiggy-ai-subscription-prices",
  "title": "AI subscription prices by country (promptpiggy.com)",
  "homepage": "https://promptpiggy.com",
  "created": "2026-10-29T19:46:41.066Z",
  "licenses": [
    {
      "name": "CC-BY-4.0",
      "path": "https://creativecommons.org/licenses/by/4.0/",
      "title": "Creative Commons Attribution 4.0 International"
    }
  ],
  "sources": [
    {
      "title": "promptpiggy.com price collection",
      "path": "https://promptpiggy.com"
    },
    {
      "title": "European Central Bank euro reference rates",
      "path": "https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/index.en.html"
    },
    {
      "title": "World Bank WDI PA.NUS.PRVT.PP (CC BY 4.0)",
      "path": "https://data.worldbank.org/indicator/PA.NUS.PRVT.PP"
    }
  ],
  "resources": [
    {
      "name": "prices",
      "path": "https://promptpiggy.com/data/prices.csv",
      "format": "csv",
      "mediatype": "text/csv",
      "schema": {
        "fields": [
          {
            "name": "provider",
            "type": "string",
            "description": "Provider ID, e.g. chatgpt, claude, gemini",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "provider_name",
            "type": "string",
            "description": "Provider display name",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "plan",
            "type": "string",
            "description": "Plan ID within the provider, e.g. plus, pro",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "plan_name",
            "type": "string",
            "description": "Plan display name",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "country",
            "type": "string",
            "description": "Country, ISO 3166-1 alpha-2 (e.g. DE, US)",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "currency",
            "type": "string",
            "description": "Currency, ISO 4217 (e.g. EUR, USD)",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "billing_interval",
            "type": "string",
            "description": "Billing: month or year; the price is always converted to one month",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "price_monthly",
            "type": "number",
            "description": "Price per month in local currency, including VAT – except when excludes_tax = true",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "price_monthly_net",
            "type": "number",
            "description": "Price per month before tax, if known"
          },
          {
            "name": "excludes_tax",
            "type": "boolean",
            "description": "true: price before tax because the country has no single rate (US, Canada); only comparable within that country",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "tax_included_at_source",
            "type": "boolean",
            "description": "Whether the provider itself shows the price including tax (false: grossed up by us with the tax rate, or net)",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "price_monthly_eur",
            "type": "number",
            "description": "price_monthly converted to euros at the ECB reference rate (approximate)",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "fx_rate",
            "type": "number",
            "description": "ECB rate used: units of the currency per 1 euro",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "fx_date",
            "type": "date",
            "description": "Date of the ECB rate",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "price_monthly_ppp_intl",
            "type": "number",
            "description": "Price per month adjusted for purchasing power, in international dollars (World Bank PPP, private consumption)"
          },
          {
            "name": "source",
            "type": "string",
            "description": "How the price was collected: api (pricing data loaded by the provider's page), html (displayed text), manual (checked by hand, with evidence)",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "source_url",
            "type": "string",
            "description": "Page the price comes from",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "fetched_at",
            "type": "datetime",
            "description": "Time of retrieval (ISO 8601, UTC)",
            "constraints": {
              "required": true
            }
          }
        ]
      }
    },
    {
      "name": "price-history",
      "path": "https://promptpiggy.com/data/price-history.csv",
      "format": "csv",
      "mediatype": "text/csv",
      "schema": {
        "fields": [
          {
            "name": "provider",
            "type": "string",
            "description": "Provider ID, e.g. chatgpt, claude, gemini",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "plan",
            "type": "string",
            "description": "Plan ID within the provider, e.g. plus, pro",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "country",
            "type": "string",
            "description": "Country, ISO 3166-1 alpha-2 (e.g. DE, US)",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "billing_interval",
            "type": "string",
            "description": "Billing: month or year; the price is always converted to one month",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "currency",
            "type": "string",
            "description": "Currency, ISO 4217 (e.g. EUR, USD)",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "price_monthly",
            "type": "number",
            "description": "Price per month in local currency, including VAT – except when excludes_tax = true",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "price_monthly_net",
            "type": "number",
            "description": "Price per month before tax, if known"
          },
          {
            "name": "excludes_tax",
            "type": "boolean",
            "description": "true: price before tax because the country has no single rate (US, Canada); only comparable within that country",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "valid_from",
            "type": "date",
            "description": "First day on which the price applies in our records",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "valid_to",
            "type": "date",
            "description": "Last day on which the price applied; empty = still current"
          },
          {
            "name": "origin",
            "type": "string",
            "description": "Where the row comes from: archive (daily archive) changelog (change log, before the archive started) or current (published state, newer than the latest archive file)",
            "constraints": {
              "required": true
            }
          }
        ]
      }
    },
    {
      "name": "countries",
      "path": "https://promptpiggy.com/data/countries.csv",
      "format": "csv",
      "mediatype": "text/csv",
      "schema": {
        "fields": [
          {
            "name": "country",
            "type": "string",
            "description": "Country, ISO 3166-1 alpha-2 (e.g. DE, US)",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "iso3",
            "type": "string",
            "description": "Country, ISO 3166-1 alpha-3",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "name_en",
            "type": "string",
            "description": "Country name in English",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "name_de",
            "type": "string",
            "description": "Country name in German",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "currency",
            "type": "string",
            "description": "Currency, ISO 4217 (e.g. EUR, USD)",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "eu",
            "type": "boolean",
            "description": "EU member state",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "tax_name",
            "type": "string",
            "description": "Local name of the consumption tax (VAT, MwSt., GST …)",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "vat_standard_rate",
            "type": "number",
            "description": "Standard rate in percent; empty if there is no nationwide rate"
          },
          {
            "name": "prices_incl_tax",
            "type": "boolean",
            "description": "Whether consumer prices there are usually shown including tax",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "tax_source_url",
            "type": "string",
            "description": "Source for the tax rate and name",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "ppp_factor",
            "type": "number",
            "description": "Purchasing power parity: units of ppp_currency per international dollar (World Bank PA.NUS.PRVT.PP)",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "ppp_currency",
            "type": "string",
            "description": "Currency in which ppp_factor is expressed",
            "constraints": {
              "required": true
            }
          },
          {
            "name": "ppp_year",
            "type": "number",
            "description": "Reference year of the PPP factor",
            "constraints": {
              "required": true
            }
          }
        ]
      }
    }
  ]
}
