Properties
| Name | Type | Description |
|---|---|---|
| comments | string | Release notes or changelog for the Himalayas API |
| updatedAt | integer | Unix timestamp (seconds) of the most recently updated job in the response |
| nextCursor | string | Opaque cursor for the next page. Pass it back as the `cursor` query parameter. Omitted on the last page: its absence is how you know the walk is finished. Browse endpoint only. |
| offset | integer | The offset used in this request (deprecated; prefer cursor) |
| limit | integer | The limit used in this request |
| totalCount | integer | Approximate number of matching jobs, for display only. For the browse endpoint this is the count of all active remote jobs; for the search endpoint it is the count of jobs matching the active filters |
| jobs | array |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/himalayas-app/json-schema/himalayas-app-jobs-response-schema.json",
"title": "JobsResponse",
"x-generated": "2026-11-12",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/_original/himalayas-app-api-openapi.json#/components/schemas/JobsResponse",
"type": "object",
"required": [
"updatedAt",
"offset",
"limit",
"totalCount",
"jobs"
],
"properties": {
"comments": {
"type": "string",
"description": "Release notes or changelog for the Himalayas API"
},
"updatedAt": {
"type": "integer",
"description": "Unix timestamp (seconds) of the most recently updated job in the response"
},
"nextCursor": {
"type": "string",
"description": "Opaque cursor for the next page. Pass it back as the `cursor` query parameter. Omitted on the last page: its absence is how you know the walk is finished. Browse endpoint only."
},
"offset": {
"type": "integer",
"description": "The offset used in this request (deprecated; prefer cursor)"
},
"limit": {
"type": "integer",
"description": "The limit used in this request"
},
"totalCount": {
"type": "integer",
"description": "Approximate number of matching jobs, for display only. For the browse endpoint this is the count of all active remote jobs; for the search endpoint it is the count of jobs matching the active filters and can be up to a day old. Do not use it to decide when to stop paging: on browse, stop when a response has no nextCursor; on search, stop at the first page that returns no jobs."
},
"jobs": {
"type": "array",
"items": {
"$ref": "#/$defs/Job"
}
}
},
"$defs": {
"Job": {
"type": "object",
"required": [
"title",
"excerpt",
"companyName",
"companySlug",
"companyLogo",
"employmentType",
"seniority",
"currency",
"salaryPeriod",
"locationRestrictions",
"timezoneRestrictions",
"categories",
"parentCategories",
"description",
"pubDate",
"expiryDate",
"applicationLink",
"guid"
],
"properties": {
"title": {
"type": "string",
"description": "Job title"
},
"excerpt": {
"type": "string",
"description": "Short summary of the job (first few sentences of the description)"
},
"companyName": {
"type": "string",
"description": "Name of the hiring company"
},
"companySlug": {
"type": "string",
"description": "Canonical company slug for filtering and stable lookups"
},
"companyLogo": {
"type": "string",
"format": "uri",
"description": "URL of the company logo image"
},
"employmentType": {
"type": "string",
"description": "Type of employment. 'Contractor' includes freelance and contract roles.",
"enum": [
"Full Time",
"Part Time",
"Contractor",
"Temporary",
"Intern",
"Volunteer",
"Other"
]
},
"minSalary": {
"type": [
"number",
"null"
],
"description": "Minimum salary in the pay period specified by salaryPeriod (default annual), in the currency field. Null if not disclosed."
},
"maxSalary": {
"type": [
"number",
"null"
],
"description": "Maximum salary in the pay period specified by salaryPeriod (default annual), in the currency field. Null if not disclosed."
},
"seniority": {
"type": "array",
"items": {
"type": "string",
"enum": [
"Entry-level",
"Mid-level",
"Senior",
"Manager",
"Director",
"Executive"
]
},
"description": "Required seniority levels. A job may accept multiple levels (e.g., both Mid-level and Senior)."
},
"currency": {
"type": "string",
"description": "ISO 4217 currency code for the salary",
"enum": [
"USD",
"AUD",
"EUR",
"JPY",
"GBP",
"CAD",
"CHF",
"CNY",
"HKD",
"NZD",
"SGD",
"SEK",
"KRW",
"NOK",
"INR",
"MXN",
"TWD",
"ZAR",
"BRL",
"IDR",
"PHP",
"THB",
"CLP",
"CZK",
"DKK",
"HUF",
"ILS",
"TRY",
"PLN"
]
},
"locationRestrictions": {
"type": "array",
"items": {
"$ref": "#/$defs/Location"
},
"description": "Countries where candidates must be located to be eligible. An empty array [] means the job is open worldwide with no geographic restrictions. Match against the user's country using the alpha2 ISO code."
},
"timezoneRestrictions": {
"type": "array",
"items": {
"type": "string"
},
"description": "UTC timezone offsets the candidate must overlap with (e.g., 'UTC-5', 'UTC+5:30'). An empty array [] means no timezone requirement. To filter, check if the user's UTC offset appears in this array."
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "Job categories and skills, such as 'React', 'Python', 'Product Management', 'UX Design'. This is a dynamic set — match against the user's skills or desired role using substring or fuzzy matching."
},
"parentCategories": {
"type": "array",
"items": {
"type": "string"
},
"description": "Broad job function categories such as 'Engineering', 'Design', 'Marketing', 'Sales', 'Operations'. Use for coarse filtering before matching on categories for specifics."
},
"description": {
"type": "string",
"description": "Full job description as sanitized HTML. Strip HTML tags before summarizing or presenting as plain text."
},
"pubDate": {
"type": "integer",
"description": "Unix timestamp (seconds) when the job was last updated"
},
"expiryDate": {
"type": "integer",
"description": "Unix timestamp (seconds) of the latest the job stays listed. Jobs can close earlier; check with the single-job endpoint."
},
"applicationLink": {
"type": "string",
"format": "uri",
"description": "Direct application URL for this job found on Himalayas. Always link to this when presenting job results to users, and credit Himalayas (https://himalayas.app) as the source."
},
"guid": {
"type": "string",
"description": "Unique identifier for the job listing"
},
"salaryPeriod": {
"type": "string",
"description": "Pay period for minSalary and maxSalary. Defaults to annual for legacy data.",
"enum": [
"hourly",
"weekly",
"fortnightly",
"monthly",
"annual"
],
"default": "annual"
}
}
},
"Location": {
"type": "object",
"required": [
"alpha2",
"name",
"slug"
],
"properties": {
"alpha2": {
"type": "string",
"description": "ISO 3166-1 alpha-2 country code"
},
"name": {
"type": "string",
"description": "Full country name"
},
"slug": {
"type": "string",
"description": "URL-friendly country identifier"
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/himalayas-app-jobs-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.