/v1/career/pathAnalyse the skill-gap career path between two specific occupations
Return a detailed career-transition analysis between two specific occupations, answering 'what do I need to learn to move from A to B?' in one call. The response carries the list of shared skills (what the caller already has), the list of gap skills (what they need to develop), a composite similarity score, the expected wage change, and the target occupation's employment outlook. **When to use:** power a 'plan my next move' flow, generate a personal learning plan, or feed an LLM context with the exact skill deltas. **Inputs:** `from` (current SOC code) and `to` (target SOC code), both required query params. **Response shape:** an `ApiResponse[CareerPath]` with `shared_skills`, `gap_skills`, `similarity_score`, `wage_change_pct`, and target-side `outlook` data. Source: O*NET OnLine, BLS Employment Projections. Required scope: `skills:read`.
Authentication
Requires API key via X-API-Key header.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| from | query | string | required | Source occupation SOC code (where you are now) |
| to | query | string | required | Target occupation SOC code (where you want to go) |
Example request
curl -X GET \
"https://skills.wageapi.com/api/v1/career/path?from=%3Cfrom%3E&to=%3Cto%3E" \
-H "X-API-Key: YOUR_API_KEY"Responses
dataCareerPathrequiredCareer path recommendation with skill gap analysis.
target_socstringrequiredTarget occupation SOC code
target_titlestringrequiredTarget occupation title
similarity_scorenumberrequiredOverall skill match
min 0 · max 1
shared_skillsarray<string>optionalSkills you already have
gap_skillsarray<string>optionalSkills you need to develop
wage_change_pctanyoptionalExpected wage change
outlookanyoptionalEmployment outlook for target occupation
metadataMetadataSchemarequiredsourcesarray<SourceSchema>optionalnamestringrequiredData source name (e.g. O*NET, BLS OES)
urlanyoptionalURL to the source
request_idstringrequiredUnique request identifier
rate_limitanyoptionallimitintegerrequiredMaximum requests per day for current tier
remainingintegerrequiredRequests remaining today
resetstringrequiredUTC timestamp when limit resets
errorErrorDetailrequiredStructured error payload returned by all Aethar APIs. Mirrors the shape produced by aethar_auth.exception_handlers so the OpenAPI spec accurately describes real error bodies for documentation readers and MCP clients.
codestringrequiredMachine-readable error code (e.g. INVALID_API_KEY)
messagestringrequiredHuman-readable error message
statusanyoptionalHTTP status code
request_idanyoptionalRequest identifier — include in support tickets
suggestionanyoptionalActionable hint on how to resolve the error
doc_urlanyoptionalLink to full documentation for this error code
fieldanyoptionalField that caused the error (if applicable)
errorsanyoptionalPer-field validation errors (only for 422 VALIDATION_ERROR responses)
errorErrorDetailrequiredStructured error payload returned by all Aethar APIs. Mirrors the shape produced by aethar_auth.exception_handlers so the OpenAPI spec accurately describes real error bodies for documentation readers and MCP clients.
codestringrequiredMachine-readable error code (e.g. INVALID_API_KEY)
messagestringrequiredHuman-readable error message
statusanyoptionalHTTP status code
request_idanyoptionalRequest identifier — include in support tickets
suggestionanyoptionalActionable hint on how to resolve the error
doc_urlanyoptionalLink to full documentation for this error code
fieldanyoptionalField that caused the error (if applicable)
errorsanyoptionalPer-field validation errors (only for 422 VALIDATION_ERROR responses)
errorErrorDetailrequiredStructured error payload returned by all Aethar APIs. Mirrors the shape produced by aethar_auth.exception_handlers so the OpenAPI spec accurately describes real error bodies for documentation readers and MCP clients.
codestringrequiredMachine-readable error code (e.g. INVALID_API_KEY)
messagestringrequiredHuman-readable error message
statusanyoptionalHTTP status code
request_idanyoptionalRequest identifier — include in support tickets
suggestionanyoptionalActionable hint on how to resolve the error
doc_urlanyoptionalLink to full documentation for this error code
fieldanyoptionalField that caused the error (if applicable)
errorsanyoptionalPer-field validation errors (only for 422 VALIDATION_ERROR responses)
errorErrorDetailrequiredStructured error payload returned by all Aethar APIs. Mirrors the shape produced by aethar_auth.exception_handlers so the OpenAPI spec accurately describes real error bodies for documentation readers and MCP clients.
codestringrequiredMachine-readable error code (e.g. INVALID_API_KEY)
messagestringrequiredHuman-readable error message
statusanyoptionalHTTP status code
request_idanyoptionalRequest identifier — include in support tickets
suggestionanyoptionalActionable hint on how to resolve the error
doc_urlanyoptionalLink to full documentation for this error code
fieldanyoptionalField that caused the error (if applicable)
errorsanyoptionalPer-field validation errors (only for 422 VALIDATION_ERROR responses)
errorErrorDetailrequiredStructured error payload returned by all Aethar APIs. Mirrors the shape produced by aethar_auth.exception_handlers so the OpenAPI spec accurately describes real error bodies for documentation readers and MCP clients.
codestringrequiredMachine-readable error code (e.g. INVALID_API_KEY)
messagestringrequiredHuman-readable error message
statusanyoptionalHTTP status code
request_idanyoptionalRequest identifier — include in support tickets
suggestionanyoptionalActionable hint on how to resolve the error
doc_urlanyoptionalLink to full documentation for this error code
fieldanyoptionalField that caused the error (if applicable)
errorsanyoptionalPer-field validation errors (only for 422 VALIDATION_ERROR responses)
errorErrorDetailrequiredStructured error payload returned by all Aethar APIs. Mirrors the shape produced by aethar_auth.exception_handlers so the OpenAPI spec accurately describes real error bodies for documentation readers and MCP clients.
codestringrequiredMachine-readable error code (e.g. INVALID_API_KEY)
messagestringrequiredHuman-readable error message
statusanyoptionalHTTP status code
request_idanyoptionalRequest identifier — include in support tickets
suggestionanyoptionalActionable hint on how to resolve the error
doc_urlanyoptionalLink to full documentation for this error code
fieldanyoptionalField that caused the error (if applicable)
errorsanyoptionalPer-field validation errors (only for 422 VALIDATION_ERROR responses)
Try this endpoint
Create a free Aethar account and generate an API key in 2 minutes.
Create free account →