Skip to main content

Quickstart

From nothing to a job application you created, moved and then threw away again — six requests against the sandbox, none of which touch real data.

1. Create a sandbox key

  • Open Settings → Developers.
  • Choose the sandbox environment and the read-and-write preset.
  • Copy the key. It starts with jat_test_ and is shown once.

Keep it in an environment variable rather than in the commands below. Every example here reads $JAT_KEY.

2. Find out who the key acts as

Always the first call. It tells you the environment, the scopes you were actually granted and the organizations the account belongs to — so you never have to guess which of those caused a later refusal.

Read the account behind the key
curl -s https://www.jobapplicationtracking.com/api/v1/me \
  -H "Authorization: Bearer $JAT_KEY"

3. List the boards

Lists come back as { data, hasMore, nextCursor }. Ids are opaque prefixed strings — brd_3, app_41 — so a value of the wrong kind is refused with a 400 rather than quietly missing.

List your boards
curl -s https://www.jobapplicationtracking.com/api/v1/boards \
  -H "Authorization: Bearer $JAT_KEY"

4. Create an application

Create an application on a board
curl -s -X POST https://www.jobapplicationtracking.com/api/v1/boards/brd_1/applications \
  -H "Authorization: Bearer $JAT_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "status": "applied",
    "company": { "name": "Northwind Traders" },
    "job": { "title": "Staff Engineer" }
  }'

Send an Idempotency-Key on every write you might retry. A repeat of the same key replays the first answer instead of creating a second card, and says so with an Idempotent-Replayed header.

5. Move it to another column

Move an application to interviewing
curl -s -X POST https://www.jobapplicationtracking.com/api/v1/applications/app_41/move \
  -H "Authorization: Bearer $JAT_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "status": "interviewing", "position": 0 }'

6. Put the sandbox back

A reset deletes everything the sandbox tenant owns and seeds the sample world again. It needs the sandbox:manage scope, which only the full-access preset grants.

Reset the sandbox
curl -s -X POST https://www.jobapplicationtracking.com/api/v1/sandbox/reset \
  -H "Authorization: Bearer $JAT_KEY"