Introduction
The Job Postings Company API provides access to job postings collected directly from employer websites across global markets. It allows you to retrieve, filter, and analyze employer-sourced postings without deduplication or auto-expiration logic applied.
Results reflect postings as captured from the employer source and are not restricted to predefined country sets. If postings are available across multiple countries, all available countries are returned.
This API is suited for workflows requiring direct employer-source visibility and raw posting activity.
Note: By default, all clients are allowed a maximum of 5 requests per second. Contact us if you require higher limits.
Request Headers
(*) Indicates the action to be required
All requests must include the following headers:
| Header Key | Value | Description |
|---|---|---|
| *Authorization | Bearer <ACCESS_TOKEN> | This is the token obtained from the Authentication API. Include it in this header to authorize the request. (This must be included in all authenticated requests) |
| Content-Type | application/json | Required for endpoints that accept a request body. Specifies that the body is in JSON format. |
Authentication
All endpoints in this category require an OAuth 2.0 Bearer Token for authentication. Tokens are granted through Lightcast’s Authentication API and are valid for 1 hour.
To access the Job Postings Company API, the token must include the following scope:
postings:company(for expanded access)
Sample Request
curl --request POST \
--url https://auth.emsicloud.com/connect/token \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data client_id=CLIENT_ID \
--data client_secret=CLIENT_SECRET \
--data grant_type=client_credentials \
--data scope=postings:companyRequest Parameters
| Parameter | Type | Description |
|---|---|---|
| client_id | string | The client ID provided by Lightcast. |
| client_secret | string | The client secret associated with your client ID. |
| grant_type | string | Must be set to client_credentials. |
| scope | string | Use postings:company based on your access. |
Filtering
All endpoints support an extensive filter request object, allowing you to narrow job postings to specific subsets.
Required Filter Property
when– Filters job postings by date, either"active"for currently active postings or an object specifyingstartandenddates.
Shorthand Filter Example
{
"when": {
"start": "2020-01",
"end": "2020-06"
},
"skills_name": [
"SQL (Programming Language)",
"Sales"
]
}Matches company postings that include either SQL or Sales in the first six months of 2020.
Sample Response
{
"access_token": "<ACCESS_TOKEN>",
"expires_in": 3600,
"token_type": "Bearer"
}Note that the Tokens expire after 3600 seconds. To maintain uninterrupted access, refresh the token before it expires. To know more about this, refer to the Authentication guide.
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| access_token | string | The token used to authorize the API requests. |
| expires_in | integer | Number of seconds before the token expires. |
| token_type | string | Indicates the type of token. (Always Bearer). |
Status Code Summary
| Code | Meaning | Description |
|---|---|---|
| 200 | OK | Request was successful. |
| 400 | Bad Request | The request was unacceptable, often due to missing a required parameter. |
| 401 | Unauthorized | Authentication error. |
| 404 | Not Found | Resource not found. |
For a complete list of HTTP status codes and their meanings, refer here.

