Skip to content

MirageScouting REST API

Open roles, as an API

Two read-only endpoints over the public job board: the same roles, companies and salaries the /jobs pages show. No key and no sign-in.

Quickstart

One request

Remote product roles, five per page:

curl "https://www.miragescouting.de/api/v1/jobs?query=product&workMode=REMOTE&limit=5"

Each job has a url to its public page; pass nextCursor as cursor for the next page.

Reference

Endpoints

Generated from the OpenAPI description, so this list and the spec never disagree.

GET/api/v1/jobslistJobs

Search open roles

Lists open roles on the public job board, newest first; sponsored roles are pinned on the first page and carry a non-null `promotion`. Filters combine with AND; text filters are case-insensitive substring matches. Page with `nextCursor`.

Parameters

queryquery · string, ≤ 200 chars
Text in the job title.
companyquery · string, ≤ 200 chars
Text in the company name.
locationquery · string, ≤ 200 chars
Text in the location, e.g. Berlin.
workModequery · REMOTE | HYBRID | ONSITE
Where the work happens.
seniorityquery · string, ≤ 50 chars
Seniority level, e.g. SENIOR.
employmentTypequery · string, ≤ 50 chars
Employment type, e.g. FULL_TIME.
cursorquery · string, ≤ 512 chars
The `nextCursor` of the previous page.
limitquery · integer, 1–50, default 20
Page size (default 20).

Responses

  • 200 — A page of open roles.
  • 400 — Invalid query parameters (`invalid_request`).
  • 429 — Rate limit exceeded (`rate_limited`).
  • 503 — The job board is temporarily unavailable (`upstream_unavailable`).

GET/api/v1/jobs/{jobId}getJob

Get one open role

Returns one open role with its full description, benefits and company details. 404 when the role does not exist or is not public (the API never says which).

Parameters

jobId *path · uuid
The job's id (from listJobs).

Responses

  • 200 — The open role.
  • 400 — jobId is not a UUID (`invalid_request`).
  • 404 — No public job with this id (`not_found`).
  • 429 — Rate limit exceeded (`rate_limited`).
  • 503 — The job board is temporarily unavailable (`upstream_unavailable`).

Errors

One error shape

Every error is { "error": { "code", "message", "details"? } }.

  • 400 · invalid_request

    A parameter is out of range or malformed; details names the field.

  • 404 · not_found

    No public job with this id. The API never says whether it exists but is not public.

  • 429 · rate_limited

    Too many requests; wait for the Retry-After seconds.

  • 503 · upstream_unavailable

    The job board is briefly unavailable; retry after Retry-After seconds.

Rate limits

120 requests per minute per IP

Every response carries the IETF RateLimit and RateLimit-Policy fields and RateLimit-Limit / -Remaining / -Reset, so a client can slow down before it is refused. A 429 carries Retry-After in seconds.