veritahire-com Postings API

The Postings API from veritahire-com — 1 operation(s) for postings.

Operations 1

GET /api/v1/jobs.php Search jobs by keyword and location, list live postings, or fetch one by id #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/veritahire-com:veritahire-com-postings-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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.

OpenAPI Specification

veritahire-com-postings-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: VeritaHire Postings API
  version: 1.0.0
  description: 'Live US job postings verified on each employer''s own careers site and retired within about 36 hours of leaving it. FREE, NO KEY: search live jobs, read a whole posting, check whether a posting is still open, the Competitive Hiring Report for a healthcare, finance, IT, engineering, science, HR, legal, marketing, sales, customer service, admin, operations and logistics, skilled trades, retail and food, or education role (competitors'' close times and pay). WITH A KEY (self-serve 2,000-record trial at https://veritahire.com/developers/): the full Verified Jobs Feed - every live posting, cursor-paged, plus per-employer hiring velocity and employer profiles. An MCP server with the free tools is at https://veritahire.com/mcp. Data source: public postings on employers'' own career sites.'
servers:
- url: https://veritahire.com
tags:
- name: Postings
paths:
  /api/v1/jobs.php:
    get:
      tags:
      - Postings
      summary: Search jobs by keyword and location, list live postings, or fetch one by id
      operationId: listJobs
      parameters:
      - name: after
        in: query
        description: Cursor. Pass the previous response's next_after; start at 0.
        schema:
          type: integer
          default: 0
          minimum: 0
      - name: limit
        in: query
        description: Rows per page, 1-500.
        schema:
          type: integer
          default: 100
          minimum: 1
          maximum: 500
      - name: state
        in: query
        description: Two-letter US state, e.g. CA.
        schema:
          type: string
          example: CA
      - name: category
        in: query
        description: 'Category: retail_food, healthcare_clinical, sales, operations, skilled_trade, admin_support, customer_service, software, finance_accounting, marketing, education, hr_recruiting, engineering_hardware, public_affairs, science_lab, legal, data_or_analytics, ...'
        schema:
          type: string
          example: healthcare_clinical
      - name: remote
        in: query
        description: 1 = only postings the employer flags remote.
        schema:
          type: integer
          enum:
          - 0
          - 1
      - name: employer_id
        in: query
        description: Restrict to one employer (ids are in every row).
        schema:
          type: integer
      - name: platform
        in: query
        description: 'ATS the posting was read from: workday, greenhouse, lever, icims, smartrecruiters, ukg, ashby, workable, ...'
        schema:
          type: string
          example: workday
      - name: posting_kind
        in: query
        description: requisition = a specific opening; evergreen = an always-hiring posting.
        schema:
          type: string
          enum:
          - requisition
          - evergreen
      - name: since
        in: query
        description: 'YYYY-MM-DD: postings first seen on or after this date.'
        schema:
          type: string
          format: date
          example: '2026-09-01'
      - name: id
        in: query
        description: Fetch a single posting by job_id (ignores the other filters).
        schema:
          type: integer
      - name: q
        in: query
        required: false
        description: 'Job search: keywords or a job title, e.g. registered nurse. With q and/or where the endpoint searches (100 rows a page) instead of listing.'
        schema:
          type: string
      - name: where
        in: query
        required: false
        description: 'Job search: City, ST or a 5-digit ZIP. Blank = all of the US.'
        schema:
          type: string
      - name: radius
        in: query
        required: false
        description: 'Job search: miles around where - 10, 25 (default), 30, 50 or 100.'
        schema:
          type: integer
          enum:
          - 10
          - 25
          - 30
          - 50
          - 100
      - name: posted_within_days
        in: query
        required: false
        description: 'Job search: only jobs first seen on the employer''s site within this many days (1-60).'
        schema:
          type: integer
      - name: employment_type
        in: query
        required: false
        description: 'Job search: full_time, part_time, contract, seasonal or temporary.'
        schema:
          type: string
          enum:
          - full_time
          - part_time
          - contract
          - seasonal
          - temporary
      - name: min_pay
        in: query
        required: false
        description: 'Job search: minimum pay, annual or hourly if under 300. Jobs that post no pay are kept.'
        schema:
          type: number
      - name: title_exclude
        in: query
        required: false
        description: 'Job search: comma-separated words; jobs whose title contains any are left out, e.g. senior,travel.'
        schema:
          type: string
      - name: sort
        in: query
        required: false
        description: 'Job search: new, pay or near. Default best match.'
        schema:
          type: string
          enum:
          - new
          - pay
          - near
      - name: description
        in: query
        required: false
        description: 'Job search: 1 = include the employer''s full posting text.'
        schema:
          type: integer
          enum:
          - 0
          - 1
      - name: page
        in: query
        required: false
        description: 'Job search: page 1, 2, 3 ... (pass next_page from the previous response).'
        schema:
          type: integer
      responses:
        '200':
          description: A page of live postings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobsPage'
              example:
                data:
                - job_id: 15523093
                  employer: Lowe's
                  employer_id: 812
                  title: Retail Sales - Flooring
                  location: Plano, TX
                  state: TX
                  lat: 33.0198
                  lng: -96.6989
                  remote: false
                  category: retail_food
                  employment_type: part_time
                  seniority: entry
                  level_band: entry
                  pay_text: $15.00 - $17.50 / hr
                  comp_structure: hourly
                  req_edu_level: null
                  req_fields: null
                  req_hard_years: 0
                  skills:
                  - customer service
                  - merchandising
                  benefits: null
                  posting_kind: requisition
                  platform: workday
                  posted_at: '2026-09-05T00:00:00Z'
                  first_seen_at: '2026-09-05T13:20:11Z'
                  last_seen_in_feed: '2026-09-08T02:10:44Z'
                  valid_through: null
                  apply_url: https://talent.lowes.com/us/en/job/...
                  status: live
                count: 1
                next_after: 15523093
                quota:
                  used: 1201
                  limit: 50000
                  resets: '2026-10-01'
        '401':
          description: Missing, unknown or revoked key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Per-minute limit or monthly quota reached
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - ApiKeyAuth: []
components:
  schemas:
    JobsPage:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Job'
        count:
          type: integer
        next_after:
          type: integer
          nullable: true
        quota:
          $ref: '#/components/schemas/Quota'
    Job:
      type: object
      properties:
        job_id:
          type: integer
        employer:
          type: string
        employer_id:
          type: integer
        title:
          type: string
        location:
          type: string
        state:
          type: string
        lat:
          type: number
          nullable: true
        lng:
          type: number
          nullable: true
        remote:
          type: boolean
        category:
          type: string
        employment_type:
          type: string
          nullable: true
        seniority:
          type: string
          nullable: true
        level_band:
          type: string
          nullable: true
        pay_text:
          type: string
          nullable: true
        comp_structure:
          type: string
          nullable: true
        req_edu_level:
          type: string
          nullable: true
        req_fields:
          type: string
          nullable: true
        req_hard_years:
          type: integer
          nullable: true
        skills:
          type: array
          items:
            type: string
        benefits:
          type: string
          nullable: true
        posting_kind:
          type: string
          enum:
          - requisition
          - evergreen
        platform:
          type: string
        posted_at:
          type: string
          nullable: true
        first_seen_at:
          type: string
        last_seen_in_feed:
          type: string
        valid_through:
          type: string
          nullable: true
        apply_url:
          type: string
        status:
          type: string
        pay_annual_mid:
          type: integer
          nullable: true
          description: 'Stated pay annualised to USD: midpoint of the stated range or the single figure; hourly x 2,080; null when no figure is stated (never estimated).'
        pay_annual_high:
          type: integer
          nullable: true
          description: 'Stated pay annualised to USD: top of the stated range.'
    Error:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
    Quota:
      type: object
      properties:
        used:
          type: integer
        limit:
          type: integer
          nullable: true
        resets:
          type: string
          nullable: true
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: 'Your vh_... key. Free trial (2,000 credits; 1 credit = 1 job returned), then $3.95 per 1,000: https://veritahire.com/verified-jobs-feed/'