Introduction
Agnitio is Lightcast’s primary tool for exploring labor market data. It supports both simple and complex queries across industries, occupations, geographies, and demographics. While it follows a read-only REST interface, many endpoints are dynamic and data-driven, so conventional API documentation may not fully capture its capabilities. This guide covers the essentials of using Agnitio, including authentication and rate limits.
Agnitio helps answer questions such as:
- How many self-employed workers will there be in a specific occupation in 2030?
- Which industries are most concentrated in each county?
- How many people earned a particular award in a region last year?
- What is the median wage for a specific job group?
Its flexible design lets you query aggregated data across areas, industries, occupations, and more. Agnitio is part of Lightcast’s broader data ecosystem; for example, Job Posting Analytics is available through a separate dedicated API.
Core LMI datasets are released regularly, and older versions are retired as new ones arrive. For example, if 2024.3 is the latest U.S. release, the available versions would include 2023.4, 2024.1, 2024.2, and 2024.3.
Refer to the Core LMI Release Notes to stay updated on upcoming versions.
API Endpoint
Base URL:
https://agnitio.emsicloud.com/
Available Endpoints:
Method | Endpoint | Description |
---|---|---|
GET | /health | Performs a service health check (returns 200 if operational) |
GET | /status | Retrieves detailed system health information |
GET | /meta | Lists all available datasets |
GET | /meta/definitions | Provides dataset titles, descriptions, and version information |
GET | /<dataset> | Interface to query a specific dataset |
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 Core LMI API, the token must include the following scope:
agnitio
Rate Limits
A rate limit defines the number of API calls an app or user can make within a specific time period. If this limit is exceeded, requests may be throttled, causing them to fail.
All Agnitio API requests are subject to rate limits. Most responses include headers that show your current usage and remaining quota, for example:
X-Rate-Limit-Limit: 5m
X-Rate-Limit-Remaining: 299
Default Rate Limits:
Each user or application can make up to 300 requests every 5 minutes. If you need a higher limit, please reach out to your account manager.
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=agnitio
Request 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 classification_api or lightcast_open based on your access. |
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 request. |
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 | Auth error. |
404 | Not Found | Resource not found. |