x402 List Submit a serviceSubmit

AfriRef - Pan-African government reference data

payment-readyonline

payment-ready until 2026-10-27

Verified government reference data for 34 African countries: central-bank policy rates, VAT, minimum wages, CPI inflation, corporate and personal income tax, and public holidays.

Call it x402 v2

x402 v2

Base URL
https://afriref.dev
Payment
x402 v2, header channel
$ curl -i 'https://afriref.dev/v1/all'

An unpaid request returns HTTP 402 with the payment terms. Sign a payment authorization, then retry with the PAYMENT-SIGNATURE header.

Endpoints 18 paid routes on afriref.dev

GET/v1/allBase$0.02since 07-21
POST/v1/answers/income-taxBase$0.02since 10-14
POST/v1/answers/payrollBase$0.05since 10-14
POST/v1/answers/settlement-dateBase$0.02since 10-14
POST/v1/answers/statutory-interestBase$0.02since 10-14
POST/v1/answers/vatBase$0.01since 07-21
POST/v1/answers/wage-checkBase$0.02since 07-21
POST/v1/answers/working-daysBase$0.002since 10-14

10 more in Example 402 response

Prices as captured in the 402 response: median $0.0065 across the 18 endpoints.

Example 402 response

Endpoints and prices

Current paid endpoints; minimum quoted prices in USD where available; first capture dates in UTC
MethodPathDescriptionPriceNetworkAsset402 channelCaptured
GET/v1/allSnapshot of every series, all countries$0.02BaseUSDCheadersince 07-21
POST/v1/answers/income-taxStatutory income tax on a taxable-income figure: per-bracket workings, effective + marginal rate$0.02BaseUSDCheadersince 10-14
POST/v1/answers/payrollGross-to-net payroll: PAYE + statutory employee deductions → net take-home (Nigeria, Kenya)$0.05BaseUSDCheadersince 10-14
POST/v1/answers/settlement-dateSettlement/value date: T+n business days across national statutory calendars (intersected), with the market cycle cited to its primary source and a per-day trail$0.02BaseUSDCheadersince 10-14
POST/v1/answers/statutory-interestSimple statutory interest on a principal at the cited statutory-interest series rate (Actual/365 simple). A series with no numeric rate is refused free$0.02BaseUSDCheadersince 10-14
POST/v1/answers/vatVAT rate gross-up or extract for an amount: net/tax/gross incl. statutory levy components$0.01BaseUSDCheadersince 07-21
POST/v1/answers/wage-checkWage check: is this salary legal vs statutory minimum wage? Verdict + margin + instrument$0.02BaseUSDCheadersince 07-21
POST/v1/answers/working-daysWorking days / next working day in a date range: weekends + gazetted public holidays$0.002BaseUSDCheadersince 10-14
GET/v1/certified/za/vatSouth Africa: VAT standard rate, cited JSON with source URL, effective date and last_confirmed. GET /v1/za/vat.$0.10BaseUSDCheadersince 10-14
GET/v1/eg/cpiEgypt: CPI inflation (year-on-year), cited JSON with source URL, effective date and last_confirmed. GET /v1/eg/cpi.$0.003BaseUSDCheadersince 10-14
GET/v1/ke/income-taxKenya: Personal income tax brackets, cited JSON with source URL, effective date and last_confirmed. GET /v1/ke/income-tax.$0.003BaseUSDCheadersince 10-14
GET/v1/ke/policy-rateKenya: CBK central bank rate, cited JSON with source URL, effective date and last_confirmed. GET /v1/ke/policy-rate.$0.003BaseUSDCheadersince 10-14
GET/v1/ng/minimum-wageNigeria: National minimum wage, cited JSON with source URL, effective date and last_confirmed. GET /v1/ng/minimum-wage.$0.003BaseUSDCheadersince 10-14
GET/v1/ng/vatNigeria: VAT standard rate, cited JSON with source URL, effective date and last_confirmed. GET /v1/ng/vat.$0.003BaseUSDCheadersince 10-14
POST/v1/vat/determineCross-border VAT treatment for a digital-services sale: place of supply, who accounts, rate basis, registration trigger · the applied rule cited to the statute (EU, UK & South Africa; defined supply pairs)$0.05BaseUSDCheadersince 10-14
GET/v1/za/minimum-wageSouth Africa: National Minimum Wage (hourly), cited JSON with source URL, effective date and last_confirmed. GET /v1/za/minimum-wage.$0.003BaseUSDCheadersince 10-14
GET/v1/za/vatSouth Africa: VAT standard rate, cited JSON with source URL, effective date and last_confirmed. GET /v1/za/vat.$0.003BaseUSDCheadersince 10-14
GET/v1/za/vat/historySouth Africa: VAT standard rate, cited JSON with source URL, effective date and last_confirmed. GET /v1/za/vat.$0.003BaseUSDCheadersince 10-14

Payment evidence

402 payload captured at . Check evidence JSON · Measurement methodology.

First of 18 payloads captured by the monitor.

115 lines, scroll inside

{
  "error": "Payment required",
  "accepts": [
    {
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "payTo": "0x1F0409ccD20A2fb497d4DeCeF4E17e9d0688FeA6",
      "amount": "3000",
      "scheme": "exact",
      "network": "eip155:8453",
      "maxTimeoutSeconds": 300
    }
  ],
  "resource": {
    "url": "https://afriref.dev/v1/za/minimum-wage",
    "tags": [
      "minimum-wage",
      "south-africa",
      "reference-data",
      "wage"
    ],
    "iconUrl": "https://raw.githubusercontent.com/3L-GroupConsulting/afriref-mcp/main/logo.png",
    "mimeType": "application/json",
    "description": "Pan-African official government reference data as cited JSON, every covered country: income and corporate tax, VAT/GST, CPI inflation, central-bank policy rate, minimum wage, public holidays, business days, official exchange rate, statutory interest, social contributions. Each value has source URL, effective date, last_confirmed, stale. GET /v1/{country}/{series}, e.g. /v1/gh/policy-rate.",
    "serviceName": "Afriref - Africa reference data"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "type": "http",
          "method": "GET",
          "pathParams": {
            "series": "minimum-wage",
            "country": "za"
          },
          "queryParams": {}
        },
        "output": {
          "type": "json",
          "example": {
            "name": "Central bank policy rate",
            "note": "Shape only. Values are placeholders; pay to receive the live cited figure.",
            "unit": "%",
            "stale": false,
            "value": 0,
            "series": "policy-rate",
            "country": "GH",
            "source_url": "https://example.gov/official-source",
            "illustrative": true,
            "effective_from": "2026-01-01",
            "last_confirmed": "2026-01-01"
          }
        }
      },
      "schema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "object",
            "required": [
              "type",
              "method"
            ],
            "properties": {
              "type": {
                "type": "string",
                "const": "http"
              },
              "method": {
                "enum": [
                  "GET"
                ],
                "type": "string"
              },
              "pathParams": {
                "type": "object",
                "required": [
                  "country",
                  "series"
                ],
                "properties": {
                  "series": {
                    "type": "string",
                    "description": "Reference series id"
                  },
                  "country": {
                    "type": "string",
                    "description": "ISO country code"
                  }
                }
              },
              "queryParams": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          }
        }
      },
      "routeTemplate": "/v1/:country/:series"
    }
  },
  "free_sample": "Every GH series is free on this service (e.g. /v1/gh/policy-rate). Card credit: /pricing.",
  "x402Version": 2
}
Other captured 402 responses (17)

Captured payload 2 of 18

{
  "error": "Payment required",
  "accepts": [
    {
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "payTo": "0x1F0409ccD20A2fb497d4DeCeF4E17e9d0688FeA6",
      "amount": "3000",
      "scheme": "exact",
      "network": "eip155:8453",
      "maxTimeoutSeconds": 300
    }
  ],
  "resource": {
    "url": "https://afriref.dev/v1/za/vat/history",
    "tags": [
      "vat",
      "south-africa",
      "reference-data",
      "tax",
      "gst",
      "sars"
    ],
    "iconUrl": "https://raw.githubusercontent.com/3L-GroupConsulting/afriref-mcp/main/logo.png",
    "mimeType": "application/json",
    "description": "Pan-African official government reference data as cited JSON, every covered country: income and corporate tax, VAT/GST, CPI inflation, central-bank policy rate, minimum wage, public holidays, business days, official exchange rate, statutory interest, social contributions. Each value has source URL, effective date, last_confirmed, stale. GET /v1/{country}/{series}, e.g. /v1/gh/policy-rate.",
    "serviceName": "Afriref - Africa reference data"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "type": "http",
          "method": "GET",
          "pathParams": {
            "series": "vat",
            "country": "za"
          },
          "queryParams": {}
        },
        "output": {
          "type": "json",
          "example": {
            "name": "Central bank policy rate",
            "note": "Shape only. Values are placeholders; pay to receive the live cited figure.",
            "unit": "%",
            "stale": false,
            "value": 0,
            "series": "policy-rate",
            "country": "GH",
            "source_url": "https://example.gov/official-source",
            "illustrative": true,
            "effective_from": "2026-01-01",
            "last_confirmed": "2026-01-01"
          }
        }
      },
      "schema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "object",
            "required": [
              "type",
              "method"
            ],
            "properties": {
              "type": {
                "type": "string",
                "const": "http"
              },
              "method": {
                "enum": [
                  "GET"
                ],
                "type": "string"
              },
              "pathParams": {
                "type": "object",
                "required": [
                  "country",
                  "series"
                ],
                "properties": {
                  "series": {
                    "type": "string",
                    "description": "Reference series id"
                  },
                  "country": {
                    "type": "string",
                    "description": "ISO country code"
                  }
                }
              },
              "queryParams": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          }
        }
      },
      "routeTemplate": "/v1/:country/:series/history"
    }
  },
  "free_sample": "Every GH series is free on this service (e.g. /v1/gh/policy-rate). Card credit: /pricing.",
  "x402Version": 2
}

Captured payload 3 of 18

{
  "error": "Payment required",
  "accepts": [
    {
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "payTo": "0x1F0409ccD20A2fb497d4DeCeF4E17e9d0688FeA6",
      "amount": "20000",
      "scheme": "exact",
      "network": "eip155:8453",
      "maxTimeoutSeconds": 300
    }
  ],
  "free_key": "Free API key by email, no card, commercial use allowed: 50 calls a day on the computed answer endpoints (POST /v1/answers/* and POST /v1/vat/determine). POST /v1/keys/free {\"email\": \"...\"} or visit /free-key.",
  "resource": {
    "url": "https://afriref.dev/v1/answers/statutory-interest",
    "tags": [
      "statutory-interest",
      "interest-rates",
      "africa"
    ],
    "iconUrl": "https://raw.githubusercontent.com/3L-GroupConsulting/afriref-mcp/main/logo.png",
    "mimeType": "application/json",
    "description": "Simple statutory interest on a principal at the cited statutory-interest series rate (Actual/365 simple). A series with no numeric rate is refused free",
    "serviceName": "Afriref - Africa reference data"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "body": {
            "days": 30,
            "country": "bf",
            "principal": 1000
          },
          "type": "http",
          "method": "POST",
          "bodyType": "json"
        },
        "output": {
          "type": "json"
        }
      },
      "schema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "object",
            "required": [
              "type",
              "method",
              "bodyType",
              "body"
            ],
            "properties": {
              "body": {
                "type": "object",
                "required": [
                  "country",
                  "principal"
                ],
                "properties": {
                  "to": {
                    "type": "string",
                    "format": "date",
                    "description": "Period end, exclusive (YYYY-MM-DD, UTC)."
                  },
                  "days": {
                    "type": "number",
                    "description": "Day-count days, finite and greater than 0. Supply this, or from and to. If both are sent they must agree."
                  },
                  "from": {
                    "type": "string",
                    "format": "date",
                    "description": "Period start, inclusive (YYYY-MM-DD, UTC). With `to`: day count is to − from. `to` is exclusive."
                  },
                  "country": {
                    "enum": [
                      "ao",
                      "bf",
                      "bj",
                      "bw",
                      "cd",
                      "cf",
                      "cg",
                      "ci",
                      "cm",
                      "dz",
                      "eg",
                      "et",
                      "ga",
                      "gh",
                      "gq",
                      "ke",
                      "ls",
                      "ma",
                      "ml",
                      "mu",
                      "mz",
                      "na",
                      "ne",
                      "ng",
                      "rw",
                      "sn",
                      "sz",
                      "td",
                      "tg",
                      "tn",
                      "tz",
                      "ug",
                      "za",
                      "zm"
                    ],
                    "type": "string",
                    "description": "ISO country code that holds a statutory-interest series on this brand"
                  },
                  "receipt": {
                    "type": "boolean",
                    "description": "Optional. true adds an Ed25519 answer receipt on a paid 200, included in this price. Not a certified extract."
                  },
                  "principal": {
                    "type": "number",
                    "description": "Principal in the country's own currency, finite and greater than 0"
                  }
                }
              },
              "type": {
                "type": "string",
                "const": "http"
              },
              "method": {
                "enum": [
                  "POST"
                ],
                "type": "string"
              },
              "bodyType": {
                "enum": [
                  "json",
                  "form-data",
                  "text"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "output": {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "example": {
                "type": "object",
                "required": [
                  "status",
                  "rate",
                  "interest",
                  "workings"
                ],
                "properties": {
                  "days": {
                    "type": "number"
                  },
                  "rate": {
                    "type": "number",
                    "description": "Headline statutory-interest series rate, percent, after derived materialization"
                  },
                  "status": {
                    "enum": [
                      "ok"
                    ],
                    "type": "string"
                  },
                  "receipt": {
                    "type": "object",
                    "description": "Only when receipt=true on a paid 200. kind answer_receipt. Verify at /certified/public-key."
                  },
                  "interest": {
                    "type": "number",
                    "description": "principal × (rate/100) × (days/365), rounded to 2 decimal places"
                  },
                  "workings": {
                    "type": "string"
                  },
                  "principal": {
                    "type": "number"
                  },
                  "rate_unit": {
                    "type": "string"
                  },
                  "disclaimer": {
                    "type": "string"
                  },
                  "provenance": {
                    "type": "object",
                    "description": "The statutory instrument the answer rests on: effective_from, last_confirmed, official source URL, notes"
                  },
                  "limitations": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "day_count_basis": {
                    "type": "string",
                    "description": "actual/365_simple — no jurisdiction compounding"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "free_trial": "Try first: 3 free answer calls per day per IP. Add header X-Free-Trial: 1 (or ?free_trial=1) to this request to use one. Or buy card credit at /pricing.",
  "x402Version": 2
}

Captured payload 4 of 18

{
  "error": "Payment required",
  "accepts": [
    {
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "payTo": "0x1F0409ccD20A2fb497d4DeCeF4E17e9d0688FeA6",
      "amount": "20000",
      "scheme": "exact",
      "network": "eip155:8453",
      "maxTimeoutSeconds": 300
    }
  ],
  "free_key": "Free API key by email, no card, commercial use allowed: 50 calls a day on the computed answer endpoints (POST /v1/answers/* and POST /v1/vat/determine). POST /v1/keys/free {\"email\": \"...\"} or visit /free-key.",
  "resource": {
    "url": "https://afriref.dev/v1/answers/wage-check",
    "tags": [
      "wage-check",
      "minimum-wage",
      "salary",
      "africa"
    ],
    "iconUrl": "https://raw.githubusercontent.com/3L-GroupConsulting/afriref-mcp/main/logo.png",
    "mimeType": "application/json",
    "description": "Wage check: is this salary legal vs statutory minimum wage? Verdict + margin + instrument",
    "serviceName": "Afriref - Africa reference data"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "body": {
            "amount": 85000,
            "period": "month",
            "country": "ao"
          },
          "type": "http",
          "method": "POST",
          "bodyType": "json"
        },
        "output": {
          "type": "json"
        }
      },
      "schema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "object",
            "required": [
              "type",
              "method",
              "bodyType",
              "body"
            ],
            "properties": {
              "body": {
                "type": "object",
                "required": [
                  "country",
                  "amount",
                  "period"
                ],
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Wage to check, in the country's own currency"
                  },
                  "period": {
                    "enum": [
                      "month",
                      "day",
                      "hour",
                      "week"
                    ],
                    "type": "string",
                    "description": "Period the amount covers — must match the statutory floor's period (no guessed conversions)"
                  },
                  "country": {
                    "enum": [
                      "ao",
                      "bf",
                      "bj",
                      "bw",
                      "cd",
                      "cf",
                      "cg",
                      "ci",
                      "cm",
                      "dz",
                      "eg",
                      "et",
                      "ga",
                      "gh",
                      "gq",
                      "ke",
                      "ls",
                      "ma",
                      "ml",
                      "mu",
                      "mz",
                      "na",
                      "ne",
                      "ng",
                      "rw",
                      "sn",
                      "sz",
                      "td",
                      "tg",
                      "tn",
                      "tz",
                      "ug",
                      "za",
                      "zm"
                    ],
                    "type": "string",
                    "description": "ISO country code"
                  },
                  "receipt": {
                    "type": "boolean",
                    "description": "Optional. true adds an Ed25519 answer receipt on a paid 200, included in this price. Not a certified extract."
                  },
                  "schedule": {
                    "type": "string",
                    "description": "Optional. Measure against a sectoral, zonal or occupation-grade floor instead of the general one — 'above the national floor' is not the same as compliant. Valid keys per country: GET /catalog (wage_schedules_available). Unknown key is refused free with the list."
                  }
                }
              },
              "type": {
                "type": "string",
                "const": "http"
              },
              "method": {
                "enum": [
                  "POST"
                ],
                "type": "string"
              },
              "bodyType": {
                "enum": [
                  "json",
                  "form-data",
                  "text"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "output": {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "example": {
                "type": "object",
                "required": [
                  "status",
                  "verdict"
                ],
                "properties": {
                  "floor": {
                    "type": "object",
                    "description": "The statutory minimum: value, unit, period"
                  },
                  "margin": {
                    "type": "object",
                    "description": "amount and percent above/below the floor"
                  },
                  "status": {
                    "enum": [
                      "ok",
                      "not_comparable",
                      "no_statutory_minimum"
                    ],
                    "type": "string"
                  },
                  "receipt": {
                    "type": "object",
                    "description": "Only when receipt=true on a paid 200. kind answer_receipt. Verify at /certified/public-key."
                  },
                  "verdict": {
                    "enum": [
                      "above",
                      "at",
                      "below",
                      null
                    ],
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "workings": {
                    "type": "string"
                  },
                  "disclaimer": {
                    "type": "string"
                  },
                  "provenance": {
                    "type": "object",
                    "description": "The statutory instrument the answer rests on: effective_from, last_confirmed, official source URL, notes"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "free_trial": "Try first: 3 free answer calls per day per IP. Add header X-Free-Trial: 1 (or ?free_trial=1) to this request to use one. Or buy card credit at /pricing.",
  "x402Version": 2
}

Captured payload 5 of 18

{
  "error": "Payment required",
  "accepts": [
    {
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "payTo": "0x1F0409ccD20A2fb497d4DeCeF4E17e9d0688FeA6",
      "amount": "3000",
      "scheme": "exact",
      "network": "eip155:8453",
      "maxTimeoutSeconds": 300
    }
  ],
  "resource": {
    "url": "https://afriref.dev/v1/ng/minimum-wage",
    "tags": [
      "minimum-wage",
      "nigeria",
      "reference-data",
      "wage"
    ],
    "iconUrl": "https://raw.githubusercontent.com/3L-GroupConsulting/afriref-mcp/main/logo.png",
    "mimeType": "application/json",
    "description": "Pan-African official government reference data as cited JSON, every covered country: income and corporate tax, VAT/GST, CPI inflation, central-bank policy rate, minimum wage, public holidays, business days, official exchange rate, statutory interest, social contributions. Each value has source URL, effective date, last_confirmed, stale. GET /v1/{country}/{series}, e.g. /v1/gh/policy-rate.",
    "serviceName": "Afriref - Africa reference data"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "type": "http",
          "method": "GET",
          "pathParams": {
            "series": "minimum-wage",
            "country": "ng"
          },
          "queryParams": {}
        },
        "output": {
          "type": "json",
          "example": {
            "name": "Central bank policy rate",
            "note": "Shape only. Values are placeholders; pay to receive the live cited figure.",
            "unit": "%",
            "stale": false,
            "value": 0,
            "series": "policy-rate",
            "country": "GH",
            "source_url": "https://example.gov/official-source",
            "illustrative": true,
            "effective_from": "2026-01-01",
            "last_confirmed": "2026-01-01"
          }
        }
      },
      "schema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "object",
            "required": [
              "type",
              "method"
            ],
            "properties": {
              "type": {
                "type": "string",
                "const": "http"
              },
              "method": {
                "enum": [
                  "GET"
                ],
                "type": "string"
              },
              "pathParams": {
                "type": "object",
                "required": [
                  "country",
                  "series"
                ],
                "properties": {
                  "series": {
                    "type": "string",
                    "description": "Reference series id"
                  },
                  "country": {
                    "type": "string",
                    "description": "ISO country code"
                  }
                }
              },
              "queryParams": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          }
        }
      },
      "routeTemplate": "/v1/:country/:series"
    }
  },
  "free_sample": "Every GH series is free on this service (e.g. /v1/gh/policy-rate). Card credit: /pricing.",
  "x402Version": 2
}

Captured payload 6 of 18

{
  "error": "Payment required",
  "accepts": [
    {
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "payTo": "0x1F0409ccD20A2fb497d4DeCeF4E17e9d0688FeA6",
      "amount": "50000",
      "scheme": "exact",
      "network": "eip155:8453",
      "maxTimeoutSeconds": 300
    }
  ],
  "free_key": "Free API key by email, no card, commercial use allowed: 50 calls a day on the computed answer endpoints (POST /v1/answers/* and POST /v1/vat/determine). POST /v1/keys/free {\"email\": \"...\"} or visit /free-key.",
  "resource": {
    "url": "https://afriref.dev/v1/vat/determine",
    "tags": [
      "vat",
      "tax",
      "cross-border",
      "x402-sellers"
    ],
    "iconUrl": "https://raw.githubusercontent.com/3L-GroupConsulting/afriref-mcp/main/logo.png",
    "mimeType": "application/json",
    "description": "Cross-border VAT treatment for a digital-services sale: place of supply, who accounts, rate basis, registration trigger — the applied rule cited to the statute (EU, UK & South Africa; defined supply pairs)",
    "serviceName": "Afriref - Africa reference data"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "body": {
            "buyer_type": "unknown",
            "buyer_country": "de",
            "seller_country": "us"
          },
          "type": "http",
          "method": "POST",
          "bodyType": "json"
        },
        "output": {
          "type": "json"
        }
      },
      "schema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "object",
            "required": [
              "type",
              "method",
              "bodyType",
              "body"
            ],
            "properties": {
              "body": {
                "type": "object",
                "required": [
                  "seller_country",
                  "buyer_country"
                ],
                "properties": {
                  "receipt": {
                    "type": "boolean",
                    "description": "Optional. true adds an Ed25519 answer receipt on a paid 200, included in this price. Not a certified extract."
                  },
                  "buyer_type": {
                    "enum": [
                      "B2B",
                      "B2C",
                      "unknown"
                    ],
                    "type": "string",
                    "description": "unknown (default) = buyer identified only by wallet address — treated as B2C under default rules and explicitly flagged in the response"
                  },
                  "buyer_country": {
                    "type": "string",
                    "description": "Buyer's country, ISO 3166-1 alpha-2"
                  },
                  "seller_country": {
                    "type": "string",
                    "description": "Seller's country, ISO 3166-1 alpha-2 (EL accepted for Greece, UK for United Kingdom)"
                  }
                }
              },
              "type": {
                "type": "string",
                "const": "http"
              },
              "method": {
                "enum": [
                  "POST"
                ],
                "type": "string"
              },
              "bodyType": {
                "enum": [
                  "json",
                  "form-data",
                  "text"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "output": {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "example": {
                "type": "object",
                "required": [
                  "status",
                  "workings",
                  "disclaimer"
                ],
                "properties": {
                  "rule": {
                    "type": "object",
                    "description": "The applied rule: place_of_supply, who_accounts_for_vat, rate_basis, registration_or_threshold, reporting, statutory citation, notes"
                  },
                  "status": {
                    "enum": [
                      "ok"
                    ],
                    "type": "string",
                    "description": "Paid responses always carry a matched rule — out-of-scope pairs are refused free (422) before payment"
                  },
                  "receipt": {
                    "type": "object",
                    "description": "Only when receipt=true on a paid 200. kind answer_receipt. Verify at /certified/public-key."
                  },
                  "workings": {
                    "type": "array",
                    "description": "The classification reasoning that selected the rule"
                  },
                  "vida_flag": {
                    "type": "string",
                    "description": "Forthcoming EU ViDA changes affecting these rules (2027/2028/2030)"
                  },
                  "disclaimer": {
                    "type": "string"
                  },
                  "buyer_identity_flag": {
                    "type": "string",
                    "description": "Present when the buyer was unidentified: records the B2C-default assumption"
                  },
                  "eservices_definition": {
                    "type": "object",
                    "description": "What counts as an electronically-supplied service, with citation"
                  },
                  "destination_liability": {
                    "type": "object",
                    "description": "Present when a supplier-side treatment (e.g. SA zero-rating) coexists with a verified destination-country VAT obligation — carries the companion rule"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "x402Version": 2
}

Captured payload 7 of 18

{
  "error": "Payment required",
  "accepts": [
    {
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "payTo": "0x1F0409ccD20A2fb497d4DeCeF4E17e9d0688FeA6",
      "amount": "3000",
      "scheme": "exact",
      "network": "eip155:8453",
      "maxTimeoutSeconds": 300
    }
  ],
  "resource": {
    "url": "https://afriref.dev/v1/ke/income-tax",
    "tags": [
      "income-tax",
      "kenya",
      "reference-data",
      "tax",
      "kra"
    ],
    "iconUrl": "https://raw.githubusercontent.com/3L-GroupConsulting/afriref-mcp/main/logo.png",
    "mimeType": "application/json",
    "description": "Pan-African official government reference data as cited JSON, every covered country: income and corporate tax, VAT/GST, CPI inflation, central-bank policy rate, minimum wage, public holidays, business days, official exchange rate, statutory interest, social contributions. Each value has source URL, effective date, last_confirmed, stale. GET /v1/{country}/{series}, e.g. /v1/gh/policy-rate.",
    "serviceName": "Afriref - Africa reference data"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "type": "http",
          "method": "GET",
          "pathParams": {
            "series": "income-tax",
            "country": "ke"
          },
          "queryParams": {}
        },
        "output": {
          "type": "json",
          "example": {
            "name": "Central bank policy rate",
            "note": "Shape only. Values are placeholders; pay to receive the live cited figure.",
            "unit": "%",
            "stale": false,
            "value": 0,
            "series": "policy-rate",
            "country": "GH",
            "source_url": "https://example.gov/official-source",
            "illustrative": true,
            "effective_from": "2026-01-01",
            "last_confirmed": "2026-01-01"
          }
        }
      },
      "schema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "object",
            "required": [
              "type",
              "method"
            ],
            "properties": {
              "type": {
                "type": "string",
                "const": "http"
              },
              "method": {
                "enum": [
                  "GET"
                ],
                "type": "string"
              },
              "pathParams": {
                "type": "object",
                "required": [
                  "country",
                  "series"
                ],
                "properties": {
                  "series": {
                    "type": "string",
                    "description": "Reference series id"
                  },
                  "country": {
                    "type": "string",
                    "description": "ISO country code"
                  }
                }
              },
              "queryParams": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          }
        }
      },
      "routeTemplate": "/v1/:country/:series"
    }
  },
  "free_sample": "Every GH series is free on this service (e.g. /v1/gh/policy-rate). Card credit: /pricing.",
  "x402Version": 2
}

Captured payload 8 of 18

{
  "error": "Payment required",
  "accepts": [
    {
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "payTo": "0x1F0409ccD20A2fb497d4DeCeF4E17e9d0688FeA6",
      "amount": "3000",
      "scheme": "exact",
      "network": "eip155:8453",
      "maxTimeoutSeconds": 300
    }
  ],
  "resource": {
    "url": "https://afriref.dev/v1/ke/policy-rate",
    "tags": [
      "policy-rate",
      "kenya",
      "reference-data",
      "central-bank",
      "interest-rates"
    ],
    "iconUrl": "https://raw.githubusercontent.com/3L-GroupConsulting/afriref-mcp/main/logo.png",
    "mimeType": "application/json",
    "description": "Pan-African official government reference data as cited JSON, every covered country: income and corporate tax, VAT/GST, CPI inflation, central-bank policy rate, minimum wage, public holidays, business days, official exchange rate, statutory interest, social contributions. Each value has source URL, effective date, last_confirmed, stale. GET /v1/{country}/{series}, e.g. /v1/gh/policy-rate.",
    "serviceName": "Afriref - Africa reference data"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "type": "http",
          "method": "GET",
          "pathParams": {
            "series": "policy-rate",
            "country": "ke"
          },
          "queryParams": {}
        },
        "output": {
          "type": "json",
          "example": {
            "name": "Central bank policy rate",
            "note": "Shape only. Values are placeholders; pay to receive the live cited figure.",
            "unit": "%",
            "stale": false,
            "value": 0,
            "series": "policy-rate",
            "country": "GH",
            "source_url": "https://example.gov/official-source",
            "illustrative": true,
            "effective_from": "2026-01-01",
            "last_confirmed": "2026-01-01"
          }
        }
      },
      "schema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "object",
            "required": [
              "type",
              "method"
            ],
            "properties": {
              "type": {
                "type": "string",
                "const": "http"
              },
              "method": {
                "enum": [
                  "GET"
                ],
                "type": "string"
              },
              "pathParams": {
                "type": "object",
                "required": [
                  "country",
                  "series"
                ],
                "properties": {
                  "series": {
                    "type": "string",
                    "description": "Reference series id"
                  },
                  "country": {
                    "type": "string",
                    "description": "ISO country code"
                  }
                }
              },
              "queryParams": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          }
        }
      },
      "routeTemplate": "/v1/:country/:series"
    }
  },
  "free_sample": "Every GH series is free on this service (e.g. /v1/gh/policy-rate). Card credit: /pricing.",
  "x402Version": 2
}

Captured payload 9 of 18

{
  "error": "Payment required",
  "accepts": [
    {
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "payTo": "0x1F0409ccD20A2fb497d4DeCeF4E17e9d0688FeA6",
      "amount": "100000",
      "scheme": "exact",
      "network": "eip155:8453",
      "maxTimeoutSeconds": 300
    }
  ],
  "resource": {
    "url": "https://afriref.dev/v1/certified/za/vat",
    "tags": [
      "vat",
      "south-africa",
      "reference-data",
      "tax",
      "gst",
      "sars"
    ],
    "iconUrl": "https://raw.githubusercontent.com/3L-GroupConsulting/afriref-mcp/main/logo.png",
    "mimeType": "application/json",
    "description": "Pan-African official government reference data as cited JSON, every covered country: income and corporate tax, VAT/GST, CPI inflation, central-bank policy rate, minimum wage, public holidays, business days, official exchange rate, statutory interest, social contributions. Each value has source URL, effective date, last_confirmed, stale. GET /v1/{country}/{series}, e.g. /v1/gh/policy-rate.",
    "serviceName": "Afriref - Africa reference data"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "type": "http",
          "method": "GET",
          "pathParams": {
            "series": "vat",
            "country": "za"
          },
          "queryParams": {}
        },
        "output": {
          "type": "json",
          "example": {
            "name": "Central bank policy rate",
            "note": "Shape only. Values are placeholders; pay to receive the live cited figure.",
            "unit": "%",
            "stale": false,
            "value": 0,
            "series": "policy-rate",
            "country": "GH",
            "source_url": "https://example.gov/official-source",
            "illustrative": true,
            "effective_from": "2026-01-01",
            "last_confirmed": "2026-01-01"
          }
        }
      },
      "schema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "object",
            "required": [
              "type",
              "method"
            ],
            "properties": {
              "type": {
                "type": "string",
                "const": "http"
              },
              "method": {
                "enum": [
                  "GET"
                ],
                "type": "string"
              },
              "pathParams": {
                "type": "object",
                "required": [
                  "country",
                  "series"
                ],
                "properties": {
                  "series": {
                    "type": "string",
                    "description": "Reference series id"
                  },
                  "country": {
                    "type": "string",
                    "description": "ISO country code"
                  }
                }
              },
              "queryParams": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          }
        }
      },
      "routeTemplate": "/v1/certified/:country/:series"
    }
  },
  "x402Version": 2
}

Captured payload 10 of 18

{
  "error": "Payment required",
  "accepts": [
    {
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "payTo": "0x1F0409ccD20A2fb497d4DeCeF4E17e9d0688FeA6",
      "amount": "10000",
      "scheme": "exact",
      "network": "eip155:8453",
      "maxTimeoutSeconds": 300
    }
  ],
  "free_key": "Free API key by email, no card, commercial use allowed: 50 calls a day on the computed answer endpoints (POST /v1/answers/* and POST /v1/vat/determine). POST /v1/keys/free {\"email\": \"...\"} or visit /free-key.",
  "resource": {
    "url": "https://afriref.dev/v1/answers/vat",
    "tags": [
      "vat",
      "tax",
      "gst",
      "africa"
    ],
    "iconUrl": "https://raw.githubusercontent.com/3L-GroupConsulting/afriref-mcp/main/logo.png",
    "mimeType": "application/json",
    "description": "VAT rate gross-up or extract for an amount: net/tax/gross incl. statutory levy components",
    "serviceName": "Afriref - Africa reference data"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "body": {
            "mode": "add",
            "amount": 1000,
            "country": "ao"
          },
          "type": "http",
          "method": "POST",
          "bodyType": "json"
        },
        "output": {
          "type": "json"
        }
      },
      "schema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "object",
            "required": [
              "type",
              "method",
              "bodyType",
              "body"
            ],
            "properties": {
              "body": {
                "type": "object",
                "required": [
                  "country",
                  "amount"
                ],
                "properties": {
                  "band": {
                    "type": "string",
                    "description": "Optional. Apply a statutory reduced/zero/super-reduced band instead of the standard rate. Valid keys per country: GET /catalog (vat_bands_available). Omit for the standard rate — we say when we assumed it. Unknown key is refused free with the list."
                  },
                  "mode": {
                    "enum": [
                      "add",
                      "extract"
                    ],
                    "type": "string",
                    "description": "add = amount is net, add VAT on top; extract = amount is gross, back the VAT out (default add)"
                  },
                  "amount": {
                    "type": "number",
                    "description": "Amount in the country's own currency"
                  },
                  "country": {
                    "enum": [
                      "ao",
                      "bf",
                      "bj",
                      "bw",
                      "cd",
                      "cf",
                      "cg",
                      "ci",
                      "cm",
                      "dz",
                      "eg",
                      "et",
                      "ga",
                      "gh",
                      "gq",
                      "ke",
                      "ls",
                      "ma",
                      "ml",
                      "mu",
                      "mz",
                      "na",
                      "ne",
                      "ng",
                      "rw",
                      "sn",
                      "sz",
                      "td",
                      "tg",
                      "tn",
                      "tz",
                      "ug",
                      "za",
                      "zm"
                    ],
                    "type": "string",
                    "description": "ISO country code"
                  },
                  "receipt": {
                    "type": "boolean",
                    "description": "Optional. true adds an Ed25519 answer receipt on a paid 200, included in this price. Not a certified extract."
                  }
                }
              },
              "type": {
                "type": "string",
                "const": "http"
              },
              "method": {
                "enum": [
                  "POST"
                ],
                "type": "string"
              },
              "bodyType": {
                "enum": [
                  "json",
                  "form-data",
                  "text"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "output": {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "example": {
                "type": "object",
                "required": [
                  "status",
                  "rate",
                  "net",
                  "tax",
                  "gross"
                ],
                "properties": {
                  "net": {
                    "type": "number"
                  },
                  "tax": {
                    "type": "number"
                  },
                  "rate": {
                    "type": "number",
                    "description": "Rate applied (combined effective rate where levies stack)"
                  },
                  "gross": {
                    "type": "number"
                  },
                  "status": {
                    "type": "string"
                  },
                  "receipt": {
                    "type": "object",
                    "description": "Only when receipt=true on a paid 200. kind answer_receipt. Verify at /certified/public-key."
                  },
                  "workings": {
                    "type": "string"
                  },
                  "components": {
                    "type": "array",
                    "description": "Per-levy breakdown where the rate is composite (e.g. Ghana VAT + NHIL + GETFund)"
                  },
                  "disclaimer": {
                    "type": "string"
                  },
                  "provenance": {
                    "type": "object",
                    "description": "The statutory instrument the answer rests on: effective_from, last_confirmed, official source URL, notes"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "free_trial": "Try first: 3 free answer calls per day per IP. Add header X-Free-Trial: 1 (or ?free_trial=1) to this request to use one. Or buy card credit at /pricing.",
  "x402Version": 2
}

Captured payload 11 of 18

{
  "error": "Payment required",
  "accepts": [
    {
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "payTo": "0x1F0409ccD20A2fb497d4DeCeF4E17e9d0688FeA6",
      "amount": "50000",
      "scheme": "exact",
      "network": "eip155:8453",
      "maxTimeoutSeconds": 300
    }
  ],
  "free_key": "Free API key by email, no card, commercial use allowed: 50 calls a day on the computed answer endpoints (POST /v1/answers/* and POST /v1/vat/determine). POST /v1/keys/free {\"email\": \"...\"} or visit /free-key.",
  "resource": {
    "url": "https://afriref.dev/v1/answers/payroll",
    "tags": [
      "payroll",
      "paye",
      "nigeria",
      "kenya"
    ],
    "iconUrl": "https://raw.githubusercontent.com/3L-GroupConsulting/afriref-mcp/main/logo.png",
    "mimeType": "application/json",
    "description": "Gross-to-net payroll: PAYE + statutory employee deductions → net take-home (Nigeria, Kenya)",
    "serviceName": "Afriref - Africa reference data"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "body": {
            "gross": 500000,
            "period": "month",
            "country": "ke"
          },
          "type": "http",
          "method": "POST",
          "bodyType": "json"
        },
        "output": {
          "type": "json"
        }
      },
      "schema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "object",
            "required": [
              "type",
              "method",
              "bodyType",
              "body"
            ],
            "properties": {
              "body": {
                "type": "object",
                "required": [
                  "country",
                  "gross"
                ],
                "properties": {
                  "basic": {
                    "type": "number",
                    "description": "Nigeria: basic pay (for exact pension/NHF base; else a 40/30/10 split is assumed and disclosed)"
                  },
                  "gross": {
                    "type": "number",
                    "description": "Gross pay in local currency"
                  },
                  "period": {
                    "enum": [
                      "month",
                      "year"
                    ],
                    "type": "string",
                    "description": "Period the gross covers (default month)"
                  },
                  "sector": {
                    "enum": [
                      "public",
                      "private"
                    ],
                    "type": "string",
                    "description": "Nigeria: public applies NHF 2.5%; private (default) sets NHF 0"
                  },
                  "country": {
                    "enum": [
                      "ke",
                      "ng"
                    ],
                    "type": "string",
                    "description": "ISO country code (payroll supported: Nigeria, Kenya)"
                  },
                  "housing": {
                    "type": "number",
                    "description": "Nigeria: housing allowance"
                  },
                  "receipt": {
                    "type": "boolean",
                    "description": "Optional. true adds an Ed25519 answer receipt on a paid 200, included in this price. Not a certified extract."
                  },
                  "transport": {
                    "type": "number",
                    "description": "Nigeria: transport allowance"
                  },
                  "annual_rent": {
                    "type": "number",
                    "description": "Nigeria: annual rent paid (unlocks rent relief, capped ₦500,000)"
                  },
                  "nhis_premium": {
                    "type": "number",
                    "description": "Nigeria: NHIS employee premium if a scheme deducts one"
                  },
                  "pensionable_pay": {
                    "type": "number",
                    "description": "Kenya: pensionable pay for NSSF tiers (default = gross capped at UEL)"
                  },
                  "insurance_premium": {
                    "type": "number",
                    "description": "Kenya: insurance premium (15% relief, capped KES 5,000/mo)"
                  }
                }
              },
              "type": {
                "type": "string",
                "const": "http"
              },
              "method": {
                "enum": [
                  "POST"
                ],
                "type": "string"
              },
              "bodyType": {
                "enum": [
                  "json",
                  "form-data",
                  "text"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "output": {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "example": {
                "type": "object",
                "required": [
                  "status",
                  "net_pay",
                  "income_tax",
                  "statutory_deductions"
                ],
                "properties": {
                  "status": {
                    "type": "string"
                  },
                  "net_pay": {
                    "type": "number",
                    "description": "Net take-home pay"
                  },
                  "receipt": {
                    "type": "object",
                    "description": "Only when receipt=true on a paid 200. kind answer_receipt. Verify at /certified/public-key."
                  },
                  "gross_pay": {
                    "type": "number"
                  },
                  "income_tax": {
                    "type": "number",
                    "description": "PAYE payable"
                  },
                  "provenance": {
                    "type": "object",
                    "description": "Bracket instrument + contribution-law citations"
                  },
                  "scope_note": {
                    "type": "string"
                  },
                  "assumptions": {
                    "type": "array",
                    "description": "Disclosed assumptions (e.g. Nigeria 40/30/10 pay split, sector default)"
                  },
                  "tax_breakdown": {
                    "type": "array",
                    "description": "Per-bracket workings"
                  },
                  "taxable_income": {
                    "type": "number"
                  },
                  "statutory_deductions": {
                    "type": "object",
                    "description": "Employee social-security contributions withheld"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "free_trial": "Try first: 3 free answer calls per day per IP. Add header X-Free-Trial: 1 (or ?free_trial=1) to this request to use one. Or buy card credit at /pricing.",
  "x402Version": 2
}

Captured payload 12 of 18

{
  "error": "Payment required",
  "accepts": [
    {
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "payTo": "0x1F0409ccD20A2fb497d4DeCeF4E17e9d0688FeA6",
      "amount": "3000",
      "scheme": "exact",
      "network": "eip155:8453",
      "maxTimeoutSeconds": 300
    }
  ],
  "resource": {
    "url": "https://afriref.dev/v1/eg/cpi",
    "tags": [
      "cpi",
      "egypt",
      "reference-data",
      "inflation"
    ],
    "iconUrl": "https://raw.githubusercontent.com/3L-GroupConsulting/afriref-mcp/main/logo.png",
    "mimeType": "application/json",
    "description": "Pan-African official government reference data as cited JSON, every covered country: income and corporate tax, VAT/GST, CPI inflation, central-bank policy rate, minimum wage, public holidays, business days, official exchange rate, statutory interest, social contributions. Each value has source URL, effective date, last_confirmed, stale. GET /v1/{country}/{series}, e.g. /v1/gh/policy-rate.",
    "serviceName": "Afriref - Africa reference data"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "type": "http",
          "method": "GET",
          "pathParams": {
            "series": "cpi",
            "country": "eg"
          },
          "queryParams": {}
        },
        "output": {
          "type": "json",
          "example": {
            "name": "Central bank policy rate",
            "note": "Shape only. Values are placeholders; pay to receive the live cited figure.",
            "unit": "%",
            "stale": false,
            "value": 0,
            "series": "policy-rate",
            "country": "GH",
            "source_url": "https://example.gov/official-source",
            "illustrative": true,
            "effective_from": "2026-01-01",
            "last_confirmed": "2026-01-01"
          }
        }
      },
      "schema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "object",
            "required": [
              "type",
              "method"
            ],
            "properties": {
              "type": {
                "type": "string",
                "const": "http"
              },
              "method": {
                "enum": [
                  "GET"
                ],
                "type": "string"
              },
              "pathParams": {
                "type": "object",
                "required": [
                  "country",
                  "series"
                ],
                "properties": {
                  "series": {
                    "type": "string",
                    "description": "Reference series id"
                  },
                  "country": {
                    "type": "string",
                    "description": "ISO country code"
                  }
                }
              },
              "queryParams": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          }
        }
      },
      "routeTemplate": "/v1/:country/:series"
    }
  },
  "free_sample": "Every GH series is free on this service (e.g. /v1/gh/policy-rate). Card credit: /pricing.",
  "x402Version": 2
}

Captured payload 13 of 18

{
  "error": "Payment required",
  "accepts": [
    {
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "payTo": "0x1F0409ccD20A2fb497d4DeCeF4E17e9d0688FeA6",
      "amount": "20000",
      "scheme": "exact",
      "network": "eip155:8453",
      "maxTimeoutSeconds": 300
    }
  ],
  "resource": {
    "url": "https://afriref.dev/v1/all",
    "tags": [
      "reference-data",
      "snapshot",
      "bulk",
      "africa"
    ],
    "iconUrl": "https://raw.githubusercontent.com/3L-GroupConsulting/afriref-mcp/main/logo.png",
    "mimeType": "application/json",
    "description": "Snapshot of every series, all countries",
    "serviceName": "Afriref - Africa reference data"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "type": "http",
          "method": "GET",
          "queryParams": {}
        },
        "output": {
          "type": "json"
        }
      },
      "schema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "object",
            "required": [
              "type",
              "method"
            ],
            "properties": {
              "type": {
                "type": "string",
                "const": "http"
              },
              "method": {
                "enum": [
                  "GET"
                ],
                "type": "string"
              },
              "queryParams": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          },
          "output": {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "example": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "country",
                    "series"
                  ],
                  "properties": {
                    "series": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "country",
                          "series",
                          "value",
                          "effective_from",
                          "last_confirmed",
                          "source",
                          "stale"
                        ],
                        "properties": {
                          "unit": {
                            "type": "string"
                          },
                          "notes": {
                            "type": "string"
                          },
                          "stale": {
                            "type": "boolean",
                            "description": "True when past the expected update cycle — treat with caution"
                          },
                          "value": {
                            "description": "Number for rates/wages; array of {date,name} for holiday calendars"
                          },
                          "series": {
                            "type": "string"
                          },
                          "source": {
                            "type": "object",
                            "required": [
                              "name",
                              "url"
                            ],
                            "properties": {
                              "url": {
                                "type": "string",
                                "format": "uri"
                              },
                              "name": {
                                "type": "string"
                              }
                            }
                          },
                          "country": {
                            "type": "string",
                            "description": "ISO 3166-1 alpha-2 country code"
                          },
                          "components": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "name",
                                "rate"
                              ],
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "rate": {
                                  "type": "number"
                                }
                              }
                            },
                            "description": "Optional. Breakdown of a composite rate into its named statutory components (present only where applicable, e.g. Ghana VAT)."
                          },
                          "effective_from": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "format": "date"
                          },
                          "effective_rate": {
                            "type": "number",
                            "description": "Optional. Combined effective rate where statutory levies stack on top of the standard rate (e.g. Ghana VAT 15% + NHIL 2.5% + GETFund 2.5% = 20%). Present only where it differs from value."
                          },
                          "last_confirmed": {
                            "type": "string",
                            "format": "date",
                            "description": "When this value was last verified against the official source"
                          },
                          "effective_from_basis": {
                            "enum": [
                              "restatement"
                            ],
                            "type": "string",
                            "description": "Optional. Absent: effective_from is the date the value became the law (a genuine change point). 'restatement': effective_from is the date the value's CURRENT LEGAL BASIS took effect (a new tax code, an annual finance law) while the value itself is older and its true origin is not primary-verifiable — a verified floor, not a change. Do not read a restatement row as the value having changed on that date."
                          }
                        }
                      }
                    },
                    "country": {
                      "type": "string",
                      "description": "ISO 3166-1 alpha-2 country code"
                    }
                  }
                },
                "description": "One entry per country, each with all its series values"
              }
            }
          }
        }
      }
    }
  },
  "x402Version": 2
}

Captured payload 14 of 18

{
  "error": "Payment required",
  "accepts": [
    {
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "payTo": "0x1F0409ccD20A2fb497d4DeCeF4E17e9d0688FeA6",
      "amount": "3000",
      "scheme": "exact",
      "network": "eip155:8453",
      "maxTimeoutSeconds": 300
    }
  ],
  "resource": {
    "url": "https://afriref.dev/v1/ng/vat",
    "tags": [
      "vat",
      "nigeria",
      "reference-data",
      "tax",
      "gst",
      "firs"
    ],
    "iconUrl": "https://raw.githubusercontent.com/3L-GroupConsulting/afriref-mcp/main/logo.png",
    "mimeType": "application/json",
    "description": "Pan-African official government reference data as cited JSON, every covered country: income and corporate tax, VAT/GST, CPI inflation, central-bank policy rate, minimum wage, public holidays, business days, official exchange rate, statutory interest, social contributions. Each value has source URL, effective date, last_confirmed, stale. GET /v1/{country}/{series}, e.g. /v1/gh/policy-rate.",
    "serviceName": "Afriref - Africa reference data"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "type": "http",
          "method": "GET",
          "pathParams": {
            "series": "vat",
            "country": "ng"
          },
          "queryParams": {}
        },
        "output": {
          "type": "json",
          "example": {
            "name": "Central bank policy rate",
            "note": "Shape only. Values are placeholders; pay to receive the live cited figure.",
            "unit": "%",
            "stale": false,
            "value": 0,
            "series": "policy-rate",
            "country": "GH",
            "source_url": "https://example.gov/official-source",
            "illustrative": true,
            "effective_from": "2026-01-01",
            "last_confirmed": "2026-01-01"
          }
        }
      },
      "schema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "object",
            "required": [
              "type",
              "method"
            ],
            "properties": {
              "type": {
                "type": "string",
                "const": "http"
              },
              "method": {
                "enum": [
                  "GET"
                ],
                "type": "string"
              },
              "pathParams": {
                "type": "object",
                "required": [
                  "country",
                  "series"
                ],
                "properties": {
                  "series": {
                    "type": "string",
                    "description": "Reference series id"
                  },
                  "country": {
                    "type": "string",
                    "description": "ISO country code"
                  }
                }
              },
              "queryParams": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          }
        }
      },
      "routeTemplate": "/v1/:country/:series"
    }
  },
  "free_sample": "Every GH series is free on this service (e.g. /v1/gh/policy-rate). Card credit: /pricing.",
  "x402Version": 2
}

Captured payload 15 of 18

{
  "error": "Payment required",
  "accepts": [
    {
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "payTo": "0x1F0409ccD20A2fb497d4DeCeF4E17e9d0688FeA6",
      "amount": "20000",
      "scheme": "exact",
      "network": "eip155:8453",
      "maxTimeoutSeconds": 300
    }
  ],
  "free_key": "Free API key by email, no card, commercial use allowed: 50 calls a day on the computed answer endpoints (POST /v1/answers/* and POST /v1/vat/determine). POST /v1/keys/free {\"email\": \"...\"} or visit /free-key.",
  "resource": {
    "url": "https://afriref.dev/v1/answers/income-tax",
    "tags": [
      "income-tax",
      "tax",
      "africa"
    ],
    "iconUrl": "https://raw.githubusercontent.com/3L-GroupConsulting/afriref-mcp/main/logo.png",
    "mimeType": "application/json",
    "description": "Statutory income tax on a taxable-income figure: per-bracket workings, effective + marginal rate",
    "serviceName": "Afriref - Africa reference data"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "body": {
            "country": "ao",
            "taxable_income": 5000000
          },
          "type": "http",
          "method": "POST",
          "bodyType": "json"
        },
        "output": {
          "type": "json"
        }
      },
      "schema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "object",
            "required": [
              "type",
              "method",
              "bodyType",
              "body"
            ],
            "properties": {
              "body": {
                "type": "object",
                "required": [
                  "country",
                  "taxable_income"
                ],
                "properties": {
                  "country": {
                    "enum": [
                      "ao",
                      "bf",
                      "bj",
                      "bw",
                      "cd",
                      "cf",
                      "cg",
                      "ci",
                      "cm",
                      "dz",
                      "eg",
                      "et",
                      "ga",
                      "gh",
                      "gq",
                      "ke",
                      "ls",
                      "ma",
                      "ml",
                      "mu",
                      "mz",
                      "na",
                      "ne",
                      "ng",
                      "rw",
                      "sn",
                      "sz",
                      "td",
                      "tg",
                      "tn",
                      "tz",
                      "ug",
                      "za",
                      "zm"
                    ],
                    "type": "string",
                    "description": "ISO country code"
                  },
                  "receipt": {
                    "type": "boolean",
                    "description": "Optional. true adds an Ed25519 answer receipt on a paid 200, included in this price. Not a certified extract."
                  },
                  "taxable_income": {
                    "type": "number",
                    "description": "Taxable income in the country's local currency, in the schedule's own period basis (annual for most, monthly for CI/UG/ET/CR). NOT gross pay — reliefs are applied before this."
                  }
                }
              },
              "type": {
                "type": "string",
                "const": "http"
              },
              "method": {
                "enum": [
                  "POST"
                ],
                "type": "string"
              },
              "bodyType": {
                "enum": [
                  "json",
                  "form-data",
                  "text"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "output": {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "example": {
                "type": "object",
                "required": [
                  "status",
                  "tax",
                  "effective_rate",
                  "breakdown"
                ],
                "properties": {
                  "tax": {
                    "type": "number",
                    "description": "Statutory income tax on the taxable income"
                  },
                  "status": {
                    "type": "string"
                  },
                  "receipt": {
                    "type": "object",
                    "description": "Only when receipt=true on a paid 200. kind answer_receipt. Verify at /certified/public-key."
                  },
                  "tax_unit": {
                    "type": "object",
                    "description": "Present for UVT/UTA/UIT/BPC schedules — the unit's currency value used to scale the bands"
                  },
                  "breakdown": {
                    "type": "array",
                    "description": "Per-bracket workings: band, rate, taxable-in-band, tax"
                  },
                  "disclaimer": {
                    "type": "string"
                  },
                  "net_of_tax": {
                    "type": "number"
                  },
                  "provenance": {
                    "type": "object",
                    "description": "The statutory instrument the answer rests on: effective_from, last_confirmed, official source URL, notes"
                  },
                  "scope_note": {
                    "type": "string",
                    "description": "Explicit boundary: this is tax on taxable income, NOT net take-home (reliefs + social security excluded)"
                  },
                  "marginal_rate": {
                    "type": "number"
                  },
                  "effective_rate": {
                    "type": "number"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "free_trial": "Try first: 3 free answer calls per day per IP. Add header X-Free-Trial: 1 (or ?free_trial=1) to this request to use one. Or buy card credit at /pricing.",
  "x402Version": 2
}

Captured payload 16 of 18

{
  "error": "Payment required",
  "accepts": [
    {
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "payTo": "0x1F0409ccD20A2fb497d4DeCeF4E17e9d0688FeA6",
      "amount": "3000",
      "scheme": "exact",
      "network": "eip155:8453",
      "maxTimeoutSeconds": 300
    }
  ],
  "resource": {
    "url": "https://afriref.dev/v1/za/vat",
    "tags": [
      "vat",
      "south-africa",
      "reference-data",
      "tax",
      "gst",
      "sars"
    ],
    "iconUrl": "https://raw.githubusercontent.com/3L-GroupConsulting/afriref-mcp/main/logo.png",
    "mimeType": "application/json",
    "description": "Pan-African official government reference data as cited JSON, every covered country: income and corporate tax, VAT/GST, CPI inflation, central-bank policy rate, minimum wage, public holidays, business days, official exchange rate, statutory interest, social contributions. Each value has source URL, effective date, last_confirmed, stale. GET /v1/{country}/{series}, e.g. /v1/gh/policy-rate.",
    "serviceName": "Afriref - Africa reference data"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "type": "http",
          "method": "GET",
          "pathParams": {
            "series": "vat",
            "country": "za"
          },
          "queryParams": {}
        },
        "output": {
          "type": "json",
          "example": {
            "name": "Central bank policy rate",
            "note": "Shape only. Values are placeholders; pay to receive the live cited figure.",
            "unit": "%",
            "stale": false,
            "value": 0,
            "series": "policy-rate",
            "country": "GH",
            "source_url": "https://example.gov/official-source",
            "illustrative": true,
            "effective_from": "2026-01-01",
            "last_confirmed": "2026-01-01"
          }
        }
      },
      "schema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "object",
            "required": [
              "type",
              "method"
            ],
            "properties": {
              "type": {
                "type": "string",
                "const": "http"
              },
              "method": {
                "enum": [
                  "GET"
                ],
                "type": "string"
              },
              "pathParams": {
                "type": "object",
                "required": [
                  "country",
                  "series"
                ],
                "properties": {
                  "series": {
                    "type": "string",
                    "description": "Reference series id"
                  },
                  "country": {
                    "type": "string",
                    "description": "ISO country code"
                  }
                }
              },
              "queryParams": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          }
        }
      },
      "routeTemplate": "/v1/:country/:series"
    }
  },
  "free_sample": "Every GH series is free on this service (e.g. /v1/gh/policy-rate). Card credit: /pricing.",
  "x402Version": 2
}

Captured payload 17 of 18

{
  "error": "Payment required",
  "accepts": [
    {
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "payTo": "0x1F0409ccD20A2fb497d4DeCeF4E17e9d0688FeA6",
      "amount": "20000",
      "scheme": "exact",
      "network": "eip155:8453",
      "maxTimeoutSeconds": 300
    }
  ],
  "free_key": "Free API key by email, no card, commercial use allowed: 50 calls a day on the computed answer endpoints (POST /v1/answers/* and POST /v1/vat/determine). POST /v1/keys/free {\"email\": \"...\"} or visit /free-key.",
  "resource": {
    "url": "https://afriref.dev/v1/answers/settlement-date",
    "tags": [
      "settlement-date",
      "working-days",
      "calendar",
      "africa"
    ],
    "iconUrl": "https://raw.githubusercontent.com/3L-GroupConsulting/afriref-mcp/main/logo.png",
    "mimeType": "application/json",
    "description": "Settlement/value date: T+n business days across national statutory calendars (intersected), with the market cycle cited to its primary source and a per-day trail",
    "serviceName": "Afriref - Africa reference data"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "body": {
            "calendars": [
              "za",
              "us"
            ],
            "trade_date": "2026-08-06",
            "business_days": 2
          },
          "type": "http",
          "method": "POST",
          "bodyType": "json"
        },
        "output": {
          "type": "json"
        }
      },
      "schema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "object",
            "required": [
              "type",
              "method",
              "bodyType",
              "body"
            ],
            "properties": {
              "body": {
                "type": "object",
                "required": [
                  "trade_date",
                  "calendars"
                ],
                "properties": {
                  "market": {
                    "type": "string",
                    "description": "ISO country of the market whose settlement cycle should be applied (with instrument_class)"
                  },
                  "receipt": {
                    "type": "boolean",
                    "description": "Optional. true adds an Ed25519 answer receipt on a paid 200, included in this price. Not a certified extract."
                  },
                  "calendars": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "1-4 calendar ids to intersect: ISO 3166-1 alpha-2 country codes, plus 'eu.t2' for the euro cash leg. The date must be a business day on every one."
                  },
                  "trade_date": {
                    "type": "string",
                    "format": "date",
                    "description": "Trade/reference date. It is day 0: never counted, never rolled."
                  },
                  "business_days": {
                    "type": "integer",
                    "description": "The offset you are trading under (0-30). Supply this, or market + instrument_class to have a cited cycle applied."
                  },
                  "instrument_class": {
                    "enum": [
                      "cash_equity",
                      "etf",
                      "corporate_bond",
                      "government_bond",
                      "tbill",
                      "repo",
                      "primary_issuance",
                      "other"
                    ],
                    "type": "string",
                    "description": "Instrument class — a government bond never inherits an equity cycle"
                  }
                }
              },
              "type": {
                "type": "string",
                "const": "http"
              },
              "method": {
                "enum": [
                  "POST"
                ],
                "type": "string"
              },
              "bodyType": {
                "enum": [
                  "json",
                  "form-data",
                  "text"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "output": {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "example": {
                "type": "object",
                "required": [
                  "status",
                  "settlement_date",
                  "convention_applied",
                  "trail"
                ],
                "properties": {
                  "trail": {
                    "type": "array",
                    "description": "Per-day walk: counted days and skipped days with the reason on each calendar"
                  },
                  "status": {
                    "type": "string"
                  },
                  "caveats": {
                    "type": "array"
                  },
                  "receipt": {
                    "type": "object",
                    "description": "Only when receipt=true on a paid 200. kind answer_receipt. Verify at /certified/public-key."
                  },
                  "disclaimer": {
                    "type": "string"
                  },
                  "calendars_used": {
                    "type": "array",
                    "description": "Each calendar's basis, weekend rule, coverage and official source"
                  },
                  "settlement_date": {
                    "type": "string",
                    "format": "date"
                  },
                  "convention_applied": {
                    "type": "object",
                    "description": "The cycle applied, whether it was cited or caller-asserted, its authority tier and citations"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "free_trial": "Try first: 3 free answer calls per day per IP. Add header X-Free-Trial: 1 (or ?free_trial=1) to this request to use one. Or buy card credit at /pricing.",
  "x402Version": 2
}

Captured payload 18 of 18

{
  "error": "Payment required",
  "accepts": [
    {
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "payTo": "0x1F0409ccD20A2fb497d4DeCeF4E17e9d0688FeA6",
      "amount": "2000",
      "scheme": "exact",
      "network": "eip155:8453",
      "maxTimeoutSeconds": 300
    }
  ],
  "free_key": "Free API key by email, no card, commercial use allowed: 50 calls a day on the computed answer endpoints (POST /v1/answers/* and POST /v1/vat/determine). POST /v1/keys/free {\"email\": \"...\"} or visit /free-key.",
  "resource": {
    "url": "https://afriref.dev/v1/answers/working-days",
    "tags": [
      "working-days",
      "public-holidays",
      "calendar",
      "africa"
    ],
    "iconUrl": "https://raw.githubusercontent.com/3L-GroupConsulting/afriref-mcp/main/logo.png",
    "mimeType": "application/json",
    "description": "Working days / next working day in a date range: weekends + gazetted public holidays",
    "serviceName": "Afriref - Africa reference data"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "body": {
            "to": "2026-08-31",
            "from": "2026-08-01",
            "country": "ao"
          },
          "type": "http",
          "method": "POST",
          "bodyType": "json"
        },
        "output": {
          "type": "json"
        }
      },
      "schema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "object",
            "required": [
              "type",
              "method",
              "bodyType",
              "body"
            ],
            "properties": {
              "body": {
                "type": "object",
                "required": [
                  "country",
                  "from",
                  "to"
                ],
                "properties": {
                  "to": {
                    "type": "string",
                    "format": "date",
                    "description": "Range end, inclusive (max 366 days)"
                  },
                  "from": {
                    "type": "string",
                    "format": "date",
                    "description": "Range start, inclusive"
                  },
                  "country": {
                    "enum": [
                      "ao",
                      "bf",
                      "bj",
                      "bw",
                      "cd",
                      "cf",
                      "cg",
                      "ci",
                      "cm",
                      "dz",
                      "eg",
                      "et",
                      "ga",
                      "gh",
                      "gq",
                      "ke",
                      "ls",
                      "ma",
                      "ml",
                      "mu",
                      "mz",
                      "na",
                      "ne",
                      "ng",
                      "rw",
                      "sn",
                      "sz",
                      "td",
                      "tg",
                      "tn",
                      "tz",
                      "ug",
                      "za",
                      "zm"
                    ],
                    "type": "string",
                    "description": "ISO country code"
                  },
                  "receipt": {
                    "type": "boolean",
                    "description": "Optional. true adds an Ed25519 answer receipt on a paid 200, included in this price. Not a certified extract."
                  },
                  "subdivision": {
                    "type": "string",
                    "description": "Optional. Apply a sub-national statutory holiday calendar (national + that region's days) instead of national-only. ISO 3166-2 code, e.g. 'DE-BY'. Countries that offer regions expose them as `subdivisions` on GET /:country/public-holidays. Unknown code is refused free with the list."
                  }
                }
              },
              "type": {
                "type": "string",
                "const": "http"
              },
              "method": {
                "enum": [
                  "POST"
                ],
                "type": "string"
              },
              "bodyType": {
                "enum": [
                  "json",
                  "form-data",
                  "text"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "output": {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "example": {
                "type": "object",
                "required": [
                  "status",
                  "total_days",
                  "working_days",
                  "next_working_day"
                ],
                "properties": {
                  "status": {
                    "type": "string"
                  },
                  "caveats": {
                    "type": "array"
                  },
                  "receipt": {
                    "type": "object",
                    "description": "Only when receipt=true on a paid 200. kind answer_receipt. Verify at /certified/public-key."
                  },
                  "weekend": {
                    "type": "array",
                    "description": "This country's weekly rest days (Egypt: Fri–Sat)"
                  },
                  "disclaimer": {
                    "type": "string"
                  },
                  "provenance": {
                    "type": "object",
                    "description": "The statutory instrument the answer rests on: effective_from, last_confirmed, official source URL, notes"
                  },
                  "total_days": {
                    "type": "integer"
                  },
                  "subdivision": {
                    "type": [
                      "object",
                      "null"
                    ],
                    "description": "The sub-national calendar applied (code, name, source, the region's added days), or null when the national calendar was used"
                  },
                  "weekend_days": {
                    "type": "integer"
                  },
                  "working_days": {
                    "type": "integer"
                  },
                  "public_holidays": {
                    "type": "array",
                    "description": "Statutory holidays falling on weekdays in the range"
                  },
                  "next_working_day": {
                    "type": "string",
                    "format": "date"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "free_trial": "Try first: 3 free answer calls per day per IP. Add header X-Free-Trial: 1 (or ?free_trial=1) to this request to use one. Or buy card credit at /pricing.",
  "x402Version": 2
}

Can I trust it score from our own monitoring

score from our own monitoring

88/100 Solid

#34 of 386 in Data. Bands: strong 93+, solid 75+, mixed 55+, weak below 55.

Reliability
99.7% uptime 30d
Compliance
A 14/14 checks pass
Price
$0.002 to $0.10 p24 in Data
Risk
clean no risk flag
Traction
$33.35 30d 10 buyers, top buyer 97% (address, not entity) Concentrated volume: 99% of 30d volume from 3 wallets
Last change
price changed 3d ago 3 in 30d
14/14 compliance checks
  • 402 payload captured
  • accepts[] array present
  • payTo address recoverable
  • payTo at accepts[0].payTo (conformant shape)
  • payTo is a valid on-chain address
  • atomic price declared
  • atomic price in a sane range
  • asset (token) address declared
  • network resolves to CAIP-2
  • payment scheme declared
  • served over HTTPS
  • declares the current x402 version (2)
  • EIP-712 domain parameters present on every EVM entry
  • x402 v2 envelope delivered in the payment-required header

402 terms unchanged since 2026-10-17. Last up 2026-10-20.

── Site signals

  • homepage reachable
  • openapi doc
  • pricing page
  • llms.txt
  • robots.txt
  • terms page
How the score works

What the score read on this service: status online, 99.7% uptime 30d, 735ms response p95, x402 compliance 14 of 14, $0.002 price against the category, on-chain traction measured. Each of those is measured, and each is published in full below.

The score comes from our own monitoring, never from reviews, operator claims, or a language model: reliability, x402 compliance, price against the category, a deterministic risk flag, and a small on-chain traction term, weighted by ranking generation 3. It is not placement anyone can buy: the paid verify tier is reported beside it and is not one of its inputs. Every component below stays published and read-only.

Bands on the 0 to 100 measured score: strong at 93 and above, solid from 75, mixed from 55, weak below 55. Price and speed are scored against the whole category field, every listing in it that carries no danger flag, the scored service included, so the score places a service in its own field.

It is a score inside Data, and only there: price and speed are scored against the whole category field, every listing in it that carries no danger flag, the scored service included, which here means 386 listings, this one among them: the same 386 the position above is counted against. When the two differ, the field is the wider one, because a listing we have measured too little of to rank still sits in the field the price and the speed are normalized over. The same service in a different field would read differently. The same engine answers GET /api/v1/best, and asked for a different pool (the whole directory, or another filter) it returns a different number for this service under this same ranking generation. Neither is more correct: they answer different questions, and the methodology states which is which.

Settled via coinbase ($66.69, 550 tx). Traction is a conservative undercount; first settlement seen 2026-07-15.

All measured facts

What it does

Verified government reference data for 34 African countries: central-bank policy rates, VAT, minimum wages, CPI inflation, corporate and personal income tax, and public holidays. Every value is cited to the official gazette, central bank or revenue authority, with effective-from and last-confirmed dates, and flagged when past its expected update cycle.

AfriRef - Pan-African government reference data is a listed x402 Data API. Captured payment terms name Base. Monitoring and settlement figures below describe the observations available to this directory; an unpaid HTTP 402 check does not prove that a paid call will deliver.

Assessment computed at . Latest service check observed at . Service data JSON · Measurement methodology.

Page rendered at . This response time is separate from the observation and computation times attached to each measurement.

Latest endpoint observation: . Latest price capture: . Prices are recorded quotes, not a promise of availability. Token assets and payment terms are listed separately. Endpoint data JSON · Price history JSON · Measurement methodology.

Assessment computed at . Uptime uses the stated daily-rollup window; response times are in milliseconds, compliance is passed/evaluated checks, and traction is a measured settlement floor. The comparison score is out of 100 within this category. Assessment JSON · Measurement methodology.

Observed daily coverage: 2026-09-21 to 2026-10-20 UTC. Daily monitoring and settlement rollups do not expose their computation time; a bucket date is not an update timestamp. Latest settlement in the assessment: . Uptime and response JSON · Volume JSON · Buyers JSON · Measurement methodology.

Ranked from the measured category pool, refreshed at most once a minute. The comparison has no persisted computation timestamp; the assessment time above belongs to this service only. Ranking API documentation · Ranking methodology.

x402 List home · Services · Data

uptime · latest daily rollup
-
uptime 7d
100%
uptime 30d
99.7%
uptime 90d
99.4%
response p95
735ms
avg response
534ms
total checks
2,776

Measured on the unpaid 402 handshake, not the paid call. A service can 402 correctly and still fail after payment.

price (min)
$0.002
price (max)
$0.10
category percentile (min)
p24 in Data
category percentile (max)
p71 in Data
endpoints / prices
18 / 6
model
tiered
stability
0%

No deterministic risk flag. Risk fires only on an exact blocklist match, or a reserved-brand name with a mismatched verified payTo. Never from low uptime, a high price, or a model guess.

domain age
-
registrar
-
hosting
custom
domain created
---

Identity facts, not a risk score.

assessment volume 30d
$33.35
exact assessment volume 30d (USD)
33.346
assessment recorded at (UTC)
2026-10-20T00:33:02.509Z
buyers 30d
10
settlements 30d
550
measured since
2026-07-15 (start of our harvest window)
last settlement
2026-10-19
top buyer share
97% of 30d volume (address, not entity)
top 3 buyers share
99% of 30d volume (addresses, not entities)
concentrated volume
yes
trend 7d vs 30d
3.56x the 30d daily rate
networks
eip155:8453
volume all-time
$34.44
settlements all-time
704
median settlement 30d
$0.02
max settlement 30d
$1.00

Assessment volume uses the latest 30d assessment. Over time sums daily address snapshots, rounded to cents and refreshed separately. The two sources can differ in timing, precision and shared-address attribution. Amounts use cents for comparison; known sub-cent values keep up to 12 significant digits. The exact stored assessment value is shown above.

Attributed pro-quota: this payout address is shared, so volume is the operator-level figure divided by the services sharing it, while buyer and transaction counts stay whole. A declared convention, not an individually observed measure, and still a conservative undercount.

Currently sharing this payout address with asiaref.

Concentrated volume is one rule applied to every listed service: the 3 largest paying addresses hold at least 90% of 30d volume, with at least $10 of volume and 50 settlements in the same 30 days. While it applies, this service's volume counts as 0 in the Recommended and Highest volume sorts of the services list. The label says where the payments came from, not why.

Top buyer share lowers the on-chain traction part of the ranking score behind this page's verdict and /best, by up to half when one address holds all 30d volume. The Recommended and Highest volume sorts of the services list do not use it; they use the Concentrated volume rule instead.

member since
2026-07-21
Recent checks
Latest 18 unpaid HTTP checks, newest first; response times in milliseconds, observation times in UTC
Checked at (UTC)StatusHTTPResponseEndpoints
Online402302ms18
Online402259ms18
Online402337ms18
Online402401ms18
Online402335ms18
Online402400ms18
Online402299ms18
Online402429ms18
Online402326ms18
Online402442ms18
Online402296ms18
Online402277ms18
Online402242ms18
Online402301ms18
Online402260ms18
Online402208ms18
Online402298ms18
Online402667ms13

Changes3 in 30d

Latest 3 recorded changes, up to 10 in the last 30 days; newest first; observation times in UTC
Observed at (UTC)ChangeEvidence
price changed

GET /v1/certified/za/vat · eip155:8453 · USDC: 250000 → 100000

POST /v1/answers/payroll · eip155:8453 · USDC: 100000 → 50000

POST /v1/vat/determine · eip155:8453 · USDC: 100000 → 50000

price changed

GET /v1/eg/cpi · eip155:8453 · USDC: 5000 → 3000

GET /v1/ke/income-tax · eip155:8453 · USDC: 5000 → 3000

GET /v1/ke/policy-rate · eip155:8453 · USDC: 5000 → 3000

GET /v1/ng/minimum-wage · eip155:8453 · USDC: 5000 → 3000

GET /v1/ng/vat · eip155:8453 · USDC: 5000 → 3000

GET /v1/za/minimum-wage · eip155:8453 · USDC: 5000 → 3000

GET /v1/za/vat · eip155:8453 · USDC: 5000 → 3000

GET /v1/za/vat/history · eip155:8453 · USDC: 5000 → 3000

POST /v1/answers/income-tax · eip155:8453 · USDC: 50000 → 20000

POST /v1/answers/settlement-date · eip155:8453 · USDC: 50000 → 20000

POST /v1/answers/statutory-interest · eip155:8453 · USDC: 50000 → 20000

POST /v1/answers/vat · eip155:8453 · USDC: 20000 → 10000

POST /v1/answers/wage-check · eip155:8453 · USDC: 50000 → 20000

POST /v1/answers/working-days · eip155:8453 · USDC: 20000 → 2000

schema changed

endpoint removed GET /v1/answers/vat

endpoint removed GET /v1/answers/wage-check

endpoint added GET /v1/certified/za/vat

endpoint added GET /v1/eg/cpi

endpoint added GET /v1/ke/income-tax

endpoint added GET /v1/ke/policy-rate

endpoint added GET /v1/ng/minimum-wage

endpoint added GET /v1/ng/vat

endpoint added GET /v1/za/minimum-wage

endpoint added GET /v1/za/vat

endpoint added GET /v1/za/vat/history

endpoint added POST /v1/answers/income-tax

endpoint added POST /v1/answers/payroll

endpoint added POST /v1/answers/settlement-date

endpoint added POST /v1/answers/statutory-interest

endpoint added POST /v1/answers/vat

endpoint added POST /v1/answers/wage-check

endpoint added POST /v1/answers/working-days

endpoint added POST /v1/vat/determine

schema removed GET /v1/answers/vat exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2

schema removed GET /v1/answers/wage-check exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2

schema added GET /v1/certified/za/vat exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added GET /v1/eg/cpi exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added GET /v1/ke/income-tax exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added GET /v1/ke/policy-rate exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added GET /v1/ng/minimum-wage exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added GET /v1/ng/vat exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added GET /v1/za/minimum-wage exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added GET /v1/za/vat exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added GET /v1/za/vat/history exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/answers/income-tax exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/answers/payroll exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/answers/settlement-date exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/answers/statutory-interest exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/answers/vat exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/answers/wage-check exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/answers/working-days exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/vat/determine exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

Amounts are on-wire atomic units in the named asset.

all changes

Over time

On-chain volume daily snapshots, USD 30d: $33.35, peak $52.03 on 10-19
volume no data in the payload
Distinct buyers per dayDistinct buyers per day
Uptime 3 of 29 completed days below 100%
uptime below 100%, to scale
Volume 30d
$33.35
Uptime
3 of 29 completed days below 100%
Daily on-chain settlement volume in US dollars, 2026-09-21 to 2026-10-20; highest day $52.03 on 10-19; 6 days have no data in the payload; distinct buyers per day
More charts
Response time daily average, ms min 242ms, avg 533ms, max 754ms

09-21 to 10-20* UTC

Scores over time

x402 compliance low 14/14, high 14/14

09-21 to 10-20* UTC

Price percentile in Data own low to high; exact values below

09-21 to 10-20* UTC

Site signals present (of 6) own low to high; exact values below

09-21 to 10-20* UTC

Scores: one day per column, 09-21 to 10-20*, on the columns of Response time. Uptime held below 100% on some days in this window, including any partial day. Daily readings remain in the Uptime strip and Values. The checklist grew from 11 to 14 checks on 2026-07-28, before this window. Pillar lines use their own low and high. Exact dated readings are available in each readout and in Values.

Each series spans only the dates it has data for. Every series is also served as JSON at /api/v1/services/afriref-pan-african-government-reference-data/price, /scores, /volume and /buyers.

Values

* today so far, partial (UTC).

The uptime summary counts completed UTC days only. The strip, readouts and table retain today's partial reading.

Daily snapshot total, 30d: $66.76, peak $52.03 on 10-19. The visible 30d total in Traction comes from the latest assessment. These sources can differ in their window, refresh time, cent rounding and shared-address attribution.

Daily address snapshots: 2026-09-21 to 2026-10-20 UTC; * today so far, partial (UTC). Daily snapshots store cents. A recorded $0.00 with settlements cannot distinguish exact zero from volume rounded away. Lost precision is unavailable here.

Settlement volume uses the stored USD valuation of tracked payments; it is distinct from token quantities. USD-pegged assets are valued at 1 USD per token in these rollups. The measured settlement floor does not cover all payments to this service.

Shared payout address (1 other service). These bars are the full shared address (operator-level), so do not sum them across the services that share it. Where a per-service figure is attributed, the assessment block and the ranking, it is the address total divided pro-quota by the 2 services sharing it: a declared convention, not an individually observed measure.

Per-service buyer and transaction counts are shown whole (integers), not divided; only volume is attributed pro-quota. A declared convention, not an individually observed measure.

Assessment history last recorded at . Each UTC day uses its last recorded run; missing readings stay unmeasured. Assessment history JSON · Measurement methodology.

Daily values, 2026-09-21 to 2026-10-20: address settlement volume in USD, distinct buyer and settlement counts, uptime percent, average response milliseconds, compliance passed/total, price percentile 0-100, site signals out of 6; UTC dates
DayVolumeBuyersSettlementsUptimeResponseCompliancePrice percentileSite signals
2026-09-21$6.00275100%666.38ms14/14p106/6
2026-09-22$0.0111100%754.08ms14/14p106/6
2026-09-23no datano datano data100%650.26ms14/14p106/6
2026-09-24$0.12223100%572.89ms14/14p106/6
2026-09-25$0.0323100%610.06ms14/14p106/6
2026-09-26$0.0111100%717.76ms14/14p106/6
2026-09-27$0.0111100%619.77ms14/14p106/6
2026-09-28$0.0111100%679.71ms14/14p106/6
2026-09-29$0.0111100%564.02ms14/14p106/6
2026-09-30$0.0111100%575.67ms14/14p106/6
2026-10-01$0.0111100%518.92ms14/14p106/6
2026-10-02$0.0111100%538.82ms14/14p106/6
2026-10-03$0.0111100%526.26ms14/14p106/6
2026-10-04no datano datano data100%432.81ms14/14p106/6
2026-10-05$0.0112100%561.20ms14/14p106/6
2026-10-06no datano datano data100%592.54ms14/14p106/6
2026-10-07no datano datano data100%655.22ms14/14p106/6
2026-10-08$4.5829598.89%604.72ms14/14p106/6
2026-10-09$0.101593.33%583.29ms14/14p106/6
2026-10-10$0.0111100%597.23ms14/14p106/6
2026-10-11$0.0211100%584.83ms14/14p106/6
2026-10-12$0.32137100%520.28ms14/14p106/6
2026-10-13no datano datano data98.89%459.84ms14/14p106/6
2026-10-14$2.00242100%375.22ms14/14p426/6
2026-10-15$0.0111100%277.52ms14/14p426/6
2026-10-16$0.0211100%241.71ms14/14p426/6
2026-10-17$1.062112100%280.72ms14/14p246/6
2026-10-18$0.36115100%335.25ms14/14p246/6
2026-10-19$52.033127100%358.08ms14/14p246/6
2026-10-20*no datano datano datano datano data14/14p246/6

Alternatives in Data

claw402 strong 97/100 100% up 30d $1.2k 30d
SniperX•x402 strong 97/100 99.9% up 30d $594.22 30d
glim.sh strong 95/100 100% up 30d $30.23 30d
cn402 strong 93/100 100% up 30d $39.08 30d
twit.sh strong 93/100 100% up 30d $48.33 30d

5 of 385 other ranked services in Data, ordered by the same measured score.

see the whole category

Own this service?

Keep this listing accurate. Ownership is proven with a domain check and every change is reviewed by hand.

Update this listing

Earn the verified tier: x402list pays a real call to this endpoint and, if it delivers, the service is delivery-verified. The fee covers the cost of the probe, not the badge; there is no refund if the call does not deliver. Agent and API only, no in-browser signing. See /api.

Verify this service ($0.25)
Embed a badge

HTML

<a href="https://x402-list.com/services/afriref-pan-african-government-reference-data?utm_source=badge&utm_medium=referral&utm_campaign=embed">
  <img src="https://x402-list.com/badge/afriref-pan-african-government-reference-data.svg" alt="AfriRef - Pan-African government reference data listed on x402-list" height="28">
</a>

Markdown

[![AfriRef - Pan-African government reference data on x402-list](https://x402-list.com/badge/afriref-pan-african-government-reference-data.svg)](https://x402-list.com/services/afriref-pan-african-government-reference-data?utm_source=badge&utm_medium=referral&utm_campaign=embed)

HTML, live uptime variant

<a href="https://x402-list.com/services/afriref-pan-african-government-reference-data?utm_source=badge&utm_medium=referral&utm_campaign=embed">
  <img src="https://x402-list.com/badge/afriref-pan-african-government-reference-data.svg?data=uptime" alt="AfriRef - Pan-African government reference data uptime on x402-list" height="28">
</a>
Delisting

To request delisting, email info@x402-list.com or update your listing at /services/afriref-pan-african-government-reference-data/update.