/v1/occupations/searchFuzzy-search occupations by keyword (typo-tolerant)
Return a paginated list of occupations whose titles fuzzy-match a search query. Matching uses PostgreSQL `pg_trgm` trigram similarity — `sofware enginer` still returns `Software Developers`, and `nures` returns `Registered Nurses`. Results are ranked by similarity descending. **When to use:** agent-first entry point for 'find me the SOC code for X' flows. Feed the matched `soc_code` into any downstream `/v1/occupations/{soc_code}/...` endpoint. **Inputs:** `q` (1-200 chars) plus standard pagination and the same `job_zone` / `bright_outlook` / `green` filters as `GET /v1/occupations`. **Response shape:** `ApiResponse[PaginatedData[OccupationSummary]]`. Source: O*NET OnLine (USDOL/ETA). Required scope: `skills:read`.
Authentication
Requires API key via X-API-Key header.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| q | query | string | required | Search term for occupation title or keyword |
| page | query | integer | optional | Page number (1-based) |
| page_size | query | integer | optional | Items per page (max 100) |
| job_zone | query | any | optional | Filter by preparation level |
| bright_outlook | query | any | optional | Filter to bright outlook occupations only |
| green | query | any | optional | Filter to green economy occupations only |
Example request
curl -X GET \
"https://skills.wageapi.com/api/v1/occupations/search?q=%3Cq%3E&page=1&page_size=20&job_zone=%3Cjob_zone%3E&bright_outlook=%3Cbright_outlook%3E&green=%3Cgreen%3E" \
-H "X-API-Key: YOUR_API_KEY"Responses
dataPaginatedData_OccupationSummary_requireditemsarray<OccupationSummary>requiredsoc_codestringrequiredStandard Occupational Classification code (e.g. 15-1252.00)
titlestringrequiredOfficial occupation title
job_zoneanyoptionalPreparation level 1-5 (1=little, 5=extensive)
bright_outlookbooleanoptionalTrue if projected to grow much faster than average
default false
green_occupationbooleanoptionalTrue if related to green economy
default false
totalintegerrequiredTotal number of matching records
pageintegerrequiredCurrent page number (1-based)
page_sizeintegerrequiredItems per page
pagesintegerrequiredTotal number of pages
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)
Try this endpoint
Create a free Aethar account and generate an API key in 2 minutes.
Create free account →