Getting started
From a new account to your first response in four steps.
1. Create an account
The API uses personal keys tied to a JokerPrice account. Every new account starts with a 30-day free trial, no card needed, and the trial includes the API.
2. Create an API key
In the app, open Data & API and choose Create key. Give it a name you will recognize, such as spreadsheet or reporting script. The full key starts with ss_ and is shown only once, because JokerPrice stores only a hash of it. Copy it into your password manager or secret store.
Your plan sets how many active keys you can hold: 5 during the free trial and up to 10 on API Business. Revoke one there at any time; requests with it stop working immediately.
3. Store the key in your environment
export JOKERPRICE_API_KEY="ss_your_key_here"$env:JOKERPRICE_API_KEY = "ss_your_key_here"4. Make your first request
List the destinations you can query. Each item has a slug you will use with the other endpoints.
curl -H "Authorization: Bearer $JOKERPRICE_API_KEY" \
"https://jokerprice.com/api/v1/markets"const res = await fetch("https://jokerprice.com/api/v1/markets", {
headers: { Authorization: `Bearer ${process.env.JOKERPRICE_API_KEY}` },
});
if (!res.ok) throw new Error((await res.json()).error.message);
const { markets } = await res.json();
console.table(markets.map(m => ({ slug: m.slug, listings: m.listings, median: m.nightly.median })));import os, requests
res = requests.get(
"https://jokerprice.com/api/v1/markets",
headers={"Authorization": f"Bearer {os.environ['JOKERPRICE_API_KEY']}"},
timeout=30,
)
res.raise_for_status()
for m in res.json()["markets"]:
print(m["slug"], m["listings"], m["nightly"]["median"])Reading the response
- Amounts are SAR.
nightlyvalues are asking rates before platform fees. - Shares such as
occupancyare fractions:0.47means 47%. - Check
tracker.maturity(ormetrics.maturity) before trusting occupancy and ADR: it is"collecting"until a scope has 7 days of tracking and 100 observed listing-nights. - Errors return a JSON body with
error.code,error.messageandrequestId. See Errors.
Next steps
- Follow the quickstart tutorial to chain markets, metrics and estimates.
- Browse every endpoint on Endpoints.
- Prefer to ask questions in plain language? Set up the MCP server.