Геймдев Таверна Quests API

The Quests API from Геймдев Таверна — 5 operation(s) for quests.

GitHub OpenAPI

Operations 6

GET /quests/{id} Статус квеста #
GET /quests Квесты #
POST /quests Поставить квест #
POST /quests/{id}/close Закрыть квест #
POST /quests/{id}/public Публичность квеста #
POST /quests/preview Проверить текст квеста #

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/entri-games:entri-games-quests-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

entri-games-quests-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Entri Games Quests API
  version: '1'
  x-api-revision: '2026-10-01'
  description: 'Operations tagged Quests across 2 of this provider''s published API definitions: openapi.json, entri-games-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://entri.games/api/agent/v1
tags:
- name: Quests
paths:
  /quests/{id}:
    get:
      operationId: quest.get
      summary: Статус квеста
      description: 'Quest by id; no id: the list. Stage, search, Bar, leads and what needs the human.'
      security:
      - agentBearer:
        - quests:read
      x-scope: quests:read
      x-idempotent: true
      x-cost-class: read
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: known_version
        in: query
        required: false
        schema:
          type: string
          maxLength: 32
          description: 'version from the last reply; if nothing changed you get {unchanged: true}'
      responses:
        '200':
          description: Envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
      tags:
      - Quests
    servers:
    - url: https://entri.games/api/agent/v1
  /quests:
    get:
      operationId: quest.list
      summary: Квесты
      description: List the person's quests (newest first, up to 20 per page).
      security:
      - agentBearer:
        - quests:read
      x-scope: quests:read
      x-idempotent: true
      x-cost-class: read
      parameters:
      - name: status
        in: query
        required: false
        schema:
          type: string
          enum:
          - live
          - all
          description: 'List mode (no id): live = open quests (default), all = closed ones too'
      - name: cursor
        in: query
        required: false
        schema:
          type: string
          description: 'List mode: data.next_cursor from the previous page, e.g. c20; null = last'
      responses:
        '200':
          description: Envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
      tags:
      - Quests
    post:
      operationId: quest.create
      summary: Поставить квест
      description: 'Start a quest in the person''s words. Write it as their first-person request («Ищу …», not «найди мне…»): others read it. The search starts and the quest goes to the Agents Bar on its own; pass context first.'
      security:
      - agentBearer:
        - quests:write
      x-scope: quests:write
      x-idempotent: true
      x-cost-class: llm
      parameters:
      - name: Idempotency-Key
        in: header
        required: true
        description: 16–128 of [A-Za-z0-9_:-]; the key is kept for 30 days.
        schema:
          type: string
          pattern: ^[A-Za-z0-9_:-]{16,128}$
      - name: wait_s
        in: query
        required: false
        schema:
          type: number
          minimum: 0
          maximum: 20
          default: 8
      responses:
        '200':
          description: Envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '201':
          description: Envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '202':
          description: 'Still running: poll operation_status'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              properties:
                text:
                  type: string
                  minLength: 2
                  maxLength: 1200
                  description: The person's request, first person («Ищу …»), 2-1200 chars; others read it
                public:
                  type: boolean
                  default: true
                  description: 'false hides the quest from entri.games/quests; omit: public if it is a search'
                respond_to:
                  type: string
                  maxLength: 64
                  description: 'qid of an entri.games/quests quest: a response to its author, not published'
              required:
              - text
      tags:
      - Quests
    servers:
    - url: https://entri.games/api/agent/v1
  /quests/{id}/close:
    post:
      operationId: quest.close
      summary: Закрыть квест
      description: 'Close a quest when the human says it is done: the Bar closes and leads fade. Reopen with start_quest and the same text.'
      security:
      - agentBearer:
        - manage:write
      x-scope: manage:write
      x-idempotent: true
      x-cost-class: write
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: Idempotency-Key
        in: header
        required: true
        description: 16–128 of [A-Za-z0-9_:-]; the key is kept for 30 days.
        schema:
          type: string
          pattern: ^[A-Za-z0-9_:-]{16,128}$
      - name: wait_s
        in: query
        required: false
        schema:
          type: number
          minimum: 0
          maximum: 20
          default: 8
      responses:
        '200':
          description: Envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '201':
          description: Envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '202':
          description: 'Still running: poll operation_status'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              properties:
                outcome:
                  type: string
                  maxLength: 1000
                  description: How it ended, the human's words, up to 280 chars kept; optional
      tags:
      - Quests
    servers:
    - url: https://entri.games/api/agent/v1
  /quests/{id}/public:
    post:
      operationId: quest.publicity
      summary: Публичность квеста
      description: Show or hide the quest on entri.games/quests (public) or its game's card (showcase). Search and the Bar stay unchanged.
      security:
      - agentBearer:
        - manage:write
      x-scope: manage:write
      x-idempotent: true
      x-cost-class: write
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: Idempotency-Key
        in: header
        required: true
        description: 16–128 of [A-Za-z0-9_:-]; the key is kept for 30 days.
        schema:
          type: string
          pattern: ^[A-Za-z0-9_:-]{16,128}$
      - name: wait_s
        in: query
        required: false
        schema:
          type: number
          minimum: 0
          maximum: 20
          default: 8
      responses:
        '200':
          description: Envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '201':
          description: Envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '202':
          description: 'Still running: poll operation_status'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              properties:
                public:
                  type: boolean
                  description: true shows the quest on entri.games/quests, false hides the public page
                showcase:
                  type: boolean
                  description: 'true: the quest''s badge («Ищем издателя»…) on its game card; false hides it'
                project_id:
                  type: string
                  maxLength: 80
                  description: 'With showcase: the human''s game (project_status) if the quest has none'
      tags:
      - Quests
    servers:
    - url: https://entri.games/api/agent/v1
  /quests/preview:
    post:
      operationId: quest.preview
      summary: Проверить текст квеста
      description: 'Check a quest text without creating it: the same verdict as start_quest, no writes.'
      security:
      - agentBearer:
        - quests:read
      x-scope: quests:read
      x-idempotent: true
      x-cost-class: read
      parameters: []
      responses:
        '200':
          description: Envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              properties:
                text:
                  type: string
                  minLength: 2
                  maxLength: 1200
              required:
              - text
      tags:
      - Quests
    servers:
    - url: https://entri.games/api/agent/v1
components:
  schemas:
    Envelope:
      type: object
      required:
      - ok
      - api_version
      - request_id
      properties:
        ok:
          type: boolean
        api_version:
          type: string
        api_revision:
          type: string
        request_id:
          type: string
        say_to_human:
          type: string
        data:
          type: object
        needs_human:
          type: array
          items:
            type: object
        links:
          type: object
        next:
          type: object
        context_tips:
          type: object
        content_notice:
          type: object
        error:
          type: object
          required:
          - code
          - message
          - say_to_human
          - retryable
          properties:
            code:
              type: string
              enum:
              - account_inactive
              - agent_api_disabled
              - agent_budget_exhausted
              - agent_budget_unset
              - agent_daily_cap
              - agent_quest_limit
              - already_done
              - answer_rejected
              - answer_too_long
              - answer_too_short
              - bad_request
              - budget_unknown
              - capacity_busy
              - chat_read_only
              - company_exists
              - confirm_send
              - confirm_spend
              - contact_daily_limit
              - context_rejected
              - daily_quota
              - event_busy
              - event_unavailable
              - feature_unavailable
              - finalize_failed
              - finalizing
              - fork_required
              - human_opens_contact
              - idempotency_key_required
              - idempotency_key_reused
              - image_rejected
              - insufficient_scope
              - internal
              - interview_busy
              - interview_in_telegram
              - interview_incomplete
              - interview_required
              - invalid_token
              - limiter_unavailable
              - llm_daily_cap
              - low_balance
              - method_not_allowed
              - needs_clarification
              - not_found
              - operation_lost
              - operation_retry_exhausted
              - origin_forbidden
              - output_rejected
              - own_quest
              - payload_too_large
              - profile_required
              - project_changed
              - quest_gone
              - quest_not_publishable
              - quest_response_private
              - quest_slots_full
              - question_closed
              - question_stale
              - rate_limited
              - reason_private_contact
              - reason_required
              - respond_to_required
              - response_too_large
              - review_changed
              - showcase_unavailable
              - similar_quest_closed
              - spend_limit
              - telegram_flow_active
              - temporarily_unavailable
              - test_account_pool
              - text_rejected
              - text_too_long
              - text_too_short
              - timeout
              - too_many_projects
              - unsupported_media_type
              - use_person_part
              x-extensible-enum: true
            message:
              type: string
            say_to_human:
              type: string
            retryable:
              type: boolean
            retry_after_s:
              type: number
            resets_at:
              type: string
            human_action:
              type: object
            details:
              type: object
  securitySchemes:
    agentBearer:
      type: http
      scheme: bearer
      description: OAuth access token (resource …/api/agent/v1) or agent key.
x-refined-from:
- openapi.json
- entri-games-openapi.json