Overview

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:

MethodEndpointDescription
GET/healthPerforms a service health check (returns 200 if operational)
GET/statusRetrieves detailed system health information
GET/metaLists all available datasets
GET/meta/definitionsProvides 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 KeyValueDescription
*AuthorizationBearer <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-Typeapplication/jsonRequired 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

ParameterTypeDescription
client_idstringThe client ID provided by Lightcast.
client_secretstringThe client secret associated with your client ID.
grant_typestringMust be set to client_credentials.
scopestringUse 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

ParameterTypeDescription
access_tokenstringThe token used to authorize the API request.
expires_inintegerNumber of seconds before the token expires.
token_typestringIndicates the type of token. (Always Bearer.

Status Code Summary

CodeMeaningDescription
200OKRequest was successful.
400Bad RequestThe request was unacceptable, often due to missing a required parameter.
401UnauthorizedAuth error.
404Not FoundResource not found.