Get Occupation Details

Get Occupation Details

Get Occupation Details

The 'Get Occupation Details' API enables developers to query and retrieve occupation details by ONET code or exact ONET occupation title.

About this data

The Web API gives occupation details by entering an exact ONET title or code, and other filters. The search matches occupations in the Occupational Information Network (O*NET) taxonomy, created by the Department of Labor for cross-agency use by federal, state and local government entities. You can see our current Occupation Profile tool here along with additional details regarding the data and sources. It is similar to the results you will receive using this API. Please note: When wage data is displayed, '100+' indicates a wage that is equal to or greater than $100.00 per hour. '208,000+' indicates a wage that is equal to or greater than $208,000 per year.

Resource URL

https://api.careeronestop.org/v1/occupation/{userId}/{keyword}/{location}

Example Code

using System;

using System.Net.Http;

using System.Net.Http.Headers;

using System.Threading.Tasks;

namespace CareerOneStopAPISample

{

    class Program

    {

        static void Main(string[] args)

        {

            CreateRequest().Wait();

        }

        private static async Task CreateRequest()

        {

    

            var uri = new UriBuilder(Uri.UriSchemeHttps, "api.careeronestop.org")

            {

                Path = "/v1/occupation/{userId}/{keyword}/{location}"

            };

            

            using (var http = new HttpClient())

            {

                http.DefaultRequestHeaders.Accept.Clear();

                http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "Your API Token");

                http.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                var response = await http.GetAsync(uri.Uri).ConfigureAwait(false);

                if (response.IsSuccessStatde)

                {

                    var result = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

                }

            }

        }

    }

}
import java.io.IOException;

import java.net.URI;

import java.net.URISyntaxException;

import org.apache.http.HttpEntity;

import org.apache.http.client.methods.CloseableHttpResponse;

import org.apache.http.client.methods.HttpGet;

import org.apache.http.client.utils.URIBuilder;

import org.apache.http.impl.client.CloseableHttpClient;

import org.apache.http.impl.client.HttpClients;

import org.apache.http.util.EntityUtils;

public class CareerOneStopAPISample {

    public static void main(String[] args) throws IOException, URISyntaxException {

    URI uri = new URIBuilder()

        .setScheme("https")

        .setHost("api.careeronestop.org")

        .setPath("/v1/occupation/{userId}/{keyword}/{location}")

        .build();

    CloseableHttpResponse response = null;

    HttpGet httpGet = null;

    try {

        CloseableHttpClient httpClient = HttpClients.createDefault();

        httpGet = new HttpGet(uri);

        httpGet.setHeader("Content-Type","application/json");

        httpGet.setHeader("Authorization", "Bearer Your API Token");

        response = httpClient.execute(httpGet);

        HttpEntity entity = response.getEntity();

        System.out.println(EntityUtils.toString(entity));

    } finally {

        if(httpGet != null) httpGet.releaseConnection();

        if(response != null) response.close();

    }

   }

}

Request Parameters

Refer to the following table for a list of the required and optional request parameters. All parameter names and values are case sensitive. Important: You must provide all required parameters. Submitting an empty request does not return all possible results; an empty request returns an error.

Parameter Name Value Required? Description
API Token
String
Yes
This value is the unique API Token provided to you during the CareerOneStop Web API registration process.
userId
String
Yes
This value is the unique UserID provided to you during the CareerOneStop Web API registration process.
keyword        
String
Yes
This value is the search term.
location        
String
Yes
This value accepts a city, state (Chicago, IL) or state (IL) or ZIP code (61299). For national data, use the numeral '0'.
training
Boolean    
No
This value will be true or false. If true, the response will include educational attainment, and typical education for this occupation.
interest
Boolean
No This value will be true or false. If true, the response will include O*NET's interests about this occupation.
videos
Boolean
No This value will be true or false. If true, the response will include a link to the COS video associated with this occupation.

tasks    

Boolean
No This value will be true or false. If true, the response will include O*NET tasks for this occupation.
dwas
Boolean
No This value will be true or false. If true, the response will include detailed work activities of occupation.
wages
Boolean
No This value will be true or false. If true, the response will include projected wages for this occupation.
alternateOnetTitles
Boolean
No This value will be true or false. If true, the response will include four alternate titles for this occupation.
projectedEmployment
Boolean
No This value will be true or false. If true, the response will include projected employment for this occupation.
ooh
Boolean
No This value will be true or false. If true, the response will include a link to the BLS occupational outlook handbook for this occupation.
stateLMILinks
Boolean
No This value will be true or false. If true, the response will include State Labor Market information links.
relatedOnetTitles
Boolean
No This value will be true or false. If true, the response will include a list of related O*NET occupations.
skills
Boolean
No This value will be true or false. If true, the response will include O*NET skills for this occupation.
knowledge
Boolean
No This value will be true or false. If true, the response will include O*NET knowledge areas for this occupation.
ability
Boolean
No This value will be true or false. If true, the response will include O*NET abilities for this occupation.
trainingPrograms
Boolean
No This value will be true or false. If true, the response will include programs of study associated with this occupation, through the SOC-CIP cross-walk.

Response Structure

{

  "OccupationDetail": [

    {

      "OnetTitle": "Registered Nurses",

      "OnetCode": "29-1141.00",

      "OnetDescription": "Assess patient health problems and needs, develop and implement nursing care plans, and maintain medical records. Administer nursing care to ill, injured, convalescent, or disabled patients. May advise patients on health maintenance and disease prevention or provide case management. Licensing or registration required.",

      "Wages": {

        "NationalWagesList": [

          {

            "RateType": "Annual",

            "Pct10": "48690",

            "Pct25": "57340",

            "Median": "70000",

            "Pct75": "85960",

            "Pct90": "104100",

            "StFips": "00",

            "Area": "000000",

            "AreaName": "United States"

          },

          {

            "RateType": "Hourly",

            "Pct10": "23.41",

            "Pct25": "27.57",

            "Median": "33.65",

            "Pct75": "41.33",

            "Pct90": "50.05",

            "StFips": "00",

            "Area": "000000",

            "AreaName": "United States"

          }

        ],

        "StateWagesList": [

          {

            "RateType": "Hourly",

            "Pct10": "21.92",

            "Pct25": "26.25",

            "Median": "31.76",

            "Pct75": "37.92",

            "Pct90": "45.49",

            "StFips": "51",

            "Area": "000051",

            "AreaName": "Virginia"

          },

          {

            "RateType": "Annual",

            "Pct10": "45600",

            "Pct25": "54610",

            "Median": "66060",

            "Pct75": "78870",

            "Pct90": "94620",

            "StFips": "51",

            "Area": "000051",

            "AreaName": "Virginia"

          }

        ],

        "BLSAreaWagesList": [],

        "WageYear": "2017",

        "SocData": "Yes",

        "SocWageInfo": {

          "SocCode": "291141",

          "SocTitle": "Registered Nurses",

          "SocDescription": ""

        }

      },

      "BrightOutlook": "Bright",

      "Green": "No",

      "COSVideoURL": "https://www.careeronestop.org/Videos/careeronestop-videos.aspx?videocode=29114100&op=y",

      "BrightOutlookCategory": "Rapid Growth

Numerous Job Openings",

      "AlternateTitles": null,

      "StFips": "51",

      "Location": "VA",

      "SocInfo": {

        "SocCode": "291141",

        "SocTitle": "Registered Nurses",

        "SocDescription": "Assess patient health problems and needs, develop and implement nursing care plans, and maintain medical records. Administer nursing care to ill, injured, convalescent, or disabled patients. May advise patients on health maintenance and disease prevention or provide case management. Licensing or registration required. Includes Clinical Nurse Specialists."

      },

      "RelatedOnetTitles": null,

      "TrainingPrograms": null

    }

  ],

  "RecordCount": 1,

  "DidYouMean": "",

  "AutoCorrection": ""

}
<OccupationProfile xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/XPAND.CareerOneStop.WebApi.ViewModels">

<AutoCorrection/>

<DidYouMean/>

<OccupationDetail>

    <OccupationProfileDetail>

        <AbilityDataList i:nil="true"/>

        <AlternateTitles xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" i:nil="true"/>

        <BrightOutlook>Bright</BrightOutlook>

        <BrightOutlookCategory>Rapid Growth&lt;BR&gt;Numerous Job Openings</BrightOutlookCategory>

        <COSVideoURL>/Videos/careeronestop-videos.aspx?videocode=29114100&amp;op=y</COSVideoURL>

        <Dwas i:nil="true"/>

        <EducationTraining i:nil="true"/>

        <Green>No</Green>

        <InterestDataList i:nil="true"/>

        <KnowledgeDataList i:nil="true"/>

        <Location>VA</Location>

        <OOHs i:nil="true"/>

        <OnetCode>29-1141.00</OnetCode>

        <OnetDescription>Assess patient health problems and needs, develop and implement nursing care plans, and maintain medical records. Administer nursing care to ill, injured, convalescent, or disabled patients. May advise patients on health maintenance and disease prevention or provide case management. Licensing or registration required.</OnetDescription>

        <OnetTitle>Registered Nurses</OnetTitle>

        <Projections i:nil="true"/>

        <RelatedOnetTitles xmlns:d4p1="http://schemas.datacontract.org/2004/07/System.Collections.Generic" i:nil="true"/>

        <SkillsDataList i:nil="true"/>

        <SocInfo>

            <SocCode>291141</SocCode>

            <SocDescription>Assess patient health problems and needs, develop and implement nursing care plans, and maintain medical records. Administer nursing care to ill, injured, convalescent, or disabled patients. May advise patients on health maintenance and disease prevention or provide case management. Licensing or registration required. Includes Clinical Nurse Specialists.</SocDescription>

            <SocTitle>Registered Nurses</SocTitle>

        </SocInfo>

        <StFips>51</StFips>

        <StateResourcesLinks i:nil="true"/>

        <Tasks i:nil="true"/>

        <TrainingPrograms xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" i:nil="true"/>

        <Video i:nil="true"/>

        <Wages>

            <BLSAreaWagesList/>

            <NationalWagesList>

                <WageDetails>

                    <Area>000000</Area>

                    <AreaName>United States</AreaName>

                    <Median>70000</Median>

                    <Pct10>48690</Pct10>

                    <Pct25>57340</Pct25>

                    <Pct75>85960</Pct75>

                    <Pct90>104100</Pct90>

                    <RateType>Annual</RateType>

                    <StFips>00</StFips>

                </WageDetails>

                <WageDetails>

                    <Area>000000</Area>

                    <AreaName>United States</AreaName>

                    <Median>33.65</Median>

                    <Pct10>23.41</Pct10>

                    <Pct25>27.57</Pct25>

                    <Pct75>41.33</Pct75>

                    <Pct90>50.05</Pct90>

                    <RateType>Hourly</RateType>

                    <StFips>00</StFips>

                </WageDetails>

            </NationalWagesList>

            <SocData>Yes</SocData>

            <SocWageInfo>

                <SocCode>291141</SocCode>

                <SocDescription/>

                <SocTitle>Registered Nurses</SocTitle>

            </SocWageInfo>

            <StateWagesList>

                <WageDetails>

                    <Area>000051</Area>

                    <AreaName>Virginia</AreaName>

                    <Median>31.76</Median>

                    <Pct10>21.92</Pct10>

                    <Pct25>26.25</Pct25>

                    <Pct75>37.92</Pct75>

                    <Pct90>45.49</Pct90>

                    <RateType>Hourly</RateType>

                    <StFips>51</StFips>

                </WageDetails>

                <WageDetails>

                    <Area>000051</Area>

                    <AreaName>Virginia</AreaName>

                    <Median>66060</Median>

                    <Pct10>45600</Pct10>

                    <Pct25>54610</Pct25>

                    <Pct75>78870</Pct75>

                    <Pct90>94620</Pct90>

                    <RateType>Annual</RateType>

                    <StFips>51</StFips>

                </WageDetails>

            </StateWagesList>

            <WageYear>2017</WageYear>

        </Wages>

    </OccupationProfileDetail>

</OccupationDetail>

<RecordCount>1</RecordCount>

</OccupationProfile>

Response Parameters

Name Description Type
OccupationDetail
Occupation Detail
Object
    OnetTitle
O*Net Title
String
    OnetCode
 O*Net Code
String
    OnetDescription
 O*Net Description String
    Wages
Wages
Object
       NationalWagesList
National Wages List
Object
          RateType
Hourly or Annual String
          Pct10
Wages at 10th percentile String
          Pct25
Wages at 25th percentile
String
          Median
Median Wages
String
          Pct75
Wages at 75th percentile
String
          Pct90
Wages at 90th percentile
String
          StFips
Code for this state String
          Area
BLS-defined area String
          AreaName
BLS-defined area name String
       StateWagesList
State Wages List
Object
          RateType
Rate Type
String
          Pct10
Wages at 10th percentile
String
          Pct25
Wages at 25th percentile
String
          Median
Median Wages
String
          Pct75
Wages at 75th percentile
String
          Pct90
Wages at 90th percentile
String
          StFips
State Code
String
          Area
Area
String
          AreaName
Area Name
String
       BLSAreaWagesList
Bureau of Labor Statistics Area Wages List Object
          RateType
Rate Type
String
          Pct10
Wages at 10th percentile
String
          Pct25
Wages at 25th percentile
String
          Median
Median Wages
String
          Pct75
Wages at 75th percentile
String
          Pct90
Wages at 90th percentile
String
          StFips
State Code
String
          Area
Area
String
          AreaName
Area Name
String
       WageYear
Wage year
String
       SocData
Values are Yes and No. Always 'yes' for now.  String
    SocWageInfo
The occupation for the wage info provided. Wages are provided by OES, which generally provides wages for SOC occupations. If the occupation in the request was a detail level O*NET occupation, then the wages given might not exactly correspond to that O*NET occupation, but instead are for the SOC group as a whole. In a few cases, OES provides wages at one level less specific than SOC. See OES for details.
Object
       SocCode
SOC Code (or OES code)
String
       SocTitle
SOC Title (or OES title)
String
       SocDescription
SOC Description; not currently populated
String
    BrightOutlook
Data from O*NET String
    Green
Data from O*NET; Yes or No String
    COSVideoURL
URL for the best-matching career video on CareerOneStop String
    EducationTraining
Education Training from the United States Department of Labor, Bureau of Labor Statistics, Employment Projections Program. For more information, https://www.bls.gov/emp/documentation/education-training-system.htm. All the data in this object are for the relevant SOC-level occupation, not O*NET level. Object
       EducationType
Among incumbent workers in this (SOC) occupation, distribution of workers at various education levels. This data is "Educational attainment for workers 25 years and older by detailed occupation". Object
          EducationLevel
Education Level
String
          Value
Percent of workers currently in this occupation who have attained this level of education. 
String
       EducationCode 

For entry, how much education is required? Parameters "EducationCode" and "EducationTitle" answer this question.
Values:
1- Doctoral or professional degree
2- Master's degree
3- Bachelor's degree
4- Associate's degree
5- Postsecondary non-degree award
6- Some college, no degree
7- High school diploma or equivalent
9- No formal education credential

This data is "Education and training assignments by detailed occupation"

String
       EducationTitle
For entry to this (SOC) occupation, how much education is required? See above.

String

       ExperienceCode
For entry, how much experience is required? Parameters "ExperienceCode" and "ExperienceTitle" answer this question.
Values:
1- 5 years or more
2-Less than 5 years
3- None

This data is "Education and Training assignments by detailed occupation.
String
       ExperienceTitle
For entry to this (SOC) occupation, how much experience is required? See above.  
String
       TrainingCode
For entry, how much on-the-job training is required? Paramenters "TrainingCode" and "TrainingTitle" answer this question.
Values for 'TrainingCode', then corresponding 'TrainingTitle':
1- Internship/residency
2- Apprenticeship
3- Long-term on-the-job training / More than 1 year on-the-job training
4- Moderate-term on-the-job training / 1-12 months on-the-job training
5- Short-term on-the-job training / Less than 1 month on-the-job training
6- None / No on-the-job training

This data is "Education and training assignments by detailed occupation".
String
       TrainingTitle
For entry to this (SOC) occupation, how much training is required? See above. 
String
    BrightOutlookCategory
Bright Outlook Category
String
    Tasks
O*NET data Object
          TaskDescription
Task Description
String
          TaskId
Task ID
String
          DataValue
Data Value
String
    DWAs
Daily Work Activities from O*NET Object
          DWATitle
Daily Work Activities Title
String
          DWAId
Daily Work Activities ID
String
          DataValue
Daily work Activities Value
String
          TaskId
Task ID
String
    AlternateTitles
Four alternate occupation titles from O*NET Object
      String
String
String
    StFips
Two digit number representing the state, territory, etc String
    Location
Location in the request String
    Video
This object has information about the best video for this occupation, among the videos available. There is not a one-to-one correspondence between O*NET occupations and corresponding videos.  Object
          VideoCode
Video Code
String
          VideoTitle
Video Title
String
          VideoType
Video Type
String
    InterestDataList
O*NET scores and data around Holland codes (RIASEC system) for this occupation Object
       DataValues
Data Values
Object
          ElementID
Element ID
String
          ElementName
Element Name
String
          ElementDescription
Element Description
String
          DataValue
Data Value
String
          Importance
Importance
String
    SocInfo
SOC info, corresponding to this O*NET occupation 
Object
       SocCode
SOC Code
String
       SocTitle
SOC Title
String
       SocDescription
SOC Description
String
    Projections
Employment level projections Object
       EstimatedYear
Estimated year
String
       ProjectedYear
Projected Year
String
       OccupationTitle
Employment projections are generally available for SOC occupations, not O*NET String
       Projections
Projections
Object
          StateName
State Name
String
          StFips
State Code
String
          EstimatedEmployment
Estimated Employment
String
          ProjectedEmployment
Projected Employment
String
          PerCentChange
Percent Change
String
          ProjectedAnnualJobOpening 
Projected Annual Job Opening
String
    OOHs
Links to relevant BLS Occupational Outlook Handbooks Object
       Title
Title
String
       OOHUrl
Occupation Outlook Handbook URL
String
    StateLMILinks
Links to websites within the state where labor market information may be available Object
       Title
Title
String
       StateLMIUrl
State Labor Market Information URL
String
    RelatedOnetTitles
O*NET data Object
          Key
Key
String
          Value
Value
String
    SkillsDataList
O*NET data Object
          ElementID
Element ID
String
          ElementName
Element Name
String
          ElementDescription
Element Description
String
          DataValue
Data Value
String
          Importance
Importance
String
    KnowledgeDataList
O*NET data Object
          ElementID
Element ID
String
          ElementName
Element Name
String
          ElementDescription
Element Description
String
          DataValue
Data Value
String
          Importance
Importance
String
    AbilityDataList
O*NET data Object
       DataValues
Data Values
Object
          ElementID
Element ID
String
          ElementName
Element Name
String
          ElementDescription
Element Description
String
          DataValue
Data Value
String
          Importance
Importance
String
   TrainingPrograms
Training programs that prepare a student for this occupation, using the "CIP" taxonomy Object
      String
String
String
RecordCount
Record Count
Integer
DidYouMean
Did You Mean
String
AutoCorrection 
Auto Correction 
String

Errors

Error/Status Code Description
 200
OK / Success. The request went through successfully and there is a response body.
 400
Bad Request (Request was invalid or missing parameters)
 401    
Unauthorized. This error occurs specifically when authentication is required and has failed or has not yet been provided correctly. (ex: Invalid API Token)
 404
This error will be shown in two scenarios 1) Not found - (An error occurred) and 2) Not found - (No data available)
 500
Internal Server Error. This error will occur when there is something critically wrong in the API call.