GripForge API

GripForge API as documented publicly: 34 operations. Contract generated from the documentation by API Evangelist (2026-11-10); not the provider's own document.

GitHub OpenAPI

Operations 34

GET /api/v1/abilities Abilities / skills — GET & POST /api/v1/abilities #
POST /api/v1/abilities Abilities / skills — GET & POST /api/v1/abilities #
GET /api/v1/architecture Buildings / districts — GET /api/v1/architecture #
POST /api/v1/architecture Buildings / districts — POST /api/v1/architecture #
POST /api/v1/attach POST /api/v1/attach #
POST /api/v1/auth POST /api/v1/auth #
GET /api/v1/creature-rigs Creature Rig — GET & POST /api/v1/creature-rigs #
POST /api/v1/creature-rigs Creature Rig — GET & POST /api/v1/creature-rigs #
GET /api/v1/credits GET /api/v1/credits #
POST /api/v1/credits POST /api/v1/credits #
DELETE /api/v1/library Supprimer plusieurs éléments de la Library en une seule requête. #
GET /api/v1/library GET /api/v1/library #
POST /api/v1/library POST /api/v1/library #
DELETE /api/v1/library/{id} Supprimer un élément de la Library. #
GET /api/v1/library/{id} Récupérer les métadonnées d’un élément de la Library. #
PATCH /api/v1/library/{id} Mettre à jour les métadonnées d’un élément de la Library. #
GET /api/v1/library/{id}/file Télécharger le fichier signé d’un élément de la Library. #
GET /api/v1/maps/import/unreal GET /api/v1/maps/import/unreal renvoie le contrat #
POST /api/v1/maps/import/unreal Importer la map avec le SceneDocument #
POST /api/v1/maps/import/unreal/assets Envoyer chaque GLB autonome ou image à POST /api/v1/maps/import/unreal/assets en binaire #
POST /api/v1/network/rooms Multiplayer for your game (net.* kits, gfnet-server) #
POST /api/v1/scenes/{id}/optimize Pour optimiser une scène existante #
POST /api/v1/scenes/{id}/realism Architectural rendering — POST /api/v1/scenes/:id/realism #
GET /api/v1/scenes/schema GET /api/v1/scenes/schema # realism : contrat, limites et exemples #
GET /api/v1/shaders GET /api/v1/shaders #
GET /api/v1/shaders/{id} Obtenir le détail d’un shader, incluant sources et paramètres. #
POST /api/v1/shaders/pull POST /api/v1/shaders/pull #
POST /api/v1/textures/prep POST /api/v1/textures/prep #
GET /api/v1/vehicles GET /api/v1/vehicles # contrat complet et limites #
POST /api/v1/vehicles Modular vehicles — /api/v1/vehicles #
POST /api/v1/vehicles/prepare Modular vehicles — /api/v1/vehicles/prepare #
POST /api/v1/vehicles/segment Modular vehicles — /api/v1/vehicles/segment #
GET /api/v1/vfx/projectiles GET /api/v1/vfx/projectiles lists all variants. #
GET /cli/install.sh Install the CLI #

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/gripforge-ai:gripforge-ai-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

gripforge-ai-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: GripForge API
  version: '2026-11-10'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-10: 34 operation(s) read from 10 public documentation page(s) (each
    operation names its page in x-source). This is not the provider''s published contract; GripForge has published no machine-readable contract
    that the pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 10
    documentation: 24
    pages-with-code: 4
    pages-read: 10
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-10'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://gripforge.ai/docs/guides/kit-api
  - https://gripforge.ai/docs
  - https://gripforge.ai/docs/guides/third-party
  - https://gripforge.ai/docs/guides/godot
  - https://gripforge.ai/docs/guides/unreal
  - https://gripforge.ai/docs/guides/net
  - https://gripforge.ai/docs/guides/kit-api/source
  - https://gripforge.ai/mcp-docs
  - https://gripforge.ai/docs/guides/unity
  - https://gripforge.ai/docs/guides/web-multiplayer
paths:
  /api/v1/abilities:
    get:
      operationId: get_api_v1_abilities
      tags:
      - Api
      summary: Abilities / skills — GET & POST /api/v1/abilities
      x-source: https://gripforge.ai/docs
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
    post:
      operationId: post_api_v1_abilities
      tags:
      - Api
      summary: Abilities / skills — GET & POST /api/v1/abilities
      x-source: https://gripforge.ai/docs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1AbilitiesRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/architecture:
    get:
      operationId: get_api_v1_architecture
      tags:
      - Api
      summary: Buildings / districts — GET /api/v1/architecture
      x-source: https://gripforge.ai/docs
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
    post:
      operationId: post_api_v1_architecture
      tags:
      - Api
      summary: Buildings / districts — POST /api/v1/architecture
      x-source: https://gripforge.ai/docs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1ArchitectureRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/attach:
    post:
      operationId: post_api_v1_attach
      tags:
      - Api
      summary: POST /api/v1/attach
      x-source: https://gripforge.ai/docs
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://gripforge.ai/api/v1/attach  -H \"X-API-Key: gf_...\"  -F [email protected]  -F [email protected]  -F style=melee\
          \  -F hand=right Réponse : {\n \"bind\": {\n \"bone\": \"R_Hand\",\n \"boneAliases\": [\"R_Hand\"],\n \"style\": \"melee\",\n \"hand\"\
          : \"right\",\n \"heightRatio\": 0.44,\n \"bodyHeight\": 1.80,\n \"position\": [0.014, 0.062, -0.008],\n \"rotation\": [1.5708, 0, -0.2618],\n\
          \ \"rotationOrder\": \"XYZ\",\n \"spac"
  /api/v1/auth:
    post:
      operationId: post_api_v1_auth
      tags:
      - Api
      summary: POST /api/v1/auth
      x-source: https://gripforge.ai/docs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1AuthRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1AuthResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -X POST -H "content-type: application/json"  -d ''{"action":"signup","email":" [email protected] ","password":"********"}''  https://gripforge.ai/api/v1/auth'
  /api/v1/creature-rigs:
    get:
      operationId: get_api_v1_creature_rigs
      tags:
      - Api
      summary: Creature Rig — GET & POST /api/v1/creature-rigs
      x-source: https://gripforge.ai/docs
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1CreatureRigsResponse'
      x-evidence:
        kind: documentation
    post:
      operationId: post_api_v1_creature_rigs
      tags:
      - Api
      summary: Creature Rig — GET & POST /api/v1/creature-rigs
      x-source: https://gripforge.ai/docs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1CreatureRigsRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1CreatureRigsResponse'
      x-evidence:
        kind: documentation
  /api/v1/credits:
    get:
      operationId: get_api_v1_credits
      tags:
      - Api
      summary: GET /api/v1/credits
      x-source: https://gripforge.ai/docs
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1CreditsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -H "X-API-Key: gf_..." https://gripforge.ai/api/v1/credits

          → { "ok": true, "plan": "indie", "used": 3, "limit": 115, "remaining": 112, "purchased": 100, "period": "2026-09" }'
    post:
      operationId: post_api_v1_credits
      tags:
      - Api
      summary: POST /api/v1/credits
      x-source: https://gripforge.ai/docs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1CreditsRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1CreditsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -X POST -H "X-API-Key: gf_..." -H "content-type: application/json"  -d ''{"action":"charge"}'' https://gripforge.ai/api/v1/credits
          6 · POST /api/v1/auth Comptes email + mot de passe. L''inscription crée la clé API (plan Free). Session par cookie httpOnly — utilisée
          par la page compte , pas nécessaire pour appeler l''API (la clé suffit). # inscription (crée la clé API ; un pack de crédits débloque'
  /api/v1/library:
    delete:
      operationId: delete_api_v1_library
      tags:
      - Api
      summary: Supprimer plusieurs éléments de la Library en une seule requête.
      x-source: https://gripforge.ai/docs
      parameters:
      - name: X-API-Key
        in: header
        required: false
        schema:
          type: string
        description: Clé API du compte.
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
    get:
      operationId: get_api_v1_library
      tags:
      - Api
      summary: GET /api/v1/library
      x-source: https://gripforge.ai/docs
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -H "X-API-Key: gf_..." https://gripforge.ai/api/v1/library'
    post:
      operationId: post_api_v1_library
      tags:
      - Api
      summary: POST /api/v1/library
      x-source: https://gripforge.ai/docs
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -X POST -H "X-API-Key: gf_..."  -F kind=character -F name=Hero -F [email protected]  https://gripforge.ai/api/v1/library'
  /api/v1/library/{id}:
    delete:
      operationId: delete_api_v1_library_id
      tags:
      - Api
      summary: Supprimer un élément de la Library.
      x-source: https://gripforge.ai/docs
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: X-API-Key
        in: header
        required: false
        schema:
          type: string
        description: Clé API du compte.
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
    get:
      operationId: get_api_v1_library_id
      tags:
      - Api
      summary: Récupérer les métadonnées d’un élément de la Library.
      x-source: https://gripforge.ai/docs
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: X-API-Key
        in: header
        required: false
        schema:
          type: string
        description: Clé API du compte.
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1LibraryIdResponse'
      x-evidence:
        kind: documentation
    patch:
      operationId: patch_api_v1_library_id
      tags:
      - Api
      summary: Mettre à jour les métadonnées d’un élément de la Library.
      x-source: https://gripforge.ai/docs
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: X-API-Key
        in: header
        required: false
        schema:
          type: string
        description: Clé API du compte.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchApiV1LibraryIdRequest'
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/library/{id}/file:
    get:
      operationId: get_api_v1_library_id_file
      tags:
      - Api
      summary: Télécharger le fichier signé d’un élément de la Library.
      x-source: https://gripforge.ai/docs
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: exp
        in: query
        required: false
        schema:
          type: string
        description: Timestamp d’expiration du lien.
      - name: sig
        in: query
        required: false
        schema:
          type: string
        description: Signature du lien.
      - name: X-API-Key
        in: header
        required: false
        schema:
          type: string
        description: Clé API du compte.
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/maps/import/unreal:
    get:
      operationId: get_api_v1_maps_import_unreal
      tags:
      - Api
      summary: GET /api/v1/maps/import/unreal renvoie le contrat
      x-source: https://gripforge.ai/docs
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
    post:
      operationId: post_api_v1_maps_import_unreal
      tags:
      - Api
      summary: Importer la map avec le SceneDocument
      x-source: https://gripforge.ai/docs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1MapsImportUnrealRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1MapsImportUnrealResponse'
      x-evidence:
        kind: documentation
  /api/v1/maps/import/unreal/assets:
    post:
      operationId: post_api_v1_maps_import_unreal_assets
      tags:
      - Api
      summary: Envoyer chaque GLB autonome ou image à POST /api/v1/maps/import/unreal/assets en binaire
      x-source: https://gripforge.ai/docs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1MapsImportUnrealAssetsRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1MapsImportUnrealAssetsResponse'
      x-evidence:
        kind: documentation
  /api/v1/network/rooms:
    post:
      operationId: post_api_v1_network_rooms
      tags:
      - Api
      summary: Multiplayer for your game (net.* kits, gfnet-server)
      x-source: https://gripforge.ai/docs/guides/net
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1NetworkRoomsRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/scenes/{id}/optimize:
    post:
      operationId: post_api_v1_scenes_id_optimize
      tags:
      - Api
      summary: Pour optimiser une scène existante
      x-source: https://gripforge.ai/docs
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1ScenesIdOptimizeRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1ScenesIdOptimizeResponse'
      x-evidence:
        kind: documentation
  /api/v1/scenes/{id}/realism:
    post:
      operationId: post_api_v1_scenes_id_realism
      tags:
      - Api
      summary: Architectural rendering — POST /api/v1/scenes/:id/realism
      x-source: https://gripforge.ai/docs
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1ScenesIdRealismRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1ScenesIdRealismResponse'
      x-evidence:
        kind: documentation
  /api/v1/scenes/schema:
    get:
      operationId: get_api_v1_scenes_schema
      tags:
      - Api
      summary: 'GET /api/v1/scenes/schema # realism : contrat, limites et exemples'
      x-source: https://gripforge.ai/docs
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/shaders:
    get:
      operationId: get_api_v1_shaders
      tags:
      - Api
      summary: GET /api/v1/shaders
      x-source: https://gripforge.ai/docs
      parameters:
      - name: q
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1ShadersResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -H "X-API-Key: gf_..." "https://gripforge.ai/api/v1/shaders?q=slash_reveal"'
  /api/v1/shaders/{id}:
    get:
      operationId: get_api_v1_shaders_id
      tags:
      - Api
      summary: Obtenir le détail d’un shader, incluant sources et paramètres.
      x-source: https://gripforge.ai/docs
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: X-API-Key
        in: header
        required: false
        schema:
          type: string
        description: Clé API du compte.
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1ShadersIdResponse'
      x-evidence:
        kind: documentation
  /api/v1/shaders/pull:
    post:
      operationId: post_api_v1_shaders_pull
      tags:
      - Api
      summary: POST /api/v1/shaders/pull
      x-source: https://gripforge.ai/docs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1ShadersPullRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1ShadersPullResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -X POST -H "X-API-Key: gf_..." -H "content-type: application/json"  -d ''{"id":"slash_reveal","engine":"godot","out_dir":"./shaders"}''  https://gripforge.ai/api/v1/shaders/pull
          5 · GET & POST /api/v1/credits Solde et consommation. Free = 15 Studio + 3 essais API/MCP / mois. Packs one-shot (100 / 500 / 1 500)
          — les crédits achetés n''expirent pas. # solde'
  /api/v1/textures/prep:
    post:
      operationId: post_api_v1_textures_prep
      tags:
      - Api
      summary: POST /api/v1/textures/prep
      x-source: https://gripforge.ai/docs
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -X POST https://gripforge.ai/api/v1/textures/prep  -H "X-API-Key: gf_..."  -F [email protected]  -F seamless=1  -F scale=4  -F
          size=2048  -F save=1'
  /api/v1/vehicles:
    get:
      operationId: get_api_v1_vehicles
      tags:
      - Api
      summary: 'GET /api/v1/vehicles # contrat complet et limites'
      x-source: https://gripforge.ai/docs
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1VehiclesResponse'
      x-evidence:
        kind: documentation
    post:
      operationId: post_api_v1_vehicles
      tags:
      - Api
      summary: Modular vehicles — /api/v1/vehicles
      x-source: https://gripforge.ai/docs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1VehiclesRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/vehicles/prepare:
    post:
      operationId: post_api_v1_vehicles_prepare
      tags:
      - Api
      summary: Modular vehicles — /api/v1/vehicles/prepare
      x-source: https://gripforge.ai/docs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1VehiclesPrepareRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/vehicles/segment:
    post:
      operationId: post_api_v1_vehicles_segment
      tags:
      - Api
      summary: Modular vehicles — /api/v1/vehicles/segment
      x-source: https://gripforge.ai/docs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1VehiclesSegmentRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/vfx/projectiles:
    get:
      operationId: get_api_v1_vfx_projectiles
      tags:
      - Api
      summary: GET /api/v1/vfx/projectiles lists all variants.
      x-source: https://gripforge.ai/mcp-docs
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /cli/install.sh:
    get:
      operationId: get_cli_install_sh
      tags:
      - Cli
      summary: Install the CLI
      description: Downloads the CLI installation script from https://gripforge.ai/cli/install.sh.
      x-source: https://gripforge.ai/docs/guides/unreal
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
components:
  schemas:
    PostApiV1AbilitiesRequest:
      type: object
      properties:
        action:
          type: string
          description: e.g., "example", "validate", "export"
        model_asset:
          type: string
          description: Asset identifier for example action
        pack:
          type: object
          description: Pack definition for validate/export actions
        target:
          type: string
          description: 'Export target: godot, unity, unreal, all'
      required:
      - action
    PostApiV1ArchitectureRequest:
      type: object
      properties:
        kind:
          type: string
          description: e.g., "building"
        stage:
          type: string
          description: e.g., "plan"
        recipe:
          type: object
          description: Details of the building concept
      required:
      - kind
      - stage
      - recipe
    PostApiV1AuthRequest:
      type: object
      properties:
        action:
          type: string
        email:
          type: string
        password:
          type: string
    PostApiV1AuthResponse:
      type: object
      properties:
        action:
          type: string
    GetApiV1CreatureRigsResponse:
      type: object
      properties:
        list:
          type: array
          description: Liste des rigs disponibles
    PostApiV1CreatureRigsRequest:
      type: object
      properties:
        action:
          type: string
          description: '"analyze" ou "rig"'
        source_id:
          type: string
          description: ID de la source pour analyse
        analysis_job:
          type: string
          description: Job d'analyse pour rigging
        name:
          type: string
          description: Nom du rig
        reviewed_anatomy:
          type: boolean
          description: Indique si l'anatomie a été revue
      required:
      - action
    PostApiV1CreatureRigsResponse:
      type: object
      properties:
        job_id:
          type: string
        status_url:
          type: string
    GetApiV1CreditsResponse:
      type: object
      properties:
        action:
          type: string
    PostApiV1CreditsRequest:
      type: object
      properties:
        action:
          type: string
    PostApiV1CreditsResponse:
      type: object
      properties:
        action:
          type: string
    GetApiV1LibraryIdResponse:
      type: object
      properties:
        library.id:
          type: string
          description: Identifiant de l’élément.
        library.file_url:
          type: string
          description: URL signée du fichier.
    PatchApiV1LibraryIdRequest:
      type: object
      properties:
        name:
          type: string
          description: Nouveau nom de l’élément.
    PostApiV1MapsImportUnrealRequest:
      type: object
      properties:
        schema:
          type: string
          description: '"gripforge.unreal-studio-import.v1"'
        idempotency_key:
          type: string
        source:
          type: object
          description: Contient engine, level, sha256, warnings
        document:
          type: string
          description: Objet SceneDocument purpose=map avec les références uploadées
      required:
      - schema
      - idempotency_key
      - source
      - document
    PostApiV1MapsImportUnrealResponse:
      type: object
      properties:
        job_id:
          type: string
        credits:
          type: integer
        status_url:
          type: string
    PostApiV1MapsImportUnrealAssetsRequest:
      type: object
      properties:
        X-Asset-Filename:
          type: string
          description: Header specifying the asset filename
        X-Content-Sha256:
          type: string
          description: Header with SHA-256 of the content
      required:
      - X-Asset-Filename
      - X-Content-Sha256
    PostApiV1MapsImportUnrealAssetsResponse:
      type: object
      properties:
        reference:
          type: string
          description: Référence immuable de l’asset
    PostApiV1NetworkRoomsRequest:
      type: object
      properties:
        model:
          type: string
        sync:
          type: string
        physics:
          type: string
      required:
      - model
      - sync
      - physics
    PostApiV1ScenesIdOptimizeRequest:
      type: object
      properties:
        expectedRevision:
          type: integer
        idempotency_key:
          type: string
      required:
      - expectedRevision
      - idempotency_key
    PostApiV1ScenesIdOptimizeResponse:
      type: object
      properties:
        job_id:
          type: string
        credits:
          type: integer
        status_url:
          type: string
    PostApiV1ScenesIdRealismRequest:
      type: object
      properties:
        expectedRevision:
          type: integer
        assignments:
          type: array
          description: Liste des affectations de matériaux
        ambientOcclusion:
          type: object
      required:
      - expectedRevision
      - assignments
    PostApiV1ScenesIdRealismResponse:
      type: object
      properties:
        studio_url:
          type: string
    GetApiV1ShadersResponse:
      type: object
      properties:
        action:
          type: string
    GetApiV1ShadersIdResponse:
      type: object
      properties:
        sources:
          type: object
          description: Code source du shader.
        params:
          type: object
          description: Paramètres configurables du shader.
    PostApiV1ShadersPullRequest:
      type: object
      properties:
        id:
          type: string
        engine:
          type: string
        out_dir:
          type: string
    PostApiV1ShadersPullResponse:
      type: object
      properties:
        action:
          type: string
    GetApiV1VehiclesResponse:
      type: object
      properties:
        list:
          type: array
          description: Liste des véhicules
    PostApiV1VehiclesRequest:
      type: object
      properties:
        stage:
          type: string
          description: e.g., "plan"
        recipe:
          type: object
          description: Contains prompt, doors, etc.
      required:
      - stage
      - recipe
    PostApiV1VehiclesPrepareRequest:
      type: object
      properties:
        source:
          type: object
          description: assetId and revisionId of the segmented asset
        parts:
          type: object
          description: Mapping of part names to library identifiers
        yaw:
          type: number
          description: Yaw rotation in degrees
        length:
          type: number
          description: Vehicle length in meters
        openAngle:
          type: number
          description: Door opening angle in degrees
      required:
      - source
      - parts
    PostApiV1VehiclesSegmentRequest:
      type: object
      properties:
        stage:
          type: string
          description: e.g., "plan"
        source:
          type: object
          description: assetId and revisionId of the source vehicle
      required:
      - stage
      - source
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
security:
- apiKey: []
tags:
- name: Api
- name: Cli