Gameball Mutations API

The Mutations API from Gameball — 6 operation(s) for mutations.

Operations 6

GET /api/v1/Mutations Get all pending mutation proposals for the client #
GET /api/v1/Mutations/{id} Get a single mutation proposal by ID #
POST /api/v1/Mutations/{id}/approve Approve and apply a mutation proposal (status: Proposed → Applied) #
POST /api/v1/Mutations/{id}/reject Reject a mutation proposal (status: Proposed → Rejected) #
POST /api/v1/Mutations/{id}/revise Request a revision of a mutation proposal. #
GET /api/v1/Mutations/regeneration/{jobId}/status Poll the status of a mutation regeneration job #

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/gameball:gameball-mutations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

gameball-mutations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Gameball Mutations API
tags:
- name: Mutations
paths:
  /api/v1/Mutations:
    get:
      tags:
      - Mutations
      summary: Get all pending mutation proposals for the client
      parameters:
      - name: Authorization
        in: header
        schema:
          type: string
      - name: lang
        in: header
        schema:
          type: string
      - name: APIKey
        in: header
        required: true
        schema:
          type: string
          default: 8fdfd2dffd-9mnvhu25d6c3d
      - name: SecretKey
        in: header
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultViewModel_1_System.Collections.Generic.List_1_GameBall.BLL.ViewModels.LoyaltyAnalyzer.MutationProposalViewModel'
            application/json:
              schema:
                $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultViewModel_1_System.Collections.Generic.List_1_GameBall.BLL.ViewModels.LoyaltyAnalyzer.MutationProposalViewModel'
            text/json:
              schema:
                $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultViewModel_1_System.Collections.Generic.List_1_GameBall.BLL.ViewModels.LoyaltyAnalyzer.MutationProposalViewModel'
      operationId: getApiV1Mutations
      x-operation-id-source: derived
  /api/v1/Mutations/{id}:
    get:
      tags:
      - Mutations
      summary: Get a single mutation proposal by ID
      parameters:
      - name: id
        in: path
        description: Mutation ID
        required: true
        schema:
          type: integer
          format: int32
      - name: Authorization
        in: header
        schema:
          type: string
      - name: lang
        in: header
        schema:
          type: string
      - name: APIKey
        in: header
        required: true
        schema:
          type: string
          default: 8fdfd2dffd-9mnvhu25d6c3d
      - name: SecretKey
        in: header
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultViewModel_1_GameBall.BLL.ViewModels.LoyaltyAnalyzer.MutationProposalViewModel'
            application/json:
              schema:
                $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultViewModel_1_GameBall.BLL.ViewModels.LoyaltyAnalyzer.MutationProposalViewModel'
            text/json:
              schema:
                $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultViewModel_1_GameBall.BLL.ViewModels.LoyaltyAnalyzer.MutationProposalViewModel'
      operationId: getApiV1MutationsById
      x-operation-id-source: derived
  /api/v1/Mutations/{id}/approve:
    post:
      tags:
      - Mutations
      summary: 'Approve and apply a mutation proposal (status: Proposed → Applied)'
      parameters:
      - name: id
        in: path
        description: Mutation ID
        required: true
        schema:
          type: integer
          format: int32
      - name: Authorization
        in: header
        schema:
          type: string
      - name: lang
        in: header
        schema:
          type: string
      - name: APIKey
        in: header
        required: true
        schema:
          type: string
          default: 8fdfd2dffd-9mnvhu25d6c3d
      - name: SecretKey
        in: header
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GameBall.BLL.ViewModels.LoyaltyAnalyzer.ApproveMutationRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/GameBall.BLL.ViewModels.LoyaltyAnalyzer.ApproveMutationRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/GameBall.BLL.ViewModels.LoyaltyAnalyzer.ApproveMutationRequest'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultViewModel_1_System.Boolean'
            application/json:
              schema:
                $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultViewModel_1_System.Boolean'
            text/json:
              schema:
                $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultViewModel_1_System.Boolean'
      operationId: postApiV1MutationsByIdApprove
      x-operation-id-source: derived
  /api/v1/Mutations/{id}/reject:
    post:
      tags:
      - Mutations
      summary: 'Reject a mutation proposal (status: Proposed → Rejected)'
      parameters:
      - name: id
        in: path
        description: Mutation ID
        required: true
        schema:
          type: integer
          format: int32
      - name: Authorization
        in: header
        schema:
          type: string
      - name: lang
        in: header
        schema:
          type: string
      - name: APIKey
        in: header
        required: true
        schema:
          type: string
          default: 8fdfd2dffd-9mnvhu25d6c3d
      - name: SecretKey
        in: header
        schema:
          type: string
      requestBody:
        description: Optional body with feedback_reason
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GameBall.BLL.ViewModels.LoyaltyAnalyzer.RejectMutationRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/GameBall.BLL.ViewModels.LoyaltyAnalyzer.RejectMutationRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/GameBall.BLL.ViewModels.LoyaltyAnalyzer.RejectMutationRequest'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultViewModel_1_System.Boolean'
            application/json:
              schema:
                $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultViewModel_1_System.Boolean'
            text/json:
              schema:
                $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultViewModel_1_System.Boolean'
      operationId: postApiV1MutationsByIdReject
      x-operation-id-source: derived
  /api/v1/Mutations/{id}/revise:
    post:
      tags:
      - Mutations
      summary: Request a revision of a mutation proposal.
      parameters:
      - name: id
        in: path
        description: Mutation ID
        required: true
        schema:
          type: integer
          format: int32
      - name: Authorization
        in: header
        schema:
          type: string
      - name: lang
        in: header
        schema:
          type: string
      - name: APIKey
        in: header
        required: true
        schema:
          type: string
          default: 8fdfd2dffd-9mnvhu25d6c3d
      - name: SecretKey
        in: header
        schema:
          type: string
      requestBody:
        description: Body with feedback_reason
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GameBall.BLL.ViewModels.LoyaltyAnalyzer.RequestRevisionRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/GameBall.BLL.ViewModels.LoyaltyAnalyzer.RequestRevisionRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/GameBall.BLL.ViewModels.LoyaltyAnalyzer.RequestRevisionRequest'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultViewModel_1_System.Object'
            application/json:
              schema:
                $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultViewModel_1_System.Object'
            text/json:
              schema:
                $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultViewModel_1_System.Object'
      operationId: postApiV1MutationsByIdRevise
      x-operation-id-source: derived
  /api/v1/Mutations/regeneration/{jobId}/status:
    get:
      tags:
      - Mutations
      summary: Poll the status of a mutation regeneration job
      parameters:
      - name: jobId
        in: path
        description: Regeneration job ID
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        schema:
          type: string
      - name: lang
        in: header
        schema:
          type: string
      - name: APIKey
        in: header
        required: true
        schema:
          type: string
          default: 8fdfd2dffd-9mnvhu25d6c3d
      - name: SecretKey
        in: header
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultViewModel_1_System.Object'
            application/json:
              schema:
                $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultViewModel_1_System.Object'
            text/json:
              schema:
                $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultViewModel_1_System.Object'
      operationId: getApiV1MutationsRegenerationByJobIdStatus
      x-operation-id-source: derived
components:
  schemas:
    GameBall.Common.ProcessResult.ProcessResultStatusCode:
      enum:
      - 0
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      - 8
      - 9
      - 10
      - 11
      - 12
      - 13
      - 14
      - 15
      - 16
      - 17
      - 18
      - 19
      - 20
      - 21
      - 22
      - 50
      - 51
      - 52
      - 53
      - 54
      - 101
      - 102
      - 151
      - 152
      - 153
      - 154
      - 155
      - 156
      - 157
      - 158
      - 159
      - 160
      - 161
      - 162
      - 301
      - 302
      - 303
      - 304
      - 305
      - 306
      - 307
      - 308
      - 309
      - 310
      - 311
      - 312
      - 313
      - 314
      - 315
      - 316
      - 317
      - 318
      - 319
      - 320
      - 321
      - 322
      - 323
      - 324
      - 325
      - 326
      - 327
      - 328
      - 329
      - 330
      - 331
      - 332
      - 333
      - 334
      - 335
      - 337
      - 351
      - 401
      - 402
      - 403
      - 404
      - 405
      - 412
      - 413
      - 414
      - 415
      - 416
      - 417
      - 418
      - 419
      - 420
      - 421
      - 422
      - 423
      - 424
      - 425
      - 426
      - 427
      - 500
      - 503
      - 800
      - 801
      type: integer
      format: int32
    GameBall.BLL.ViewModels.LoyaltyAnalyzer.RequestRevisionRequest:
      type: object
      properties:
        feedbackReason:
          type:
          - string
          - 'null'
        rejectionCategory:
          $ref: '#/components/schemas/GameBall.Common.Model.Enums.EMutationRejectionCategory'
      additionalProperties: false
    GameBall.Common.ProcessResult.ProcessResultViewModel_1_System.Boolean:
      type: object
      properties:
        isSucceeded:
          type: boolean
        methodName:
          type:
          - string
          - 'null'
        status:
          $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultStatus'
        data:
          type: boolean
      additionalProperties: false
    GameBall.BLL.ViewModels.LoyaltyAnalyzer.ApproveMutationRequest:
      type: object
      properties:
        feedbackReason:
          type:
          - string
          - 'null'
      additionalProperties: false
    GameBall.BLL.ViewModels.LoyaltyAnalyzer.RejectMutationRequest:
      type: object
      properties:
        feedbackReason:
          type:
          - string
          - 'null'
        rejectionCategory:
          $ref: '#/components/schemas/GameBall.Common.Model.Enums.EMutationRejectionCategory'
      additionalProperties: false
    ? GameBall.Common.ProcessResult.ProcessResultViewModel_1_System.Collections.Generic.List_1_GameBall.BLL.ViewModels.LoyaltyAnalyzer.MutationProposalViewModel
    : type: object
      properties:
        isSucceeded:
          type: boolean
        methodName:
          type:
          - string
          - 'null'
        status:
          $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultStatus'
        data:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/GameBall.BLL.ViewModels.LoyaltyAnalyzer.MutationProposalViewModel'
      additionalProperties: false
    GameBall.BLL.ViewModels.LoyaltyAnalyzer.MutationProposalViewModel:
      type: object
      properties:
        id:
          type: integer
          format: int32
        clientId:
          type: integer
          format: int32
        sourceType:
          $ref: '#/components/schemas/GameBall.Common.Model.Enums.EMutationSourceType'
        sourceId:
          type:
          - string
          - 'null'
        proposedChanges:
          type:
          - string
          - 'null'
        rationale:
          type:
          - string
          - 'null'
        playbookRefs:
          type:
          - array
          - 'null'
          items:
            type: integer
            format: int32
        evidenceBundle:
          type:
          - string
          - 'null'
        status:
          $ref: '#/components/schemas/GameBall.Common.Model.Enums.EMutationProposalStatus'
        resolvedBy:
          type:
          - string
          - 'null'
        resolvedAt:
          type:
          - string
          - 'null'
          format: date-time
        feedbackReason:
          type:
          - string
          - 'null'
        rejectionCategory:
          $ref: '#/components/schemas/GameBall.Common.Model.Enums.EMutationRejectionCategory'
        resultingEntityId:
          type:
          - string
          - 'null'
        parentProposalId:
          type:
          - integer
          - 'null'
          format: int32
      additionalProperties: false
    GameBall.Common.ProcessResult.ProcessResultViewModel_1_GameBall.BLL.ViewModels.LoyaltyAnalyzer.MutationProposalViewModel:
      type: object
      properties:
        isSucceeded:
          type: boolean
        methodName:
          type:
          - string
          - 'null'
        status:
          $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultStatus'
        data:
          $ref: '#/components/schemas/GameBall.BLL.ViewModels.LoyaltyAnalyzer.MutationProposalViewModel'
      additionalProperties: false
    GameBall.Common.Model.Enums.EMutationProposalStatus:
      enum:
      - 1
      - 2
      - 3
      - 4
      - 5
      type: integer
      format: int32
    GameBall.Common.Model.Enums.EMutationSourceType:
      enum:
      - 1
      - 2
      type: integer
      format: int32
    GameBall.Common.ProcessResult.ProcessResultViewModel_1_System.Object:
      type: object
      properties:
        isSucceeded:
          type: boolean
        methodName:
          type:
          - string
          - 'null'
        status:
          $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultStatus'
        data: {}
      additionalProperties: false
    GameBall.Common.ProcessResult.ProcessResultStatus:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultStatusCode'
        message:
          type:
          - string
          - 'null'
      additionalProperties: false
    GameBall.Common.Model.Enums.EMutationRejectionCategory:
      enum:
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 99
      type: integer
      format: int32
x-provenance:
  method: harvested
  publisher: Gameball
  source: https://api.gameball.co/swagger/v1/swagger.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)