---
title: "Job"
description: "Get one LinkedIn job posting."
---

```http
GET | POST /v1/linkedin/job
```

Send parameters as a query string with `GET`, or as a JSON body with `POST`. Both are equivalent.

## What to Pass

| Pass | Reads | Notes |
|---|---|---|
| `id` | The job | A numeric id, `urn:li:jobPosting:…` or the URL |

Pass one source per call. Every identifier also takes the page URL.

## Parameters

| Parameter | Type | Required | Notes |
|---|---|---|---|
| `id` | string |  | Numeric job id, urn:li:jobPosting:<id>, or the job URL. |

## Request

```bash tab="cURL"
curl "https://gateway.apinoa.com/v1/linkedin/job?id=4419969671" \
  -H "x-api-key: $APINOA_API_KEY"
```

```js tab="JavaScript"
const params = new URLSearchParams({ id: "4419969671" });
const res = await fetch(`https://gateway.apinoa.com/v1/linkedin/job?${params}`, {
  headers: { "x-api-key": process.env.APINOA_API_KEY },
});
const { success, data, error } = await res.json();
```

```python tab="Python"
import os

import requests

res = requests.get(
    "https://gateway.apinoa.com/v1/linkedin/job",
    params={"id": "4419969671"},
    headers={"x-api-key": os.environ["APINOA_API_KEY"]},
)
body = res.json()
```

## Response

Returns `Job` in `data`. A real response, shortened: arrays keep their first entries and long text is cut.

```json
{
  "success": true,
  "data": {
    "platform": "linkedin",
    "id": "4419969671",
    "url": "https://www.linkedin.com/jobs/view/senior-software-engineer-%E2%80%93-go-golang-at-general-motors-4419969671",
    "title": "Senior Software Engineer – Go (Golang)",
    "company": {
      "name": "General Motors",
      "slug": "general-motors",
      "url": "https://www.linkedin.com/company/general-motors",
      "logoUrl": "https://media.licdn.com/dms/image/v2/D4E0BAQEfAZWzerj03w/company-logo_100_100/B4EZdkPGXYGcAQ-/0/1749733370529/general_m…"
    },
    "location": "Warren, MI",
    "postedText": "2 weeks ago",
    "applicants": 197,
    "seniority": "Not Applicable",
    "employmentType": "Full-time",
    "industries": "Motor Vehicle Manufacturing, Appliances, Electrical, and Electronics Manufacturing, and IT Services and IT Consulting",
    "description": "Job Description\n\nAs a Senior Software Engineer – Go (Golang), you will design, develop, and deliver high-performance mi…",
    "descriptionHtml": "<strong>Job Description<br><br></strong>As a Senior Software Engineer – Go (Golang), you will design, develop, and deli…"
  }
}
```

## Errors

| Status | Code | Meaning |
|---|---|---|
| 400 | `INVALID_PARAMS` | A parameter is missing, unknown or out of range. The message names it. |
| 401 | `UNAUTHORIZED` | The `x-api-key` header is missing, or the key is revoked or unknown. |
| 402 | `INSUFFICIENT_BALANCE` | The balance does not cover this call. Top up in the dashboard. |
| 404 | `NOT_FOUND` | The account, post or group does not exist, or is private, deleted or age-restricted. |
| 429 | `MARKETPLACE_SATURATED` | Too many concurrent calls. Retry after the `Retry-After` seconds. |
| 502 | `UPSTREAM_ERROR` | The platform answered with something unusable. Retry with backoff. |

Every code is listed in [Errors](/docs/errors). Failed calls are not billed.

## Pricing

**Price** $0.001 per call. [List price](https://apinoa.com/en/pricing); the rate steps down above 1,000 calls a day.

## Notes

- A LinkedIn-only record; its fields are shown in the response.
