---
title: "Standard VAT rate history (dated periods with the law that set each rate). Pro and Compliance"
method: GET
path: "/v1/countries/{country}/vat/history"
tags: ["Tax data"]
---

# Standard VAT rate history (dated periods with the law that set each rate). Pro and Compliance

`GET /v1/countries/{country}/vat/history`

## Request

- Base URL: `https://api.africacompliancedata.com`
- URL: `https://api.africacompliancedata.com/v1/countries/{country}/vat/history`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

Coverage starts at the history's covered_from date (usually 2015-01-01) or at the earliest period backed by an official source; a period that began earlier carries from_note. Countries without a dated history return an empty list and a warning.

## Path parameters

- `country` string, required

## Response `200`

VAT history

- object
  - `country` string, required
  - `country_name` string
  - `coverage` 'ready' | 'partial' | 'gap', required
  - `warning` string: When coverage is partial or gap, the year's holiday list is incomplete, or no value can be given
  - `sources` object, required
  - `dataset_version` string, required
  - `disclaimer` string, required
  - `standard_rate_history` VatPeriod[]
    - `rate` number
    - `from` string, date, nullable
    - `to` string, date, nullable
    - `from_note` string: When the period started before the documented history, e.g. 'in force on 2015-01-01 (earlier start not covered)'
    - `legal_basis` string
    - `source_url` string, nullable
    - `confidence` 'high' | 'medium' | 'low'
    - `notes` string
  - `covered_from` string, date, nullable: First date the dated history covers
  - `current` number, nullable: Today's standard rate
  - `last_verified` string, date, nullable: When the history was last checked

## Other responses

- `401`: Missing or invalid API key
- `403`: Tax data needs the Pro or Compliance plan (or the key is paused for review)
- `404`: Unknown country, path or webhook id
- `429`: Rate limit for the plan exceeded, or key checks busy (many new keys from your network); see Retry-After
- `503`: Key check temporarily unavailable, or webhook storage unavailable (webhook endpoints); retry after Retry-After seconds

---

[API](https://skmtc.dev/africacompliancedata/apis/africa-compliance-data-api.md) · [All operations](https://skmtc.dev/africacompliancedata/apis/africa-compliance-data-api/llms.txt) · [OpenAPI document](https://skmtc.dev/africacompliancedata/apis/africa-compliance-data-api/revisions/cb17c8aafda8?raw)
