KDP Coloring Book Me API
The Me API from KDP Coloring Book — 3 operation(s) for me.
The Me API from KDP Coloring Book — 3 operation(s) for me.
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-me-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 Me API
description: Backend API for the AI-powered coloring book generator.
version: 1.0.0
tags:
- name: Me
paths:
/api/me/email-preferences:
get:
summary: Get Email Preferences
description: Return the authenticated user's optional marketing consent state.
operationId: get_email_preferences_api_me_email_preferences_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/EmailPreferencesResponse'
security:
- HTTPBearer: []
tags:
- Me
put:
summary: Update Email Preferences
description: Update marketing consent and language; service notices remain unaffected.
operationId: update_email_preferences_api_me_email_preferences_put
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmailPreferencesUpdate'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/EmailPreferencesResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
tags:
- Me
/api/me/analytics-consent:
put:
summary: Update Analytics Consent
description: 'Record the user''s cookie-banner decision on their account.
The Dodo webhook reports a purchase to GA only when this says "accepted", so a
GA client id sent by the browser never counts as consent on its own.'
operationId: update_analytics_consent_api_me_analytics_consent_put
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AnalyticsConsentUpdate'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/AnalyticsConsentResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
tags:
- Me
/api/me/brand:
get:
summary: Get Brand
description: 'The caller''s brand / series signature (used on covers + the copyright page).
Stored inside the per-user cover preset; surfaced standalone so it can be read
and edited from settings or an inline prompt, independent of the cover flow.'
operationId: get_brand_api_me_brand_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/BrandResponse'
security:
- HTTPBearer: []
tags:
- Me
put:
summary: Update Brand
description: 'Set the caller''s brand without clobbering the rest of their cover preset.
Reads the existing preset and re-upserts it with only ``brand_signature``
changed (the cover style fields are preserved).'
operationId: update_brand_api_me_brand_put
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BrandUpdateRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/BrandResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
tags:
- Me
components:
schemas:
EmailPreferencesResponse:
properties:
marketing_opt_in:
type: boolean
title: Marketing Opt In
marketing_locale:
type: string
enum:
- en
- es
title: Marketing Locale
marketing_opt_in_at:
anyOf:
- type: string
- type: 'null'
title: Marketing Opt In At
unsubscribed_at:
anyOf:
- type: string
- type: 'null'
title: Unsubscribed At
suppressed_at:
anyOf:
- type: string
- type: 'null'
title: Suppressed At
type: object
required:
- marketing_opt_in
- marketing_locale
title: EmailPreferencesResponse
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
BrandResponse:
properties:
brand_signature:
anyOf:
- type: string
- type: 'null'
title: Brand Signature
type: object
title: BrandResponse
description: 'The caller''s brand / series signature line. ``null`` when unset.
Stored inside the per-user cover preset (single source of truth, also used on
covers), but exposed here as a standalone account setting so it can be read /
edited outside the cover flow (settings page, copyright-page gate).'
AnalyticsConsentUpdate:
properties:
decision:
type: string
enum:
- accepted
- rejected
title: Decision
type: object
required:
- decision
title: AnalyticsConsentUpdate
BrandUpdateRequest:
properties:
brand_signature:
anyOf:
- type: string
maxLength: 60
- type: 'null'
title: Brand Signature
type: object
title: BrandUpdateRequest
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
EmailPreferencesUpdate:
properties:
marketing_opt_in:
type: boolean
title: Marketing Opt In
marketing_locale:
type: string
enum:
- en
- es
title: Marketing Locale
default: en
type: object
required:
- marketing_opt_in
title: EmailPreferencesUpdate
AnalyticsConsentResponse:
properties:
analytics_consent:
anyOf:
- type: string
enum:
- accepted
- rejected
- type: 'null'
title: Analytics Consent
analytics_consent_at:
anyOf:
- type: string
- type: 'null'
title: Analytics Consent At
type: object
title: AnalyticsConsentResponse
securitySchemes:
HTTPBearer:
type: http
scheme: bearer