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.55251292873983
This 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
}
period
Can be one of:
months
weeks
sleeps
days
hours
minutes
seconds
Name | Required? | Default |
---|---|---|
timezone | No | UTC |
Returns a JSON number.
49.11484347222222
This 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"
language
You may optionally specify the joke language with ?language=
.
The language defaults to en
, and can be one of:
en
timezone
You 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.