For developers and AI agents

Free tools API

Every free tool is an HTTP endpoint on https://app.superbooks.io that needs no account and no key. Responses are JSON, or Markdown when you send Accept: text/markdown. Errors follow RFC 9457. The endpoints are also in the OpenAPI document under the “Free tools” tag.

Endpoints

  • https://app.superbooks.io/api/tools/invoice.pdf — Make a PDF invoice with the details your country requires: US, Canada, UK, Germany, France, Netherlands or Australia. Page
  • https://app.superbooks.io/api/tools/e-invoicing-mandates — Which countries require e-invoices, from when and in which formats, each date linked to its official source. Page
  • https://app.superbooks.io/api/tools/gst-hst-calculator — Add or remove Canadian GST, HST, PST or QST for any province or territory. Page
  • https://app.superbooks.io/api/tools/mileage — Business mileage at the 2026 IRS, CRA and HMRC rates for the US, Canada and the UK. Page
  • https://app.superbooks.io/api/tools/vat-calculator — Add or remove VAT, or reverse it from a gross price, at the current rate for the UK, any EU country, Switzerland or Norway. Page
  • https://app.superbooks.io/api/tools/vat-rates — Standard and reduced VAT rates for 30 European countries, each with its official source and check date. Page
  • https://app.superbooks.io/api/tools/vat-check — Check an EU VAT number against VIES, or a UK one against its HMRC check digits. Page
curl -H "Accept: text/markdown" "https://app.superbooks.io/api/tools/vat-calculator?country=FR&amount=250&mode=remove"

Limits

Each endpoint allows 30 requests a minute and 300 a day per IP address. A VAT number check counts once per number, so a batch of ten counts ten. The invoice PDF is the exception: 10 a minute and 20 a day. Past a limit the answer is 429 with a Retry-After header in seconds.

Errors

An error is an application/problem+json document whose type links to one of these entries.

invalid-input (400)
A parameter is missing or out of range; the field name is in the problem's field member.
invalid-json (400)
The POST body is not valid JSON.
batch-too-large (400)
More than ten VAT numbers in one request.
unknown-country (404)
The country code is not one of the 30 covered: the EU-27 (EL or GR for Greece), GB, CH and NO.
render-failed (500)
The invoice PDF could not be rendered on our side; try again.
rate-limited (429)
The per-address limit for this endpoint is spent; wait the Retry-After seconds.