Gameball Tactics API

The Tactics API from Gameball — 1 operation(s) for tactics.

Operations 1

GET /api/v1/tactics/{tacticId}/report Get a composite tactic report including opportunity, performance, alerts, and… #

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-tactics-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-tactics-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Gameball Tactics API
tags:
- name: Tactics
paths:
  /api/v1/tactics/{tacticId}/report:
    get:
      tags:
      - Tactics
      summary: Get a composite tactic report including opportunity, performance, alerts, and…
      parameters:
      - name: tacticId
        in: path
        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.TacticReportViewModel'
            application/json:
              schema:
                $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultViewModel_1_GameBall.BLL.ViewModels.LoyaltyAnalyzer.TacticReportViewModel'
            text/json:
              schema:
                $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultViewModel_1_GameBall.BLL.ViewModels.LoyaltyAnalyzer.TacticReportViewModel'
      operationId: getApiV1TacticsByTacticIdReport
      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.Common.Model.Enums.EAlertEntityType:
      enum:
      - 1
      - 2
      - 3
      type: integer
      format: int32
    GameBall.Common.ProcessResult.ProcessResultViewModel_1_GameBall.BLL.ViewModels.LoyaltyAnalyzer.TacticReportViewModel:
      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.TacticReportViewModel'
      additionalProperties: false
    GameBall.BLL.ViewModels.LoyaltyAnalyzer.PerformanceAuditResultViewModel:
      type: object
      properties:
        id:
          type: integer
          format: int32
        tacticId:
          type: integer
          format: int32
        tacticName:
          type:
          - string
          - 'null'
        status:
          type:
          - string
          - 'null'
        liftPct:
          type:
          - number
          - 'null'
          format: double
        confidenceIntervalLow:
          type:
          - number
          - 'null'
          format: double
        confidenceIntervalHigh:
          type:
          - number
          - 'null'
          format: double
        guardrailChecksJson:
          type:
          - string
          - 'null'
        evidenceJson:
          type:
          - string
          - 'null'
        rationaleText:
          type:
          - string
          - 'null'
        verdict:
          type:
          - string
          - 'null'
        processedAt:
          type: string
          format: date-time
      additionalProperties: false
    GameBall.Common.Model.Enums.EAlertProposedActionType:
      enum:
      - 1
      - 2
      - 3
      - 4
      - 6
      - 9
      - 10
      - 11
      type: integer
      format: int32
    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.BLL.ViewModels.LoyaltyAnalyzer.TacticReportViewModel:
      type: object
      properties:
        id:
          type: integer
          format: int32
        opportunityId:
          type: integer
          format: int32
        challengeId:
          type:
          - integer
          - 'null'
          format: int32
        segmentId:
          type:
          - integer
          - 'null'
          format: int32
        campaignName:
          type:
          - string
          - 'null'
        campaignDescription:
          type:
          - string
          - 'null'
        campaignOverview:
          type:
          - string
          - 'null'
        estimatedImpact:
          type:
          - string
          - 'null'
        recommendedBudget:
          type:
          - string
          - 'null'
        campaignConfiguration:
          type:
          - string
          - 'null'
        isExecuted:
          type: boolean
        executionDate:
          type:
          - string
          - 'null'
          format: date-time
        expiryDate:
          type:
          - string
          - 'null'
          format: date-time
        timestamp:
          type: string
          format: date-time
        opportunity:
          $ref: '#/components/schemas/GameBall.BLL.ViewModels.LoyaltyAnalyzer.TacticReportOpportunityViewModel'
        latestPerformance:
          $ref: '#/components/schemas/GameBall.BLL.ViewModels.LoyaltyAnalyzer.PerformanceAuditResultViewModel'
        performanceHistory:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/GameBall.BLL.ViewModels.LoyaltyAnalyzer.PerformanceAuditResultViewModel'
        alerts:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/GameBall.BLL.ViewModels.LoyaltyAnalyzer.AlertViewModel'
        mutations:
          type:
          - array
          - 'null'
          items:
            $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.EAlertSeverity:
      enum:
      - 1
      - 2
      - 3
      - 4
      type: integer
      format: int32
    GameBall.Common.Model.Enums.EMutationSourceType:
      enum:
      - 1
      - 2
      type: integer
      format: int32
    GameBall.BLL.ViewModels.LoyaltyAnalyzer.TacticReportOpportunityViewModel:
      type: object
      properties:
        id:
          type: integer
          format: int32
        title:
          type:
          - string
          - 'null'
        type:
          type:
          - string
          - 'null'
        severity:
          type:
          - string
          - 'null'
        description:
          type:
          - string
          - 'null'
      additionalProperties: false
    GameBall.Common.ProcessResult.ProcessResultStatus:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/GameBall.Common.ProcessResult.ProcessResultStatusCode'
        message:
          type:
          - string
          - 'null'
      additionalProperties: false
    GameBall.BLL.ViewModels.LoyaltyAnalyzer.AlertViewModel:
      type: object
      properties:
        id:
          type: integer
          format: int32
        clientId:
          type: integer
          format: int32
        severity:
          $ref: '#/components/schemas/GameBall.Common.Model.Enums.EAlertSeverity'
        type:
          $ref: '#/components/schemas/GameBall.Common.Model.Enums.EAlertType'
        entityType:
          $ref: '#/components/schemas/GameBall.Common.Model.Enums.EAlertEntityType'
        entityId:
          type:
          - string
          - 'null'
        title:
          type:
          - string
          - 'null'
        detail:
          type:
          - string
          - 'null'
        proposedActionType:
          $ref: '#/components/schemas/GameBall.Common.Model.Enums.EAlertProposedActionType'
        proposedActionPayload:
          type:
          - string
          - 'null'
        status:
          $ref: '#/components/schemas/GameBall.Common.Model.Enums.EAlertStatus'
        createdAt:
          type: string
          format: date-time
        acknowledgedAt:
          type:
          - string
          - 'null'
          format: date-time
        resolvedAt:
          type:
          - string
          - 'null'
          format: date-time
        feedbackReason:
          type:
          - string
          - 'null'
        resolvedBy:
          type:
          - string
          - 'null'
        isRead:
          type: boolean
        description:
          type:
          - string
          - 'null'
      additionalProperties: false
    GameBall.Common.Model.Enums.EMutationRejectionCategory:
      enum:
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 99
      type: integer
      format: int32
    GameBall.Common.Model.Enums.EAlertStatus:
      enum:
      - 1
      - 2
      - 3
      type: integer
      format: int32
    GameBall.Common.Model.Enums.EAlertType:
      enum:
      - 1
      - 2
      - 6
      - 14
      - 15
      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)