---
title: "One job listing"
method: GET
path: "/api/jobs/{id}"
tags: ["Jobs"]
---

# One job listing

`GET /api/jobs/{id}`

## Request

- Base URL: `https://noozra.com`
- URL: `https://noozra.com/api/jobs/{id}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/noozra/apis/noozra-news-api/docs/api/jobs/:id/get.ts> (a function with typed inputs; its response is checked against the schema)

One listing, in the shape `/api/jobs` lists it. Without API Pro, an open listing posted in the last 14 days; with it, any listing, closed ones included.

## Path parameters

- `id` string, uuid, required

## Response `200`

OK

- Job
  - `apply_url` string, uri: Only for an employer's own listing or a job posted on Noozra: where to apply.
  - `categories` string[], required: Category slugs; ["any"] = listed under every category.
  - `company` string, required
  - `country` string, nullable, required: ISO 3166-1 alpha-2 when the listing names a country; else null. An employer's listing names one when its location does; listings from other job boards name none.
  - `description` string: Only for an employer's own listing (its first 500 characters) or a job posted on Noozra: the employer's own text. A listing from another job board never carries its text; follow `url`.
  - `employment_type` 'FULL_TIME' | 'PART_TIME' | 'CONTRACTOR' | 'TEMPORARY' | 'INTERN' | 'OTHER' | 'null', nullable, required: schema.org employmentType, or null when the listing did not say.
  - `expires_at` string, date-time, required: When the listing closes.
  - `from_employer` boolean, required: Read from the employer's own job board.
  - `hybrid` boolean, required: Part on site, part remote. Never true alongside `remote`.
  - `id` string, uuid, required
  - `location` string, required: Where the job is, as the listing says ("Remote" for most).
  - `noozra_url` string, uri, required: The listing's page on Noozra.
  - `posted_at` string, date-time, required
  - `remote` boolean, required: Fully remote.
  - `salary` JobSalary
    - `currency` string, nullable: ISO 4217, such as USD.
    - `max` integer, nullable
    - `min` integer, nullable
  - `source` string, required: Where the listing comes from: "{Company} careers" for an employer's own job board, We Work Remotely, RemoteOK, Arbeitnow, or Noozra. Name it when you show the listing.
  - `title` string, required
  - `url` string, uri, required: The original listing; for a job posted on Noozra, its Noozra page. Link to this.

## Other responses

- `400`: Not a UUID
- `401`: No API key, or an invalid or revoked one
- `404`: Unknown listing (or, without API Pro, one posted more than 14 days ago or closed)
- `429`: Daily rate limit exceeded (honor the Retry-After header)

## Changes

- **2026-10-29** `e0c2d7df6d6f`: 1 info
  - api tag `Jobs` added
- **2026-10-04** `89d69ee01d0b`: 1 info
  - added the required property `from_employer` to the response with the `200` status
- **2026-10-03** `26af087dc407`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/noozra/apis/noozra-news-api/changes/api/jobs/:id/get.md)

---

[API](https://skmtc.dev/noozra/apis/noozra-news-api.md) - [All operations](https://skmtc.dev/noozra/apis/noozra-news-api/llms.txt) - [OpenAPI document](https://skmtc.dev/noozra/apis/noozra-news-api/revisions/9067da767e84?raw)
