> ## Documentation Index
> Fetch the complete documentation index at: https://socialquery.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Jobs Salary

> Read national Indeed salary aggregates for a job title or title slug. Currently supports country_code us and fr (case-insensitive). Each pay period preserves its source mean, median, minimum, maximum and sample size; hourly and annual figures are not converted or combined. Unsupported countries, URLs and extra filters return 422 with no net charge. Unknown update dates and absent statistics remain null. Related titles are source suggestions, not a complete searchable directory. A successful live lookup costs 1 credit; cache hits and idempotent replays cost zero.

Read national Indeed salary aggregates for a job title or title slug. Currently supports country\_code us and fr (case-insensitive). Each pay period preserves its source mean, median, minimum, maximum and sample size; hourly and annual figures are not converted or combined. Unsupported countries, URLs and extra filters return 422 with no net charge. Unknown update dates and absent statistics remain null. Related titles are source suggestions, not a complete searchable directory. A successful live lookup costs 1 credit; cache hits and idempotent replays cost zero.

[Source contract](https://docs.piloterr.com/indeed-job-salary).


## OpenAPI

````yaml GET /jobs/salary
openapi: 3.1.0
info:
  title: SocialQuery API
  version: '2026-10-09'
  description: >-
    Documented requests for public-source records. Inspect accepted inputs and
    credit amounts, then verify the selected operation before integrating
    preview coverage.
servers:
  - url: https://socialquery.dev/v1
security:
  - apiKey: []
paths:
  /jobs/salary:
    get:
      tags:
        - Jobs
      summary: Jobs Salary
      description: >-
        Read national Indeed salary aggregates for a job title or title slug.
        Currently supports country_code us and fr (case-insensitive). Each pay
        period preserves its source mean, median, minimum, maximum and sample
        size; hourly and annual figures are not converted or combined.
        Unsupported countries, URLs and extra filters return 422 with no net
        charge. Unknown update dates and absent statistics remain null. Related
        titles are source suggestions, not a complete searchable directory. A
        successful live lookup costs 1 credit; cache hits and idempotent replays
        cost zero.
      operationId: get_jobs_salary
      parameters:
        - name: query
          in: query
          required: true
          example: software engineer
          schema:
            type: string
          description: >-
            Job title or title slug, e.g. software engineer. URLs and
            city/company filters are not accepted.
        - name: country_code
          in: query
          required: true
          example: us
          schema:
            type: string
          description: >-
            Currently supported: us and fr; case-insensitive. Other countries
            are rejected.
        - name: Cache-Control
          in: header
          required: false
          example: no-cache
          schema:
            type: string
        - name: Idempotency-Key
          in: header
          required: false
          example: 7a5e1b4c-2d8f-4a3b-9c1e-6e8b4d2a1f3c
          schema:
            type: string
        - name: X-Max-Credits
          in: header
          required: false
          description: >-
            Optional nonnegative integer cap on the maximum request hold. A live
            request whose hold exceeds this cap returns 422
            CREDIT_BUDGET_EXCEEDED before spending. Metered holds use the
            requested limit; cache hits and successful idempotent replays cost
            zero.
          schema:
            type: integer
            minimum: 0
      responses:
        '200':
          description: >-
            Read national Indeed salary aggregates for a job title or title
            slug. Currently supports country_code us and fr (case-insensitive).
            Each pay period preserves its source mean, median, minimum, maximum
            and sample size; hourly and annual figures are not converted or
            combined. Unsupported countries, URLs and extra filters return 422
            with no net charge. Unknown update dates and absent statistics
            remain null. Related titles are source suggestions, not a complete
            searchable directory. A successful live lookup costs 1 credit; cache
            hits and idempotent replays cost zero.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/SocialQueryResponse'
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          title:
                            type: string
                          title_slug:
                            type: string
                          url:
                            type: string
                          country_code:
                            type: string
                          location:
                            type: string
                          currency:
                            type: string
                          salary:
                            type: object
                            properties:
                              period:
                                type: string
                              min:
                                type:
                                  - number
                                  - 'null'
                              max:
                                type:
                                  - number
                                  - 'null'
                              mean:
                                type:
                                  - number
                                  - 'null'
                              median:
                                type:
                                  - number
                                  - 'null'
                              sample_size:
                                type:
                                  - integer
                                  - 'null'
                          by_period:
                            type: object
                            additionalProperties:
                              anyOf:
                                - type: object
                                  properties:
                                    period:
                                      type: string
                                    min:
                                      type:
                                        - number
                                        - 'null'
                                    max:
                                      type:
                                        - number
                                        - 'null'
                                    mean:
                                      type:
                                        - number
                                        - 'null'
                                    median:
                                      type:
                                        - number
                                        - 'null'
                                    sample_size:
                                      type:
                                        - integer
                                        - 'null'
                                - type: 'null'
                          related_titles:
                            type: array
                            items:
                              type: object
                              properties:
                                title:
                                  type: string
                                period:
                                  type: string
                                mean:
                                  type:
                                    - number
                                    - 'null'
                                currency:
                                  type: string
                          updated_at:
                            type: 'null'
                          source:
                            type: string
                          underlying_source:
                            type: string
                          coverage_note:
                            type: string
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '402':
          $ref: '#/components/responses/Error402'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '405':
          $ref: '#/components/responses/Error405'
        '409':
          $ref: '#/components/responses/Error409'
        '422':
          $ref: '#/components/responses/Error422'
        '429':
          $ref: '#/components/responses/Error429'
        '500':
          $ref: '#/components/responses/Error500'
        '502':
          $ref: '#/components/responses/Error502'
        '503':
          $ref: '#/components/responses/Error503'
        '504':
          $ref: '#/components/responses/Error504'
components:
  schemas:
    SocialQueryResponse:
      type: object
      required:
        - success
        - platform
        - endpoint
        - credits_used
        - credits_remaining
        - request_id
        - cached
        - data
      properties:
        success:
          type: boolean
          const: true
        platform:
          type: string
        endpoint:
          type: string
        credits_used:
          type: integer
          minimum: 0
        credits_remaining:
          type:
            - integer
            - 'null'
        request_id:
          type: string
        cached:
          type: boolean
        data:
          type: object
          additionalProperties: true
          description: >-
            The selected operation determines the resource fields in this
            object. Source data can omit a metric or report it as null.
    SocialQueryError:
      type: object
      required:
        - success
        - platform
        - endpoint
        - credits_used
        - credits_remaining
        - request_id
        - cached
        - error
      properties:
        success:
          type: boolean
          const: false
        platform:
          type: string
        endpoint:
          type: string
        credits_used:
          type: integer
          minimum: 0
        credits_remaining:
          type:
            - integer
            - 'null'
        request_id:
          type: string
        cached:
          type: boolean
        error:
          type: object
          required:
            - code
            - type
            - message
            - status
            - doc_url
          properties:
            code:
              type: string
            type:
              type: string
            message:
              type: string
            status:
              type: integer
            doc_url:
              type: string
              format: uri
  responses:
    Error400:
      description: Upstream rejected the request.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error401:
      description: Missing, expired, invalid, or revoked API key.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error402:
      description: Insufficient SocialQuery credits.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error403:
      description: Key scope or provider policy denied access.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error404:
      description: Endpoint or upstream resource not found.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error405:
      description: HTTP method is not supported.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error409:
      description: Idempotency conflict or request in progress.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error422:
      description: Invalid parameters.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error429:
      description: Request limit reached.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error500:
      description: Request processing failed.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error502:
      description: Upstream service failed.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error503:
      description: Provider or required service is unavailable.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error504:
      description: Upstream service timed out.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.