Introduction
The Resume Classification API provides resume parsing and classification capabilities. It extracts and structures candidate information from resumes, including skills, work experience, education, certifications, and other relevant attributes.
The classified resume data returned by this API is generated through the Resume Parser and can optionally include Lightcast taxonomy classification support based on access level.
Key capabilities include:
- Locale detection-based parsing
- Supported document formats: PDF, TXT
(DOC, DOCX, ODT, WPD, WPS, HTML, HTM, and RTF require enterprise access) - OCR support for the following locales:
en-US,en-CA,en-AU,en-NZ,en-AE,en-AR,en-BR,en-MX,en-AT,en-CH,en-IT,en-BE,en-ES,en-NL,en-FR,en-SE,en-GB,en-IE,en-IN,en-JP,en-ZA,fr-FR,fr-BE - Supported image formats for OCR: JPG (JPEG), PNG, TIFF, Image-based PDF, GIF, BMP, WEBP, and PNM
Note: By default, clients are allowed a maximum of 10 requests per second. Contact us if you require adjustments.
Request Headers
(*) Indicates the action is required
All requests must include the following headers:
| Header Key | Value | Description |
|---|---|---|
| *Authorization | Bearer <ACCESS_TOKEN> | OAuth bearer token obtained from the Authentication API. Required for all authenticated requests. |
| Content-Type | application/json or multipart/form-data | application/json for JSON requests; multipart/form-data when uploading files. |
Authentication
All endpoints require an OAuth 2.0 Bearer Token. Tokens are granted through the Authentication API at https://auth.emsicloud.com/connect/token and are valid for 1 hour.
For the Resume Classification API you may request a token with one of these scopes depending on access:
| Scope name | Description | Access |
|---|---|---|
lightcast_open | Trial: allows PDF and TXT documents for resume parsing. | https://lens.emsiservices.com/resume/parse |
parse_api | Enterprise: allows all supported document types for resume parsing. | https://lens.emsiservices.com/resume/parse |
classification_api | Enterprise + classification: all document types plus Lightcast taxonomy classification support. | https://lens.emsiservices.com/resume/parse and https://lens.emsiservices.com/resume/classify |
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=lightcast_openRequest 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 | One of: lightcast_open, parse_api, classification_api. |
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 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.

