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