Aghanim Players' Subscriptions API

The Players' Subscriptions API from Aghanim — 3 operation(s) for players' subscriptions.

Operations 3

GET /v1/players/{player_id}/subscriptions Get Subscriptions #
DELETE /v1/players/{player_id}/subscriptions/{subscription_id} Cancel Player Subscriptions #
POST /v1/players/{player_id}/subscriptions/{subscription_id}/reactivate Reactivate Player Subscription #

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/aghanim-players-subscriptions-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

aghanim-players-subscriptions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Aghanim Server-to-Server Achievements Players' Subscriptions API
  description: "The Aghanim Server-to-Server API is designed for **backend server integrations only**. Use this API when you need to automate game hub updates from your server-side applications.\n\n\n## OpenAPI Specification\n\nYou can download the [OpenAPI](https://www.openapis.org/) specification for this API at the following link:\n[docs.aghanim.com/openapi.json](https://docs.aghanim.com/openapi.json).\n\n## Changelog\n\nSee the [S2S API Changelog](https://docs.aghanim.com/s2s-api/changelog/) for a history of changes to this API.\n\n## Authentication\n\nAghanim supports two methods of authentication: **Bearer token** and **Basic authentication**.\n\nTo authenticate, you will need your API key, which can be retrieved from\nthe Aghanim Dashboard → [**Game → Integration → API Keys**](https://dashboard.aghanim.com/go/integration/api-keys).\n\n**⚠️ Security Notice**: The S2S API key is **secret** and must be kept secure on your server. Never expose the S2S API key in client-side code, mobile apps, or any public-facing applications.\n\n### Bearer Token Authentication\n\nUse the Bearer method by including an `Authorization` header with the word `Bearer`\nfollowed by your API key. The `Authorization` header in your HTTP request should look like this: `Authorization: Bearer API_KEY`\n\n### Basic Authentication\n\nAlternatively, you can authenticate using Basic authentication. Your API key is used\nas the `username`, and the `password` should be left empty. Send an `Authorization`\nheader with the word `Basic` followed by a base64-encoded string\nin the format `API_KEY:` (note the colon at the end).\n\nThe `Authorization` header should look like this: `Authorization: Basic ZGVtbzpwQDU1dzByZA==`\n\n## Error Codes\n\nAghanim employs standard HTTP response codes to denote the success or failure of an API request.\nBelow is a table detailing error codes.\n\n| Code | Description |\n| ---- | ----------- |\n| 200  | OK          |\n| 400  | Bad request |\n| 401  | Not authenticated |\n| 403  | Not authorized |\n| 404  | Resource not found |\n| 409  | Conflict. Request conflicts with current state of resource |\n| 422  | Validation error |\n| 429  | Too many requests. Rate limit exceeded |\n| 503  | Server unavailable |\n\n### Generic error schema\n\n```json\n{\n  \"detail\": \"string\"\n}\n```\n\n### Validation error schema\n\n```json\n{\n  \"detail\": [\n    {\n      \"loc\": [\n        \"string\",\n        0\n      ],\n      \"msg\": \"string\",\n      \"type\": \"string\"\n    }\n  ]\n}\n```\n\n## Rate Limits\n\nThe Aghanim API has rate limiting in place to avoid overloading and to ensure it remains stable.\nThe allowable rate of requests is capped at 1,000 per minute for every game.\nGame developers who exceed this limit will receive a 429 error code.\n\nTo increase the rate limit, please contact us via [integration@aghanim.com](mailto:integration@aghanim.com).\n\n## Pagination\n\nIn the Aghanim API, pagination is managed through the use of the `limit` and `offset` query parameters.\nThese parameters allow to fine-tune your data retrieval requests by specifying:\n\n- `limit`: the number of records to be returned in a single request.\n- `offset`: indicates the number of records to skip from the start of the dataset.\n"
  contact:
    name: Aghanim
    email: integration@aghanim.com
  version: 2026.07.14
servers:
- url: https://api.aghanim.com/s2s
  description: Production
tags:
- name: Players' Subscriptions
paths:
  /v1/players/{player_id}/subscriptions:
    get:
      tags:
      - Players' Subscriptions
      summary: Get Subscriptions
      description: Retrieve subscriptions for a player.
      operationId: get_player_subscriptions
      security:
      - HTTPBearer: []
      parameters:
      - name: player_id
        in: path
        required: true
        schema:
          title: Player Id
          type: string
      - name: effective
        in: query
        required: false
        schema:
          title: Effective
          description: Filter by effective status. True for effective only, False for non-effective only, None for all.
          type: boolean
        description: Filter by effective status. True for effective only, False for non-effective only, None for all.
      - name: limit
        in: query
        required: false
        schema:
          title: Limit
          description: A limit on the number of objects to be returned
          default: 10
          type: integer
        description: A limit on the number of objects to be returned
      - name: offset
        in: query
        required: false
        schema:
          title: Offset
          description: The number of objects to skip
          type: integer
        description: The number of objects to skip
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                title: Response Get Player Subscriptions
                type: array
                items:
                  $ref: '#/components/schemas/aghanim__s2s__player__subscription__schemas__SubscriptionRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/players/{player_id}/subscriptions/{subscription_id}:
    delete:
      tags:
      - Players' Subscriptions
      summary: Cancel Player Subscriptions
      description: Cancel a players's subscription.
      operationId: cancel_player_subscriptions
      security:
      - HTTPBearer: []
      parameters:
      - name: player_id
        in: path
        required: true
        schema:
          title: Player Id
          type: string
      - name: subscription_id
        in: path
        required: true
        schema:
          title: Subscription Id
          type: string
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/players/{player_id}/subscriptions/{subscription_id}/reactivate:
    post:
      tags:
      - Players' Subscriptions
      summary: Reactivate Player Subscription
      description: "Reactivate a player's subscription.\n\nDepending on the current subscription state:\n  - reactivates the existing subscription if it is not in a terminal state,\n  - creates a new subscription if the previous one has ended,\n  - or does nothing if the subscription is already active."
      operationId: reactivate_player_subscription
      security:
      - HTTPBearer: []
      parameters:
      - name: player_id
        in: path
        required: true
        schema:
          title: Player Id
          type: string
      - name: subscription_id
        in: path
        required: true
        schema:
          title: Subscription Id
          type: string
      responses:
        '200':
          description: Subscription reactivated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReactivatedSubscription'
        '201':
          description: New subscription created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReactivatedSubscription'
        '204':
          description: Subscription already active.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    SubscriptionStatus:
      type: string
      enum:
      - trial
      - active
      - grace
      - canceled
      - locked
      - ended
      - expired
      - paused
      - pending
      title: SubscriptionStatus
      description: An enumeration.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    ReactivatedSubscription:
      properties:
        id:
          type: string
          title: Id
          description: Resulting subscription ID.
        status:
          description: Resulting subscription status.
          $ref: '#/components/schemas/SubscriptionStatus'
      type: object
      required:
      - id
      - status
      title: ReactivatedSubscription
    Offer:
      properties:
        key:
          type: string
          title: Key
          description: Offer unique key.
        name:
          type: string
          title: Name
          description: Offer display name.
      type: object
      required:
      - key
      title: Offer
    Plan:
      properties:
        key:
          type: string
          title: Key
          description: Plan unique key within subscription.
        name:
          type: string
          title: Name
          description: Plan display name.
        offer:
          title: Offer
          description: Offer applied to the plan. Null if no offer is applied.
          $ref: '#/components/schemas/Offer'
      type: object
      required:
      - key
      - name
      title: Plan
    aghanim__s2s__player__subscription__schemas__SubscriptionRead:
      properties:
        sku:
          type: string
          title: SKU
          description: Subscription unique SKU.
        id:
          type: string
          title: Id
          description: Unique identifier for this subscription instance. Use this ID to track and manage the subscription throughout its lifecycle.
        name:
          type: string
          title: Name
          description: Subscription display name.
        order_id:
          type: string
          title: Order Id
          description: Order ID where the subscription was originally activated. Use this to correlate with order webhooks.
        status:
          description: Subscription status.
          $ref: '#/components/schemas/SubscriptionStatus'
        created_at:
          type: integer
          title: Created At
          description: Subscription creation date in Unix epoch time (seconds).
        updated_at:
          type: integer
          title: Updated At
          description: Subscription last update date in Unix epoch time (seconds). Null if the subscription has not been updated.
        effective_until:
          type: integer
          title: Effective Until
          description: The date until which the subscription is effective in Unix epoch time (seconds) representing when the subscription benefits should remain accessible.
        metadata:
          type: object
          title: Metadata
          description: Custom key-value pairs attached to the subscription. Null if no metadata is set.
        plan:
          title: Plan
          description: Selected plan for the subscription.
          $ref: '#/components/schemas/Plan'
      type: object
      required:
      - sku
      - id
      - name
      - order_id
      - status
      - created_at
      - plan
      title: SubscriptionRead
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer
      description: Refer to the [Authentication](https://docs.aghanim.com/api-reference/) section for instructions on obtaining an API key and use it as the `Bearer` token.