GET /v1/donts
Don'ts for one destination
Send exactly one destination code. If several are sent, the first in this order is used: iata → icao → iso2 → iso3 → isonum; the others are listed in warnings. Codes are not case-sensitive and stray spaces are ignored.
Needs your key in the X-API-Key header.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
iata |
query | string | IATA airport code (3 letters). Whole-city codes such as Example: |
icao |
query | string | ICAO airport code (4 letters). Example: |
iso2 |
query | string | ISO 3166-1 alpha-2 country code. Example: |
iso3 |
query | string | ISO 3166-1 alpha-3 country code. Example: |
isonum |
query | string | ISO 3166-1 numeric country code. Leading zeros are optional ( Example: |
from_iata |
query | string | Origin: where the traveller comes from. Accepted and recorded now; used to skip don'ts the traveller already knows from home once the origin logic is active. An unknown origin never makes the call fail; it gives a warning. Example: |
from_icao |
query | string | Origin as ICAO airport code. See |
from_iso2 |
query | string | Origin as ISO alpha-2 country code. See |
from_iso3 |
query | string | Origin as ISO alpha-3 country code. See |
from_isonum |
query | string | Origin as ISO numeric country code. See |
limit |
query | integer · default 100 |
How many don'ts per page, best first (1 to 100, default 100). Example: |
page |
query | integer · default 1 |
Which page, starting at 1. Ranks continue across pages (page 2 with |
pictures |
query | string · one of yes, no · default yes |
Include picture links ( |
format |
query | string · one of json, xml, pdf · default json |
Answer format. All formats come from the same ranked answer. A PDF counts as several calls. |
compact |
query | string · one of yes, no · default no |
|
lang |
query | string · default en |
Language. Only |
ref1 |
query | string · up to 100 characters | Your own reference, for example a booking number (up to 100 characters), echoed back and logged if your plan stores it. Never put personal data here (names, emails, passport numbers). |
ref2 |
query | string · up to 100 characters | Second reference field. See |
ref3 |
query | string · up to 100 characters | Third reference field. See |
Answers
| Status | Meaning |
|---|---|
200 | The don'ts for the destination, best first. |
400 | The call is not complete or not valid ( |
401 | No key, or the key is not valid ( |
402 | A new month of the plan started unpaid, so every key of the account is paused ( |
403 | The key is switched off, or the plan does not include this ( |
404 | The code is not known, or the address does not exist ( |
429 | Two different cases: |
500 | Something went wrong on our side ( |
503 | The API is temporarily unavailable ( |
GET /v1/airports/{code}
Don'ts for an airport
code is an IATA code (3 letters, for example NRT) or an ICAO code (4 letters, for example RJAA). Same answer as /v1/donts?iata=… or ?icao=….
Needs your key in the X-API-Key header.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
code required |
path | string | Example: |
from_iata |
query | string | Origin: where the traveller comes from. Accepted and recorded now; used to skip don'ts the traveller already knows from home once the origin logic is active. An unknown origin never makes the call fail; it gives a warning. Example: |
from_icao |
query | string | Origin as ICAO airport code. See |
from_iso2 |
query | string | Origin as ISO alpha-2 country code. See |
from_iso3 |
query | string | Origin as ISO alpha-3 country code. See |
from_isonum |
query | string | Origin as ISO numeric country code. See |
limit |
query | integer · default 100 |
How many don'ts per page, best first (1 to 100, default 100). Example: |
page |
query | integer · default 1 |
Which page, starting at 1. Ranks continue across pages (page 2 with |
pictures |
query | string · one of yes, no · default yes |
Include picture links ( |
format |
query | string · one of json, xml, pdf · default json |
Answer format. All formats come from the same ranked answer. A PDF counts as several calls. |
compact |
query | string · one of yes, no · default no |
|
lang |
query | string · default en |
Language. Only |
ref1 |
query | string · up to 100 characters | Your own reference, for example a booking number (up to 100 characters), echoed back and logged if your plan stores it. Never put personal data here (names, emails, passport numbers). |
ref2 |
query | string · up to 100 characters | Second reference field. See |
ref3 |
query | string · up to 100 characters | Third reference field. See |
Answers
| Status | Meaning |
|---|---|
200 | The don'ts for the destination, best first. |
400 | The call is not complete or not valid ( |
401 | No key, or the key is not valid ( |
402 | A new month of the plan started unpaid, so every key of the account is paused ( |
403 | The key is switched off, or the plan does not include this ( |
404 | The code is not known, or the address does not exist ( |
429 | Two different cases: |
500 | Something went wrong on our side ( |
503 | The API is temporarily unavailable ( |
GET /v1/countries/{code}
Don'ts for a country
code is ISO 3166-1 alpha-2 (JP), alpha-3 (JPN) or numeric (392). Three letters are read as alpha-3, three digits as numeric. Same answer as /v1/donts?iso2=… and so on.
Needs your key in the X-API-Key header.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
code required |
path | string | Example: |
from_iata |
query | string | Origin: where the traveller comes from. Accepted and recorded now; used to skip don'ts the traveller already knows from home once the origin logic is active. An unknown origin never makes the call fail; it gives a warning. Example: |
from_icao |
query | string | Origin as ICAO airport code. See |
from_iso2 |
query | string | Origin as ISO alpha-2 country code. See |
from_iso3 |
query | string | Origin as ISO alpha-3 country code. See |
from_isonum |
query | string | Origin as ISO numeric country code. See |
limit |
query | integer · default 100 |
How many don'ts per page, best first (1 to 100, default 100). Example: |
page |
query | integer · default 1 |
Which page, starting at 1. Ranks continue across pages (page 2 with |
pictures |
query | string · one of yes, no · default yes |
Include picture links ( |
format |
query | string · one of json, xml, pdf · default json |
Answer format. All formats come from the same ranked answer. A PDF counts as several calls. |
compact |
query | string · one of yes, no · default no |
|
lang |
query | string · default en |
Language. Only |
ref1 |
query | string · up to 100 characters | Your own reference, for example a booking number (up to 100 characters), echoed back and logged if your plan stores it. Never put personal data here (names, emails, passport numbers). |
ref2 |
query | string · up to 100 characters | Second reference field. See |
ref3 |
query | string · up to 100 characters | Third reference field. See |
Answers
| Status | Meaning |
|---|---|
200 | The don'ts for the destination, best first. |
400 | The call is not complete or not valid ( |
401 | No key, or the key is not valid ( |
402 | A new month of the plan started unpaid, so every key of the account is paused ( |
403 | The key is switched off, or the plan does not include this ( |
404 | The code is not known, or the address does not exist ( |
429 | Two different cases: |
500 | Something went wrong on our side ( |
503 | The API is temporarily unavailable ( |
GET /v1/sample/donts
Free sample, no key needed
Same options and answer as /v1/donts, but only for the sample places shown on the Try it page and with a small daily limit per visitor address. Includes the PDF. Any other place returns 403 sample_place_only.
No key needed.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
iata |
query | string | IATA airport code (3 letters). Whole-city codes such as Example: |
icao |
query | string | ICAO airport code (4 letters). Example: |
iso2 |
query | string | ISO 3166-1 alpha-2 country code. Example: |
iso3 |
query | string | ISO 3166-1 alpha-3 country code. Example: |
isonum |
query | string | ISO 3166-1 numeric country code. Leading zeros are optional ( Example: |
limit |
query | integer · default 100 |
How many don'ts per page, best first (1 to 100, default 100). Example: |
page |
query | integer · default 1 |
Which page, starting at 1. Ranks continue across pages (page 2 with |
pictures |
query | string · one of yes, no · default yes |
Include picture links ( |
format |
query | string · one of json, xml, pdf · default json |
Answer format. All formats come from the same ranked answer. A PDF counts as several calls. |
compact |
query | string · one of yes, no · default no |
|
Answers
| Status | Meaning |
|---|---|
200 | The don'ts for the destination, best first. |
400 | The call is not complete or not valid ( |
403 | The key is switched off, or the plan does not include this ( |
404 | The code is not known, or the address does not exist ( |
429 | Two different cases: |
500 | Something went wrong on our side ( |
503 | The API is temporarily unavailable ( |
GET /v1/health
Is the API running?
No key needed.
Answers
| Status | Meaning |
|---|---|
200 | The API is running. |
503 | The API is temporarily unavailable ( |
Authentication
Your secret key, sent in the X-API-Key header on every call. Keys are for servers only; never put a normal key into a web page or app that users can download. Keys in the address (query string) are not accepted, because addresses end up in logs.
X-API-Key: dk_live_…Errors
Every error has the same shape, so your program can always read error.code. When a call fails, carry on without the don'ts (for example, send the confirmation email without the PDF) and try again later.
{ "error": { "code": "not_found", "message": "Code XXX was not found.", "hint": "…", "contact": "api@dondoo.com" } }
All codes: missing_destination invalid_code invalid_parameter page_out_of_range missing_key invalid_key key_disabled payment_due format_not_in_plan sample_place_only not_found unknown_address too_fast limit_reached internal_error unavailable pdf_unavailable
Which status goes with which code is listed under "Answers" for each address above.