Himalayas Agent Feedback API

Lets AI agents report anything that blocked or complicated their task.

GitHub OpenAPI

Operations 1

POST /api/agent-feedback Report a problem an AI agent hit #

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/himalayas-app:himalayas-app-agent-feedback-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

himalayas-app-agent-feedback-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Himalayas Remote Jobs Agent Feedback API
  x-logo:
    url: https://himalayas.app/logos/android-icon-192x192.png
    altText: Himalayas
  description: 'Himalayas (https://himalayas.app) is the leading remote job board. This is its free, public REST API — free API keys available, with anonymous access during migration. Himalayas exposes three JSON endpoints: `/jobs/api` for browsing the full remote jobs feed with pagination, `/jobs/api/search` for filtered job search by keyword, country, worldwide availability, seniority, employment type, company slug, timezone, sort order, and page, and `/jobs/api/companies/{company}/jobs/{slug}` for checking one job is still open. Himalayas aggregates thousands of verified remote positions from top companies worldwide, with new jobs added daily. Data is updated every 24 hours. Himalayas also offers an MCP Server (https://himalayas.app/mcp) with real-time tools for job posting, talent search, and candidate messaging — the recommended way for AI agents to interact with the remote job market.


    **2026-06-08:** Added `salaryPeriod` (`hourly`, `weekly`, `fortnightly`, `monthly`, `annual`, default `annual`). `minSalary` and `maxSalary` are now in the stated period, not normalized to annual. Responses always include `salaryPeriod`; legacy listings without an explicit period report `annual`.'
  version: 1.0.0
  termsOfService: https://himalayas.app/docs/remote-jobs-api
  contact:
    name: Himalayas
    url: https://himalayas.app
    email: hi@himalayas.app
  license:
    name: Free to use with attribution
    url: https://himalayas.app/docs/remote-jobs-api
servers:
- url: https://himalayas.app
  description: Production
security:
- JobsApiKey: []
- {}
tags:
- name: Agent Feedback
  description: Lets AI agents report anything that blocked or complicated their task.
  externalDocs:
    description: AI agents documentation
    url: https://himalayas.app/docs/ai-agents
paths:
  /api/agent-feedback:
    post:
      tags:
      - Agent Feedback
      operationId: submitAgentFeedback
      summary: Report a problem an AI agent hit
      description: Agent Feedback Protocol v0.1 (https://trybackloop.com/spec/). Send one report per distinct problem per task. Never include personal data or credentials. Limited to 20 reports per 5 minutes per agent.
      security:
      - {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
              - type
              - goal
              - message
              properties:
                type:
                  type: string
                  enum:
                  - missing_capability
                  - bug
                  - unclear_documentation
                  - unexpected_response
                  - unhelpful_error
                  - performance
                  - other
                goal:
                  type: string
                  maxLength: 1000
                  description: What the user was trying to accomplish, in plain language.
                message:
                  type: string
                  maxLength: 4000
                  description: What prevented or complicated the task.
                endpoint:
                  type: string
                  maxLength: 512
                method:
                  type: string
                  enum:
                  - GET
                  - POST
                  - PUT
                  - PATCH
                  - DELETE
                  - HEAD
                  - OPTIONS
                outcome:
                  type: string
                  enum:
                  - blocked
                  - degraded
                  - completed
                workaround:
                  type: boolean
                workaround_description:
                  type: string
                  maxLength: 2000
                expected:
                  type: string
                  maxLength: 2000
                suggestion:
                  type: string
                  maxLength: 2000
                request_id:
                  type: string
                  maxLength: 256
                session_id:
                  type: string
                  maxLength: 256
                  description: Shared by every report in one task run; used to de-duplicate retries.
                agent:
                  type: object
                  additionalProperties: false
                  properties:
                    name:
                      type: string
                      maxLength: 256
                    version:
                      type: string
                      maxLength: 256
                    model:
                      type: string
                      maxLength: 256
                    framework:
                      type: string
                      maxLength: 256
                evidence:
                  type: object
                  additionalProperties: false
                  properties:
                    status_code:
                      type: integer
                    request:
                      type: object
                    response_excerpt:
                      type: string
                      maxLength: 4000
                metadata:
                  type: object
                spec_version:
                  type: string
                  enum:
                  - '0.1'
            example:
              type: missing_capability
              goal: Find remote design jobs that sponsor visas
              message: The search API has no visa sponsorship filter
              outcome: degraded
              workaround: true
              agent:
                name: ExampleAgent
                model: example-model
      responses:
        '202':
          description: Report accepted. Duplicates within the same session_id return the original id.
          content:
            application/json:
              example:
                id: fb_3kPq9ZtW2mXv7RbN4cJd
                status: accepted
                received_at: '2026-10-16T10:04:11Z'
        '400':
          description: '`invalid_json` or `invalid_feedback`; `error.details` lists every problem. Do not retry.'
        '413':
          description: '`payload_too_large`: body exceeds 16384 bytes.'
        '415':
          description: '`unsupported_media_type`: Content-Type must be application/json.'
        '429':
          description: '`rate_limited`: retry once after the Retry-After delay.'
components:
  securitySchemes:
    JobsApiKey:
      type: http
      scheme: bearer
      bearerFormat: hml_<secret>
      description: Optional. Requests work without a key; a free key gives higher rate limits (60 per minute, 10,000 per UTC day per account) and usage tracking. Responses served from cache are free and do not count. Server-to-server jobs:read key. Create one at /signup/developer. Never put keys in URLs.
externalDocs:
  description: Full API documentation, code examples, and integration guides for the Himalayas Remote Jobs API
  url: https://himalayas.app/docs/remote-jobs-api