KDP Coloring Book Billing API
The Billing API from KDP Coloring Book — 6 operation(s) for billing.
The Billing API from KDP Coloring Book — 6 operation(s) for billing.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/kdpcoloringbook-com:kdpcoloringbook-com-billing-api"
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.
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: 3.2.0
info:
title: Book Generator Billing API
description: Backend API for the AI-powered coloring book generator.
version: 1.0.0
tags:
- name: Billing
paths:
/api/billing/me:
get:
summary: Billing Me
operationId: billing_me_api_billing_me_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/BillingBalanceResponse'
security:
- HTTPBearer: []
tags:
- Billing
/api/billing/transactions:
get:
summary: Billing Transactions
operationId: billing_transactions_api_billing_transactions_get
security:
- HTTPBearer: []
parameters:
- name: limit
in: query
required: false
schema:
type: integer
default: 50
title: Limit
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CreditTransactionListResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Billing
/api/billing/checkout/subscription:
post:
summary: Billing Checkout Subscription
operationId: billing_checkout_subscription_api_billing_checkout_subscription_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionCheckoutRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CheckoutSessionResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
tags:
- Billing
/api/billing/checkout/topup:
post:
summary: Billing Checkout Topup
operationId: billing_checkout_topup_api_billing_checkout_topup_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TopupCheckoutRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CheckoutSessionResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
tags:
- Billing
/api/billing/portal:
post:
summary: Billing Portal
operationId: billing_portal_api_billing_portal_post
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CheckoutSessionResponse'
security:
- HTTPBearer: []
tags:
- Billing
/api/billing/webhook:
post:
summary: Billing Webhook
description: Dodo Payments webhook endpoint (Standard Webhooks signature-verified).
operationId: billing_webhook_api_billing_webhook_post
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
tags:
- Billing
components:
schemas:
TopupCheckoutRequest:
properties:
pack_id:
type: string
title: Pack Id
description: Internal pack_id (topup_50 | topup_200 | topup_500 | single_book | three_books)
ga_client_id:
anyOf:
- type: string
- type: 'null'
title: Ga Client Id
description: Browser GA4 client id; only sent when analytics consent let GA load
ga_session_id:
anyOf:
- type: string
- type: 'null'
title: Ga Session Id
description: Browser GA4 session id
ga_origin_channel:
anyOf:
- type: string
- type: 'null'
title: Ga Origin Channel
description: Visitor's first-party origin channel
ga_origin_source:
anyOf:
- type: string
- type: 'null'
title: Ga Origin Source
description: Visitor's first-party origin source
ga_ad_user_data:
anyOf:
- type: string
- type: 'null'
title: Ga Ad User Data
description: 'Google ad-user-data consent the page declared to GA: granted | denied'
ga_consent_basis:
anyOf:
- type: string
- type: 'null'
title: Ga Consent Basis
description: 'Why GA ran on the page: accepted (banner) | default (no choice, outside the opt-in regions)'
revnu_anonymous_id:
anyOf:
- type: string
- type: 'null'
title: Revnu Anonymous Id
description: Revnu tag's opaque visitor id; only set once analytics consent let it run
revnu_consent_state:
anyOf:
- type: string
- type: 'null'
title: Revnu Consent State
description: 'Revnu tag consent at checkout: granted | denied | pending'
revnu_google_ad_user_data:
anyOf:
- type: string
- type: 'null'
title: Revnu Google Ad User Data
description: 'Google ad-user-data choice at checkout: granted | denied | unknown'
revnu_google_ad_personalization:
anyOf:
- type: string
- type: 'null'
title: Revnu Google Ad Personalization
description: 'Google ad-personalization choice at checkout: granted | denied | unknown'
openai_oppref:
anyOf:
- type: string
- type: 'null'
title: Openai Oppref
description: OpenAI Ads click reference (__oppref); only set when consent let the pixel run
openai_obref:
anyOf:
- type: string
- type: 'null'
title: Openai Obref
description: OpenAI Ads browser reference (__obref); only set when consent let the pixel run
meta_fbp:
anyOf:
- type: string
- type: 'null'
title: Meta Fbp
description: Meta pixel browser id (_fbp cookie); only set when consent let the pixel run
meta_fbc:
anyOf:
- type: string
- type: 'null'
title: Meta Fbc
description: Meta ad click id (_fbc cookie); only set when consent let the pixel run
meta_user_agent:
anyOf:
- type: string
- type: 'null'
title: Meta User Agent
description: Browser user agent, sent with the Meta cookies (required by its Conversions API)
tiktok_ttclid:
anyOf:
- type: string
- type: 'null'
title: Tiktok Ttclid
description: TikTok ad click id (ttclid); only set when consent let the pixel run
tiktok_ttp:
anyOf:
- type: string
- type: 'null'
title: Tiktok Ttp
description: TikTok pixel browser id (_ttp cookie); only set when consent let the pixel run
tiktok_user_agent:
anyOf:
- type: string
- type: 'null'
title: Tiktok User Agent
description: Browser user agent, sent with the TikTok identifiers (a matching signal of its Events API)
type: object
required:
- pack_id
title: TopupCheckoutRequest
SubscriptionCheckoutRequest:
properties:
plan_id:
type: string
title: Plan Id
description: Internal plan_id (weekly | author | publisher; hobbyist is legacy)
ga_client_id:
anyOf:
- type: string
- type: 'null'
title: Ga Client Id
description: Browser GA4 client id; only sent when analytics consent let GA load
ga_session_id:
anyOf:
- type: string
- type: 'null'
title: Ga Session Id
description: Browser GA4 session id
ga_origin_channel:
anyOf:
- type: string
- type: 'null'
title: Ga Origin Channel
description: Visitor's first-party origin channel
ga_origin_source:
anyOf:
- type: string
- type: 'null'
title: Ga Origin Source
description: Visitor's first-party origin source
ga_ad_user_data:
anyOf:
- type: string
- type: 'null'
title: Ga Ad User Data
description: 'Google ad-user-data consent the page declared to GA: granted | denied'
ga_consent_basis:
anyOf:
- type: string
- type: 'null'
title: Ga Consent Basis
description: 'Why GA ran on the page: accepted (banner) | default (no choice, outside the opt-in regions)'
revnu_anonymous_id:
anyOf:
- type: string
- type: 'null'
title: Revnu Anonymous Id
description: Revnu tag's opaque visitor id; only set once analytics consent let it run
revnu_consent_state:
anyOf:
- type: string
- type: 'null'
title: Revnu Consent State
description: 'Revnu tag consent at checkout: granted | denied | pending'
revnu_google_ad_user_data:
anyOf:
- type: string
- type: 'null'
title: Revnu Google Ad User Data
description: 'Google ad-user-data choice at checkout: granted | denied | unknown'
revnu_google_ad_personalization:
anyOf:
- type: string
- type: 'null'
title: Revnu Google Ad Personalization
description: 'Google ad-personalization choice at checkout: granted | denied | unknown'
openai_oppref:
anyOf:
- type: string
- type: 'null'
title: Openai Oppref
description: OpenAI Ads click reference (__oppref); only set when consent let the pixel run
openai_obref:
anyOf:
- type: string
- type: 'null'
title: Openai Obref
description: OpenAI Ads browser reference (__obref); only set when consent let the pixel run
meta_fbp:
anyOf:
- type: string
- type: 'null'
title: Meta Fbp
description: Meta pixel browser id (_fbp cookie); only set when consent let the pixel run
meta_fbc:
anyOf:
- type: string
- type: 'null'
title: Meta Fbc
description: Meta ad click id (_fbc cookie); only set when consent let the pixel run
meta_user_agent:
anyOf:
- type: string
- type: 'null'
title: Meta User Agent
description: Browser user agent, sent with the Meta cookies (required by its Conversions API)
tiktok_ttclid:
anyOf:
- type: string
- type: 'null'
title: Tiktok Ttclid
description: TikTok ad click id (ttclid); only set when consent let the pixel run
tiktok_ttp:
anyOf:
- type: string
- type: 'null'
title: Tiktok Ttp
description: TikTok pixel browser id (_ttp cookie); only set when consent let the pixel run
tiktok_user_agent:
anyOf:
- type: string
- type: 'null'
title: Tiktok User Agent
description: Browser user agent, sent with the TikTok identifiers (a matching signal of its Events API)
type: object
required:
- plan_id
title: SubscriptionCheckoutRequest
CreditTransactionListResponse:
properties:
transactions:
items:
$ref: '#/components/schemas/CreditTransactionResponse'
type: array
title: Transactions
type: object
required:
- transactions
title: CreditTransactionListResponse
CheckoutSessionResponse:
properties:
url:
type: string
title: Url
type: object
required:
- url
title: CheckoutSessionResponse
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
BillingBalanceResponse:
properties:
plan_credits:
type: integer
title: Plan Credits
topup_credits:
type: integer
title: Topup Credits
total_credits:
type: integer
title: Total Credits
plan_id:
anyOf:
- type: string
- type: 'null'
title: Plan Id
plan_name:
anyOf:
- type: string
- type: 'null'
title: Plan Name
plan_interval:
anyOf:
- type: string
- type: 'null'
title: Plan Interval
subscription_status:
anyOf:
- type: string
- type: 'null'
title: Subscription Status
current_period_end:
anyOf:
- type: string
- type: 'null'
title: Current Period End
cancel_at_period_end:
type: boolean
title: Cancel At Period End
default: false
is_free:
type: boolean
title: Is Free
default: true
can_buy_topups:
type: boolean
title: Can Buy Topups
default: false
available_plan_ids:
items:
type: string
type: array
title: Available Plan Ids
available_pack_ids:
items:
type: string
type: array
title: Available Pack Ids
free_max_pages:
type: integer
title: Free Max Pages
default: 3
type: object
required:
- plan_credits
- topup_credits
- total_credits
title: BillingBalanceResponse
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
CreditTransactionResponse:
properties:
tx_id:
type: string
title: Tx Id
amount:
type: integer
title: Amount
kind:
type: string
title: Kind
created_at:
type: string
title: Created At
metadata:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Metadata
type: object
required:
- tx_id
- amount
- kind
- created_at
title: CreditTransactionResponse
securitySchemes:
HTTPBearer:
type: http
scheme: bearer