DueBuddy API Subscription API

The api-subscription API from DueBuddy — 11 operation(s) for api-subscription.

Operations 12

GET /api/v1/api/plan/volume Plan Volume #
GET /api/v1/api/price Api Price #
GET /api/v1/api/scale Api Scale #
GET /api/v1/api/dashboard Api Dashboard #
GET /api/v1/api/keys Api Keys List #
POST /api/v1/api/keys Api Keys Create #
POST /api/v1/api/keys/{key_id}/revoke Api Keys Revoke #
POST /api/v1/api/key/rotate Api Key Rotate #
GET /api/v1/api/usage Api Usage #
GET /api/v1/api/countries Countries List #
GET /api/v1/api/country/{code} Country Info #
GET /api/v1/api/balance Api Balance #

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

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

duebuddy-work-api-subscription-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: DueBuddy API Subscription API
  version: 0.3.0
tags:
- name: api-subscription
paths:
  /api/v1/api/plan/volume:
    get:
      tags:
      - api-subscription
      summary: Plan Volume
      description: 'Цена тарифа «Разбор+» за объём: 300 сканов = 24,90 €, дальше по ступеням до 5 000.


        Ползунок живёт внутри карточки тарифа, а не отдельным блоком: это одна и та же покупка,

        и человек выбирает объём, а не «второй продукт».'
      operationId: plan_volume_api_v1_api_plan_volume_get
      parameters:
      - name: sheets
        in: query
        required: false
        schema:
          type: integer
          maximum: 5000
          minimum: 300
          description: Сканов в тарифе «Разбор+»
          default: 300
          title: Sheets
        description: Сканов в тарифе «Разбор+»
      - name: country
        in: query
        required: false
        schema:
          type: string
          maxLength: 2
          description: Страна клиента — определяет валюту
          default: ''
          title: Country
        description: Страна клиента — определяет валюту
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Plan Volume Api V1 Api Plan Volume Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/api/price:
    get:
      tags:
      - api-subscription
      summary: Api Price
      description: 'Цена для выбранного ползунком объёма.


        Доступно и без входа — это калькулятор на сайте. Валюта зависит от страны клиента.


        Себестоимость, комиссия провайдера и прибыль (cost_eur, lava_fee_eur, profit_eur) наружу

        не отдаём: это внутренние числа, а эндпоинт открыт всем. Правило владельца — себестоимость

        и маржу не показывать нигде (нашёл сам 17.10.2026, проверив живой ответ калькулятора).'
      operationId: api_price_api_v1_api_price_get
      parameters:
      - name: sheets
        in: query
        required: false
        schema:
          type: integer
          maximum: 2000000
          minimum: 115
          default: 115
          title: Sheets
      - name: country
        in: query
        required: false
        schema:
          type: string
          maxLength: 2
          description: Страна клиента — определяет валюту (DE/EUR, US/USD, RU/RUB)
          default: ''
          title: Country
        description: Страна клиента — определяет валюту (DE/EUR, US/USD, RU/RUB)
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Api Price Api V1 Api Price Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/api/scale:
    get:
      tags:
      - api-subscription
      summary: Api Scale
      description: 'Шкала: от какого объёма какая цена за лист.'
      operationId: api_scale_api_v1_api_scale_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
                title: Response Api Scale Api V1 Api Scale Get
  /api/v1/api/dashboard:
    get:
      tags:
      - api-subscription
      summary: Api Dashboard
      description: 'Что видит клиент: ключ, лимит, израсходовано, осталось, до какой даты.'
      operationId: api_dashboard_api_v1_api_dashboard_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
                title: Response Api Dashboard Api V1 Api Dashboard Get
  /api/v1/api/keys:
    get:
      tags:
      - api-subscription
      summary: Api Keys List
      description: 'Список ключей клиента: метка, начало ключа, когда создан, когда последний раз использован.


        Сами ключи не отдаём — в базе только хеш, показать ключ целиком можно один раз при выдаче.'
      operationId: api_keys_list_api_v1_api_keys_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
                title: Response Api Keys List Api V1 Api Keys Get
    post:
      tags:
      - api-subscription
      summary: Api Keys Create
      description: 'Добавить ещё один ключ (например, для второй системы). Лимит общий — он считается по подписке.


        Прежние ключи продолжают работать. Если нужно заменить все — есть отдельная кнопка перевыпуска.'
      operationId: api_keys_create_api_v1_api_keys_post
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: true
              type: object
              title: Body
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
                title: Response Api Keys Create Api V1 Api Keys Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/api/keys/{key_id}/revoke:
    post:
      tags:
      - api-subscription
      summary: Api Keys Revoke
      description: Отозвать один ключ. Остальные ключи и подписка не затрагиваются.
      operationId: api_keys_revoke_api_v1_api_keys__key_id__revoke_post
      parameters:
      - name: key_id
        in: path
        required: true
        schema:
          type: integer
          title: Key Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Api Keys Revoke Api V1 Api Keys  Key Id  Revoke Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/api/key/rotate:
    post:
      tags:
      - api-subscription
      summary: Api Key Rotate
      description: Перевыпустить ключ (старый сразу перестаёт работать). Новый показывается один раз.
      operationId: api_key_rotate_api_v1_api_key_rotate_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
                title: Response Api Key Rotate Api V1 Api Key Rotate Post
  /api/v1/api/usage:
    get:
      tags:
      - api-subscription
      summary: Api Usage
      description: 'Журнал расхода: когда и сколько листов списано (для отчётности клиента).'
      operationId: api_usage_api_v1_api_usage_get
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 500
          minimum: 1
          default: 100
          title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Api Usage Api V1 Api Usage Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/api/countries:
    get:
      tags:
      - api-subscription
      summary: Countries List
      description: 'Список стран: название на языке интерфейса, язык счетов, форматы документов и способы оплаты.'
      operationId: countries_list_api_v1_api_countries_get
      parameters:
      - name: lang
        in: query
        required: false
        schema:
          type: string
          default: en
          title: Lang
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Countries List Api V1 Api Countries Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/api/country/{code}:
    get:
      tags:
      - api-subscription
      summary: Country Info
      description: 'Данные одной страны: как открывать интерфейс, на каком языке приходят счета, что принимается.'
      operationId: country_info_api_v1_api_country__code__get
      parameters:
      - name: code
        in: path
        required: true
        schema:
          type: string
          title: Code
      - name: lang
        in: query
        required: false
        schema:
          type: string
          default: en
          title: Lang
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Country Info Api V1 Api Country  Code  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/api/balance:
    get:
      tags:
      - api-subscription
      summary: Api Balance
      description: 'Баланс API: сколько страниц осталось. Обработка запускается после пополнения баланса.'
      operationId: api_balance_api_v1_api_balance_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
                title: Response Api Balance Api V1 Api Balance Get
components:
  schemas:
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError