Please read the terms of service before using the API.
Click on the cards to view more information about each endpoint.
Except for /joke, all endpoints have an IP-based rate limit of 2 requests per 10 seconds.
If you exceed this limit, you will be blocked for 10 seconds.
To make your own live countdown, use christmas.js.
Jokes are not rate-limited.
| Name | Required? | Default |
|---|---|---|
timezone | No | UTC |
Returns a JSON boolean, true or false.
true| Name | Required? | Default |
|---|---|---|
timezone | No | UTC |
Returns a JSON boolean, true or false.
true| Name | Required? | Default |
|---|---|---|
language | No | en |
Returns a JSON object with a question and answer property
{
"question": "What do you call a snowman with a six pack?",
"answer": "An abdominal snowman!"
}| Name | Required? | Default |
|---|---|---|
timezone | No | UTC |
Returns a JSON number.
86.55251292873983This returns the same numbers as /timeleft/:period, but all periods in a single request.
| Name | Required? | Default |
|---|---|---|
timezone | No | UTC |
Returns a JSON object.
{
"months": 1.6100726825288403,
"weeks": 7.015316686507936,
"sleeps": 50,
"days": 49.10721679398148,
"hours": 1178.5732030555555,
"minutes": 70714.39218333333,
"seconds": 4242863.531
}periodCan be one of:
monthsweekssleepsdayshoursminutesseconds| Name | Required? | Default |
|---|---|---|
timezone | No | UTC |
Returns a JSON number.
49.11484347222222This route gives the current live countdown. Please DO NOT make requests every second. Either only make requests upon user interaction, or only refresh every hour. If you want a live countdown, embed the fullscreen countdown page with an iframe, or use christmas.js to make your own.
| Name | Required? | Default |
|---|---|---|
timezone | No | UTC |
Returns a JSON object.
{
"days": 49,
"hours": 2,
"minutes": 44,
"seconds": 33
}| Name | Required? | Default |
|---|---|---|
timezone | No | UTC |
Returns a JSON string.
"Monday"languageYou may optionally specify the joke language with ?language=.
The language defaults to en, and can be one of:
entimezoneYou may optionally specify the timezone with ?timezone=.
The timezone defaults to UTC and can be any valid
IANA timezone name.
If not an exact match, the API will attempt to find a valid timezone given the input.
For example, London and GMT will resolve to Europe/London.
If a valid timezone can’t be resolved the API will respond with a HTTP 400 status code.