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

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

GitHub OpenAPI

Operations 6

GET /projects/{id} Проекты #
GET /projects Список проектов #
POST /projects Сохранить проект #
POST /projects/tools Сохранить тулзу #
POST /projects/coeditors Позвать соредактора #
POST /projects/join Стать соредактором #

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-projects-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-projects-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Entri Games Projects API
  version: '1'
  x-api-revision: '2026-10-01'
  description: 'Operations tagged Projects 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: Projects
paths:
  /projects/{id}:
    get:
      operationId: project.get
      summary: Проекты
      description: 'Projects by id; no id: the list. A project comes with its snapshot and version; that version is save_project''s base_version.'
      security:
      - agentBearer:
        - profile:read
      x-scope: profile:read
      x-idempotent: true
      x-cost-class: read
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
      tags:
      - Projects
    servers:
    - url: https://entri.games/api/agent/v1
  /projects:
    get:
      operationId: project.list
      summary: Список проектов
      description: 'List the person''s projects (newest first, up to 20 per page): type, version, showcase state, slug and external_ref.'
      security:
      - agentBearer:
        - profile:read
      x-scope: profile:read
      x-idempotent: true
      x-cost-class: read
      parameters:
      - name: external_ref
        in: query
        required: false
        schema:
          type: string
          maxLength: 80
          description: 'List mode: only the project bound to this external_ref'
      - 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:
      - Projects
    post:
      operationId: project.save
      summary: Сохранить проект
      description: 'Create or update one project (a game, or the human''s company with project_type company) and its showcase card. Pass project_id with base_version from project_status, or your own external_ref: the same project on every sync, no duplicates. Fields you send replace the stored ones; the rest stay.'
      security:
      - agentBearer:
        - context:write
      x-scope: context: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
              properties:
                project_id:
                  type: string
                  maxLength: 64
                  description: Own project to update (from project_status); omit to create or use external_ref
                base_version:
                  type: integer
                  minimum: 0
                  description: 'With project_id + project: version from project_status; else project_changed'
                external_ref:
                  type: string
                  maxLength: 80
                  description: 'Your stable key, e.g. studio:game-42: the same key is the same project'
                project:
                  type: object
                  description: Fields to set, the rest kept; project_type company = studio; studio_ref links
                card:
                  type: object
                  description: 'Showcase card: description, icon_url|icon_base64, showcase {…}, listed true/false'
                dry_run:
                  type: boolean
                  default: false
                  description: 'true: validate only, no writes; use a new request_key for the real call'
      tags:
      - Projects
    servers:
    - url: https://entri.games/api/agent/v1
  /projects/tools:
    post:
      operationId: tool.save
      summary: Сохранить тулзу
      description: Save the human's tool, asset or know-how as a card of their own project or studio. dry_run shows the card people will see; publish true puts it in the Tavern catalog at once, as the human asked; journal Undo reverts it.
      security:
      - agentBearer:
        - context:write
      x-scope: context:write
      x-idempotent: true
      x-cost-class: write
      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
              properties:
                project_id:
                  type: string
                  maxLength: 64
                  description: 'Own game or studio id from project_status: the tool''s home'
                tool:
                  type: object
                  description: title, description, helps_with[], kind solution|asset|knowledge, engine, license
                tool_id:
                  type: integer
                  minimum: 1
                  description: 'Saved tool id (connect_status data.digitize) to publish; tool: only its labels'
                publish:
                  type: boolean
                  default: false
                  description: 'true: into the Tavern catalog at once, as part of the human''s request; Undo reverts'
                confirm:
                  type: string
                  maxLength: 40
                  description: 'Not needed: ignored'
                dry_run:
                  type: boolean
                  default: false
                  description: 'true: the card people will see, no writes; new request_key for the real call'
      tags:
      - Projects
    servers:
    - url: https://entri.games/api/agent/v1
  /projects/coeditors:
    post:
      operationId: project.coeditor.invite
      summary: Позвать соредактора
      description: Invite a project co-editor. Give their AI agent the one-time join_project code, valid 7 days; they edit the same cards without duplicates.
      security:
      - agentBearer:
        - context:write
      x-scope: context:write
      x-idempotent: true
      x-cost-class: write
      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:
                project_ids:
                  type: array
                  maxItems: 20
                  items:
                    type: string
                    maxLength: 64
                  description: 'Own project ids from project_status, up to 20: games and the company card'
                username:
                  type: string
                  maxLength: 33
                  description: 'Partner''s Telegram @username: only they can accept. Omit: anyone with the code'
              required:
              - project_ids
      tags:
      - Projects
    servers:
    - url: https://entri.games/api/agent/v1
  /projects/join:
    post:
      operationId: project.coeditor.join
      summary: Стать соредактором
      description: 'Accept a co-editor invite code from a project owner: the shared projects appear in project_status and save_project edits them.'
      security:
      - agentBearer:
        - context:write
      x-scope: context:write
      x-idempotent: true
      x-cost-class: write
      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:
                code:
                  type: string
                  maxLength: 80
                  description: Invite code pinv_… that the project owner gave the human
              required:
              - code
      tags:
      - Projects
    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