Ludo.ai Account API

The Account API from Ludo.ai — 3 operation(s) for account.

Operations 3

GET /assets/account Get account #
DELETE /assets/cli-key Revoke current cli key #
POST /assets/feedback Submit api feedback #

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/ludo-ai-account-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

ludo-ai-account-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Ludo Ai Account API
  version: 0.9.10
  x-logo:
    url: /static/logo-small.png
    altText: Logo
  x-refined-note:
  - x-model-lineup differs across the merged source definitions and was not carried
  description: 'Operations tagged Account across 2 of this provider''s published API definitions: ludo-ai-rest-api-openapi.yml, ludo-ai-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: /api
tags:
- name: Account
paths:
  /assets/account:
    get:
      description: Show your account's credit balance, plan and auto top-up settings. `credits.available` is what generations can spend right now (plan_credits + extra - used); `resets_at` is when the plan's monthly credits refill (unix seconds). When `team_pool` is true the balance is your team's shared pool, and `auto_topup` is null because the team owner manages it. Check this before an expensive generation instead of waiting for a 402. Buying credits and changing auto top-up happen in the web app at `billing_url`. This is a free read-only lookup (no credits, no generation). Requires an API key (user scope).
      tags:
      - Account
      operationId: getAccount
      security:
      - ApiKey: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountInfo'
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: "curl -X GET \"https://api.ludo.ai/api/assets/account\" \\\n  -H \"Authorization: ApiKey YOUR_API_KEY\""
      - lang: JavaScript
        label: JavaScript
        source: "const response = await fetch(\"https://api.ludo.ai/api/assets/account\", {\n  headers: {\n    \"Authorization\": \"ApiKey YOUR_API_KEY\"\n  }\n});\n\nconst data = await response.json();\nconsole.log(data);"
      - lang: Python
        label: Python
        source: "import requests\n\nresponse = requests.get(\n    \"https://api.ludo.ai/api/assets/account\",\n    headers={\"Authorization\": \"ApiKey YOUR_API_KEY\"}\n)\n\nprint(response.json())"
      summary: Get account
      x-summary-source: derived
    servers:
    - url: /api
  /assets/cli-key:
    delete:
      description: Revoke the key making this call, when it was created by a browser login. Other API keys are managed in the web app. Free. Requires an API key (user scope).
      tags:
      - Account
      operationId: revokeCurrentCliKey
      x-mcp-exclude: true
      security:
      - ApiKey: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OkResponse'
        '400':
          description: Not a browser-login key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: "curl -X DELETE \"https://api.ludo.ai/api/assets/cli-key\" \\\n  -H \"Authorization: ApiKey YOUR_API_KEY\""
      - lang: JavaScript
        label: JavaScript
        source: "const response = await fetch(\"https://api.ludo.ai/api/assets/cli-key\", {\n  headers: {\n    \"Authorization\": \"ApiKey YOUR_API_KEY\"\n  }\n});\n\nconst data = await response.json();\nconsole.log(data);"
      - lang: Python
        label: Python
        source: "import requests\n\nresponse = requests.delete(\n    \"https://api.ludo.ai/api/assets/cli-key\",\n    headers={\"Authorization\": \"ApiKey YOUR_API_KEY\"}\n)\n\nprint(response.json())"
      summary: Revoke current cli key
      x-summary-source: derived
    servers:
    - url: /api
  /assets/feedback:
    post:
      description: 'Report a problem with the Ludo API itself to the Ludo team. Use it ONLY for API bugs (an error, a failed or stuck job, a crash, a response that does not match this documentation) and API limitations (a parameter, operation or format you needed that the API does not support, and that you could not work around). NEVER use it to report model limitations or the quality of a result: an image, sprite, animation, 3D model, video or sound that looks wrong, ignores part of the prompt, has artifacts or is not what you wanted is not an API bug. Do not report those; retry with a different prompt, model or settings instead. Describe what you were trying to do and what went wrong, and name the operation (and job_id, when there is one) it relates to. Do not include personal data, secrets or file contents. Send one report per issue, and if you are an agent, tell the user what you sent. Free (no credits). Requires an API key (user scope).'
      tags:
      - Account
      operationId: submitApiFeedback
      security:
      - ApiKey: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiFeedbackPayload'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiFeedbackReceipt'
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: "curl -X POST \"https://api.ludo.ai/api/assets/feedback\" \\\n  -H \"Authorization: ApiKey YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"category\":\"limitation\",\"message\":\"string\"}'"
      - lang: JavaScript
        label: JavaScript
        source: "const response = await fetch(\"https://api.ludo.ai/api/assets/feedback\", {\n  method: \"POST\",\n  headers: {\n    \"Authorization\": \"ApiKey YOUR_API_KEY\",\n    \"Content-Type\": \"application/json\"\n  },\n  body: JSON.stringify({\n    \"category\": \"limitation\",\n    \"message\": \"string\"\n  })\n});\n\nconst data = await response.json();\nconsole.log(data);"
      - lang: Python
        label: Python
        source: "import requests\n\nresponse = requests.post(\n    \"https://api.ludo.ai/api/assets/feedback\",\n    headers={\n        \"Authorization\": \"ApiKey YOUR_API_KEY\",\n        \"Content-Type\": \"application/json\"\n    },\n    json={\n      \"category\": \"limitation\",\n      \"message\": \"string\"\n    }\n)\n\nprint(response.json())"
      summary: Submit api feedback
      x-summary-source: derived
    servers:
    - url: /api
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        message:
          type: string
        metadata:
          type: string
        error_payload:
          type: string
        intent:
          type: object
          description: Stripe intent details sent with 3D Secure (406) errors
          properties:
            id:
              type: string
            type:
              type: string
              enum:
              - payment
              - setup
              example: payment
            client_secret:
              type: string
    ApiFeedbackPayload:
      type: object
      required:
      - category
      - message
      properties:
        category:
          type: string
          enum:
          - limitation
          - bug
          - feature_request
          - praise
          - other
          description: 'bug - the API errored, a job failed or got stuck, or a response did not match the documentation; limitation - the API does not support a parameter, operation or format you needed; feature_request - a new API capability you would like; praise - something that worked well; other - any other API issue. Generated content that looks wrong or does not match the prompt is a model limitation, not a bug: do not report it.'
          example: limitation
        message:
          type: string
          minLength: 1
          maxLength: 4000
          description: What you were trying to do, what happened, and what would have helped.
        operation:
          type: string
          maxLength: 100
          description: The operation the feedback is about, e.g. animateSprite.
        job_id:
          type: string
          maxLength: 64
          description: The job the feedback is about, when there is one.
        agent:
          type: string
          maxLength: 100
          description: The agent or app sending it, e.g. Claude Code.
    ApiFeedbackReceipt:
      type: object
      properties:
        ok:
          type: boolean
        id:
          type: string
    OkResponse:
      type: object
      properties:
        ok:
          type: boolean
    AccountInfo:
      type: object
      properties:
        credits:
          type: object
          properties:
            available:
              type: number
              format: float
              description: Credits generations can spend right now.
            plan_credits:
              type: number
              format: float
              description: The plan's credits for the current cycle.
            used:
              type: number
              format: float
              description: Plan credits used this cycle.
            extra:
              type: number
              format: float
              description: Credits from top-ups and grants, on top of the plan.
            resets_at:
              type: integer
              format: int64
              description: When the plan credits refill (unix seconds).
            team_pool:
              type: boolean
              description: The balance is a team's shared pool.
            paused:
              type: boolean
            grace_until:
              type: integer
              format: int64
              description: Set when the subscription ended; remaining credits stay spendable until then (unix seconds).
        plan:
          type: object
          properties:
            name:
              type: string
            api_access:
              type: boolean
        auto_topup:
          type: object
          description: Null for team members; the team owner manages auto top-up.
          properties:
            enabled:
              type: boolean
            threshold:
              type: number
              format: float
              description: An automatic top-up is bought when available credits drop below this.
            credits:
              type: integer
              description: Credits bought on each automatic top-up.
        billing_url:
          type: string
          description: Web page to buy credits, change plan or change auto top-up.
          example: <url>
  securitySchemes:
    ApiKey:
      type: apiKey
      name: Authorization
      in: header
      description: 'For accessing the API a valid API Key token must be passed in all the queries in

        the ''Authorization'' header.

        The following syntax must be used in the ''Authorization'' header: ApiKey xxxxxx.yyyyyyy.zzzzzz

        '
x-refined-from:
- ludo-ai-rest-api-openapi.yml
- ludo-ai-openapi.json