Aghanim Creators API

The Creators API from Aghanim — 4 operation(s) for creators.

OpenAPI Specification

aghanim-creators-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Aghanim Server-to-Server Achievements Creators 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: Creators
paths:
  /v1/creators/countries:
    get:
      tags:
      - Creators
      summary: Get Creator Countries
      operationId: get_creator_countries
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  type: string
                  pattern: ^[A-Z]{2}$
                type: array
                title: Response Get Creator Countries
      security:
      - HTTPBearer: []
  /v1/creators:
    get:
      tags:
      - Creators
      summary: Get Creators
      operationId: get_creators
      security:
      - HTTPBearer: []
      parameters:
      - name: q
        in: query
        required: false
        schema:
          title: Q
          type: string
      - name: platform
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/CreatorSocialPlatform'
      - name: terms_accepted
        in: query
        required: false
        schema:
          title: Terms Accepted
          type: boolean
      - name: creator_tier_group_id
        in: query
        required: false
        schema:
          title: Creator Tier Group Id
          type: string
      - name: country
        in: query
        required: false
        schema:
          title: Country
          pattern: ^[A-Z]{2}$
          type: string
      - 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:
                $ref: '#/components/schemas/PaginatedResponse_list_aghanim.creator.schemas.CreatorRead__'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - Creators
      summary: Create Creator
      operationId: create_creator
      security:
      - HTTPBearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: Create
              $ref: '#/components/schemas/CreatorCreate'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreatorRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/creators/{creator_id}:
    get:
      tags:
      - Creators
      summary: Get Creator
      operationId: get_creator
      security:
      - HTTPBearer: []
      parameters:
      - name: creator_id
        in: path
        required: true
        schema:
          title: Creator Id
          type: string
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreatorRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    put:
      tags:
      - Creators
      summary: Update Creator
      operationId: update_creator
      security:
      - HTTPBearer: []
      parameters:
      - name: creator_id
        in: path
        required: true
        schema:
          title: Creator Id
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: Update
              $ref: '#/components/schemas/CreatorUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreatorRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - Creators
      summary: Delete Creator
      operationId: delete_creator
      security:
      - HTTPBearer: []
      parameters:
      - name: creator_id
        in: path
        required: true
        schema:
          title: Creator Id
          type: string
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/creators/{creator_id}/social-accounts:
    get:
      tags:
      - Creators
      summary: Get Creator Social Accounts
      operationId: get_creator_social_accounts
      security:
      - HTTPBearer: []
      parameters:
      - name: creator_id
        in: path
        required: true
        schema:
          title: Creator Id
          type: string
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CreatorSocialAccountRead'
                title: Response Get Creator Social Accounts
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    CreatorUpdate:
      properties:
        name:
          type: string
          title: Name
        email:
          type: string
          title: Email
        avatar_url:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Avatar Url
        extra_terms_url:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Extra Terms Url
        extra_terms_text:
          type: string
          title: Extra Terms Text
        social_medias:
          items:
            $ref: '#/components/schemas/CreatorSocial'
          type: array
          title: Social Medias
        creator_tier_group_id:
          type: string
          title: Creator Tier Group Id
          description: New tier group to assign the creator to.
        revenue_share_override_enabled:
          type: boolean
          title: Revenue Share Override Enabled
          description: When true, the creator's revenue share is fixed at `revenue_share_override_bps` and ignores tier rates.
        revenue_share_override_bps:
          type: integer
          maximum: 10000.0
          minimum: 0.0
          title: Revenue Share Override Bps
          description: Override revenue share in basis points; required when enabling the override.
      type: object
      title: CreatorUpdate
    CreatorAnnotation:
      properties:
        note:
          type: string
          maxLength: 2000
          title: Note
        display_name:
          type: string
          maxLength: 120
          title: Display Name
      type: object
      title: CreatorAnnotation
    CreatorSocialPlatform:
      type: string
      enum:
      - tiktok
      - youtube
      - instagram
      - threads
      - x_twitter
      - facebook
      - reddit
      - twitch
      - other
      title: CreatorSocialPlatform
    SyncStatus:
      type: string
      enum:
      - pending
      - ok
      - error
      title: SyncStatus
    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
    SocialChannelRead:
      properties:
        followers:
          title: Followers
          type: integer
        total_views:
          title: Total Views
          type: integer
        total_content_count:
          title: Total Content Count
          type: integer
      type: object
      required:
      - followers
      - total_views
      - total_content_count
      title: SocialChannelRead
    UnitedStates:
      type: string
      enum:
      - US-AL
      - US-MS
      - US-NE
      - US-PR
      title: UnitedStates
      description: An enumeration.
    SocialContentItemRead:
      properties:
        url:
          type: string
          title: Url
        title:
          title: Title
          type: string
        thumbnail_url:
          title: Thumbnail Url
          type: string
        published_at:
          type: string
          format: date-time
          title: Published At
        views:
          title: Views
          type: integer
        likes:
          title: Likes
          type: integer
        comments:
          title: Comments
          type: integer
      type: object
      required:
      - url
      - title
      - thumbnail_url
      - published_at
      - views
      - likes
      - comments
      title: SocialContentItemRead
    SocialPerformanceMetricsRead:
      properties:
        views:
          title: Views
          type: integer
        likes:
          title: Likes
          type: integer
        comments:
          title: Comments
          type: integer
      type: object
      required:
      - views
      - likes
      - comments
      title: SocialPerformanceMetricsRead
    CreatorSocial:
      properties:
        url:
          type: string
          title: Url
        platform:
          $ref: '#/components/schemas/CreatorSocialPlatform'
      type: object
      required:
      - url
      title: CreatorSocial
    CreatorRead:
      properties:
        name:
          type: string
          title: Name
        email:
          type: string
          title: Email
        avatar_url:
          type: string
          title: Avatar Url
        extra_terms_url:
          type: string
          title: Extra Terms Url
        extra_terms_text:
          type: string
          title: Extra Terms Text
        social_medias:
          items:
            $ref: '#/components/schemas/CreatorSocial'
          type: array
          title: Social Medias
        id:
          type: string
          title: Id
        coupon_count:
          type: integer
          title: Coupon Count
          default: 0
        revenue:
          type: integer
          title: Revenue
          default: 0
        balance:
          type: integer
          title: Balance
          default: 0
        terms:
          $ref: '#/components/schemas/CreatorTermsRead'
        creator_tier_group_id:
          type: string
          title: Creator Tier Group Id
          description: Identifier of the tier group the creator is assigned to, if any.
        current_creator_tier_id:
          type: string
          title: Current Creator Tier Id
          description: Identifier of the tier the creator currently qualifies for based on lifetime gross revenue.
        revenue_share_override_enabled:
          type: boolean
          title: Revenue Share Override Enabled
          description: When true, revenue_share_override_bps takes precedence over the tier's revenue_share_bps.
          default: false
        revenue_share_override_bps:
          type: integer
          title: Revenue Share Override Bps
          description: Per-creator revenue share override in basis points (0-10000).
          default: 0
        lifetime_gross_usd_cents:
          type: integer
          title: Lifetime Gross USD Cents
          description: Cumulative gross revenue attributed to the creator, in USD cents.
          default: 0
        annotation:
          title: Annotation
          description: Operator-only annotation attached to the creator (notes, internal display name).
          $ref: '#/components/schemas/CreatorAnnotation'
      type: object
      required:
      - name
      - email
      - id
      title: CreatorRead
    PaginatedResponse_list_aghanim.creator.schemas.CreatorRead__:
      properties:
        data:
          items:
            $ref: '#/components/schemas/CreatorRead'
          type: array
          title: Data
        total:
          type: integer
          title: Total
        limit:
          type: integer
          title: Limit
        offset:
          type: integer
          title: Offset
        has_next:
          type: boolean
          description: Indicates if there are more items to fetch.
      type: object
      required:
      - data
      - total
      - limit
      - offset
      - has_next
      title: PaginatedResponse[list[aghanim.creator.schemas.CreatorRead]]
    CreatorTermsRead:
      properties:
        id:
          type: string
          title: Id
        accepted_at:
          type: integer
          title: Accepted At
        date_of_birth:
          type: string
          format: date
          title: Date Of Birth
        country:
          type: string
          pattern: ^[A-Z]{2}$
          title: Country
        state:
          $ref: '#/components/schemas/UnitedStates'
        age:
          type: integer
          title: Age
      type: object
      required:
      - id
      - accepted_at
      title: CreatorTermsRead
    SocialPerformanceSnapshotRead:
      properties:
        content_url:
          type: string
          title: Content Url
        title:
          title: Title
          type: string
        thumbnail_url:
          title: Thumbnail Url
          type: string
        published_at:
          type: string
          format: date-time
          title: Published At
        taken_at:
          type: string
          format: date-time
          title: Taken At
        window_days:
          type: integer
          title: Window Days
        metrics:
          $ref: '#/components/schemas/SocialPerformanceMetricsRead'
      type: object
      required:
      - content_url
      - title
      - thumbnail_url
      - published_at
      - taken_at
      - window_days
      - metrics
      title: SocialPerformanceSnapshotRead
    CreatorSocialAccountRead:
      properties:
        platform:
          $ref: '#/components/schemas/CreatorSocialPlatform'
        handle:
          type: string
          title: Handle
        sync_status:
          $ref: '#/components/schemas/SyncStatus'
        synced_at:
          title: Synced At
          type: number
        channel:
          $ref: '#/components/schemas/SocialChannelRead'
        content:
          items:
            $ref: '#/components/schemas/SocialContentItemRead'
          type: array
          title: Content
        performance:
          items:
            $ref: '#/components/schemas/SocialPerformanceSnapshotRead'
          type: array
          title: Performance
      type: object
      required:
      - platform
      - handle
      - sync_status
      - synced_at
      - channel
      - content
      - performance
      title: CreatorSocialAccountRead
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    CreatorCreate:
      properties:
        name:
          type: string
          title: Name
        email:
          type: string
          title: Email
        avatar_url:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Avatar Url
        extra_terms_url:
          type: string
          maxLength: 65536
          minLength: 1
          format: uri
          title: Extra Terms Url
        extra_terms_text:
          type: string
          title: Extra Terms Text
        social_medias:
          items:
            $ref: '#/components/schemas/CreatorSocial'
          type: array
          title: Social Medias
        creator_tier_group_id:
          type: string
          title: Creator Tier Group Id
          description: Tier group to assign the creator to on creation, if any.
        coupon_code:
          type: string
          maxLength: 20
          title: Coupon Code
          description: Override for the auto-generated promo code. If omitted, the code is derived from the creator's name.
      type: object
      required:
      - name
      - email
      title: CreatorCreate
  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.