Getting started
Create your account, add payment, get your API key, and make your first Listings API call.
This guide walks you through creating an account, getting your first API key, and making a request against the Listings API.
1. Create your account
Pick a plan on the pricing page to open the sign-up form, then enter your first name, last name, work email, and company. Already have an account? Sign in instead.
2. Add payment
After you submit the form we send you to our payment provider to add a card. Your free trial starts right away and converts to the plan you picked when the trial ends, so cancel before then if you don't want to be charged. The pricing FAQ has the current trial length and plan limits.
3. Set your password and sign in
Once checkout is complete we email you a link to set your password and activate your account. After your password is set, sign in with your email and password, or choose Email me a sign-in link to receive a one-time magic link instead.
4. Get your API key
Your first API key is issued automatically when your account is created, find it in the dashboard under API Keys. To create another, choose New key, give it a name, and pick its access level (Read or Write).
5. Make your first request
Authenticate every request with an Authorization header whose value is the
literal string API (note the trailing space), followed by your key:
curl https://listingsapi.com/api/v4/locations \
-H "Authorization: API $LISTINGSAPI_KEY"
The API returns a GraphQL-style envelope, so the payload is nested rather than a
bare array: results live under data.allLocations, each record is an
edges[].node, and pageInfo carries the pagination cursor and totals.
{
"data": {
"allLocations": {
"edges": [
{
"cursor": "TG9jYXRpb246MTgwMDI4OQ==",
"node": {
"id": "TG9jYXRpb246MTgwMDI4OQ==",
"databaseId": 1800289,
"name": "Jenny Home",
"city": "Austin",
"stateIso": "TX",
"countryIso": "US"
}
}
],
"pageInfo": {
"endCursor": "TG9jYXRpb246MTgwMDI4OQ==",
"hasNextPage": false,
"total": 1
}
}
}
}
Every list endpoint follows this same edges / node / pageInfo shape. To
page forward, pass pageInfo.endCursor back as ?after=… while
pageInfo.hasNextPage is true, and stop as well if a page comes back with an
empty edges array. Each edge also carries its own cursor, and the last
edge's cursor is that page's endCursor, so either value works as ?after=.
Next steps
- Authentication: API key headers and key rotation.
- Error codes: HTTP status codes and the error envelope.
- SDKs: typed Python and Node clients.