Saltar al contenido principal

API reference

Flipbooker API v1.0.0

70 REST endpoints for flipbooks, subscribers, analytics, tracked links, branding and webhooks. Every request is authenticated with a workspace API key and scoped to that workspace.

Base URL
https://app.flipbooker.com/api/v1
Authentication
Authorization: Bearer wsk_live_…

Books

GET/books

List flipbooks

Returns the workspace flipbooks, newest first. The collection is cursor-paginated.

books:read

Parameters

ParameterTypeDetails
filter[status]string query
publishdraftschedule
filter[name]string query
max 255 chars
sortstring query
name-namecreated_at-created_atupdated_at-updated_atstatus-status
cursorstring query—
limitinteger query
1–200

Response 200

FieldTypeDetails
datareqobject[] —
data.batch_idstring —
data.billing_expires_atstring

Billing's, read-only. Set when paid access ends; grants a grace window and then an expired notice in the viewer rather than unpublishing. Exposed so a client can tell why a book is about to stop being readable, and which of the two it can change.

data.created_atstring
format: date-time
data.descriptionstring —
data.embed_codestring —
data.expires_atstring

The customer's own expiry: settable here, and a hard unpublish when it passes.

data.external_catalog_idinteger —
data.namereqstring —
data.page_countreqinteger —
data.page_images_statusreqstring
readyprocessingfailed
data.preview_urlstring —
Example request
curl https://app.flipbooker.com/api/v1/books \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

422 Validation failed
POST/books

Upload a PDF and create a flipbook

Accepts a multipart PDF upload and queues conversion. The response contains a batch ID to poll.

books:write

Request body multipart/form-data

FieldTypeDetails
auto_links_enabledboolean —
filesreqstring[] —
original_filenamestring
max 255 chars
statusstring
draftpublish
Example request
curl -X POST https://app.flipbooker.com/api/v1/books \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY" \
  -F "files[][email protected]"

Error responses

422 Validation failed
POST/books/bulk-settings/batches

Bulk update flipbook settings

Creates a durable asynchronous batch that applies settings to multiple flipbooks.

books:write

Request body application/json

FieldTypeDetails
booksreqobject[] —
books.idreqstring —
books.settings_revisionreqstring
max 64 chars
settingsreqobject —
settings.allow_fullscreenboolean —
settings.animation_typestring
flipscroll_viewslidefadezoomflick-throughcut
settings.backgroundstring
max 2048 chars
settings.copyright_enabledboolean —
settings.descriptionstring
max 50000 chars
settings.downloadable_pdfstring
falsefullsinglespread
settings.eod_enabledboolean —
settings.eod_listsarray —
settings.flip_soundboolean —
settings.image_displaystring
repeatcenter/cover
settings.made_with_badge_enabledboolean —
settings.magic_link_error_messagestring
max 1000 chars
settings.magic_link_messagestring
max 1000 chars
settings.mobile_animation_typestring
flipscroll_viewslidefadezoomflick-throughcut
settings.open_fullscreen_by_defaultboolean —
settings.pdf_passwordstring
max 255 chars
settings.pdf_privacy_statusstring
max 50 chars
settings.share_social_mediaboolean —
settings.titlestring
max 255 chars
settings.watermarkstring
max 2048 chars

Response 202

FieldTypeDetails
datareqobject —
metareqstring —
Example request
curl -X POST https://app.flipbooker.com/api/v1/books/bulk-settings/batches \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"books":"<object[]>","settings":"<object>"}'

Error responses

409 422 Validation failed
GET/books/bulk-settings/batches/{batch}

Retrieve a bulk settings batch

Returns authoritative progress and per-flipbook outcomes for a bulk settings update.

books:read

Parameters

ParameterTypeDetails
batchreqstring path—

Response 200

FieldTypeDetails
datareqobject —
data.cancelled_atreqstring —
data.created_atreqstring —
data.finished_atreqstring —
data.idreqstring —
data.itemsreqstring[] —
data.progressreqobject —
data.progress.object[] —
data.progress.finishedreqstring —
data.progress.percentreqinteger —
data.progress.totalreqinteger —
data.retry_of_batch_idstring —
Example request
curl https://app.flipbooker.com/api/v1/books/bulk-settings/batches/<batch> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found
DELETE/books/bulk-settings/batches/{batch}

Cancel a bulk settings batch

Cancels work that has not started without rolling back settings already applied.

books:write

Parameters

ParameterTypeDetails
batchreqstring path—

Response 200

FieldTypeDetails
datareqobject —
data.cancelled_atreqstring —
data.created_atreqstring —
data.finished_atreqstring —
data.idreqstring —
data.itemsreqstring[] —
data.progressreqobject —
data.progress.object[] —
data.progress.finishedreqstring —
data.progress.percentreqinteger —
data.progress.totalreqinteger —
data.retry_of_batch_idstring —
Example request
curl -X DELETE https://app.flipbooker.com/api/v1/books/bulk-settings/batches/<batch> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found409
POST/books/bulk-settings/batches/{batch}/retry

Retry a bulk settings batch

Creates a new batch that retries the failed items from a completed bulk settings update.

books:write

Parameters

ParameterTypeDetails
batchreqstring path—

Response 202

FieldTypeDetails
datareqobject —
data.cancelled_atreqstring —
data.created_atreqstring —
data.finished_atreqstring —
data.idreqstring —
data.itemsreqstring[] —
data.progressreqobject —
data.progress.object[] —
data.progress.finishedreqstring —
data.progress.percentreqinteger —
data.progress.totalreqinteger —
data.retry_of_batch_idstring —
Example request
curl -X POST https://app.flipbooker.com/api/v1/books/bulk-settings/batches/<batch>/retry \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found409
POST/books/bulk-settings/summary

Summarise flipbook settings

Returns the common and differing settings, plus the current revision, for each selected flipbook.

books:read

Request body application/json

FieldTypeDetails
book_idsreqstring[] —

Response 200

FieldTypeDetails
datareqobject —
data.booksreqstring[] —
data.settingsreqstring —
metareqstring —
Example request
curl -X POST https://app.flipbooker.com/api/v1/books/bulk-settings/summary \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"book_ids":"<string[]>"}'

Error responses

404 Not found422 Validation failed
POST/books/create-from-template

Create a flipbook from a template

Creates a flipbook using a catalog template.

books:write

Request body application/json

FieldTypeDetails
contentreqobject[] —
content.authorstring
max 255 chars
content.categoriesarray —
content.contentstring
max 50000 chars
content.currencystring
max 10 chars
content.datestring
max 100 chars
content.descriptionstring
max 50000 chars
content.excerptstring
max 5000 chars
content.galleryarray —
content.idreqstring —
content.imagestring
max 2048 chars format: uri
content.pricestring —
content.regular_pricestring —
content.sale_pricestring —
content.short_descriptionstring
max 5000 chars
content.skustring
max 255 chars
content.stock_statusstring
max 100 chars
content.titlereqstring
max 500 chars
content.typestring
max 50 chars
content.urlstring
max 2048 chars format: uri
metadataobject —
metadata.currencystring
max 10 chars
metadata.currency_symbolstring
max 20 chars
metadata.site_namestring
max 255 chars
metadata.site_urlstring
max 2048 chars format: uri
sourcereqstring
wordpresswoocommerce
source_typereqstring
postspagesproducts
template_idinteger
min 1

Response 201

FieldTypeDetails
datareqobject —
data.bookreqobject —
data.book.batch_idstring —
data.book.billing_expires_atstring

Billing's, read-only. Set when paid access ends; grants a grace window and then an expired notice in the viewer rather than unpublishing. Exposed so a client can tell why a book is about to stop being readable, and which of the two it can change.

data.book.created_atstring
format: date-time
data.book.descriptionstring —
data.book.embed_codestring —
data.book.expires_atstring

The customer's own expiry: settable here, and a hard unpublish when it passes.

data.book.external_catalog_idinteger —
data.book.namereqstring —
data.book.page_countreqinteger —
data.book.page_images_statusreqstring
readyprocessingfailed
Example request
curl -X POST https://app.flipbooker.com/api/v1/books/create-from-template \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"content":"<object[]>","source":"wordpress","source_type":"posts"}'

Error responses

422 Validation failed
POST/books/konva

Create an editor flipbook

Creates a flipbook from editor content.

books:write

Request body application/json

FieldTypeDetails
canvasreqobject —
canvas.heightreqinteger
1–10000
canvas.objectsreqstring[][] —
canvas.orientationreqstring
portraitlandscape
canvas.widthreqinteger
1–10000
page_imagesreqstring[] —
settingsobject —
settings.allow_fullscreenboolean —
settings.animation_typestring
max 255 chars
settings.auto_links_enabledboolean —
settings.backgroundstring
max 2048 chars
settings.copyright_enabledboolean

Not accepted: these books are built from page images, so there is no source PDF to offer and downloadable_pdf is forced to false when the record is created. Validating it here advertised a setting the endpoint has never honoured. Removed from the contract rather than made `prohibited`, because a caller sending a meaningless field should not start failing — it is simply not part of the request.

settings.domains_enabledboolean —
settings.eod_enabledboolean —
settings.flip_soundboolean —
settings.image_displaystring
max 255 chars
settings.mobile_animation_typestring
max 255 chars
settings.open_fullscreen_by_defaultboolean —
settings.pdf_passwordstring
max 255 chars
settings.pdf_privacy_statusstring
max 50 chars
settings.share_social_mediaboolean —
statusstring
draftpublish
thumbnailstring
max 22020096 chars
titlereqstring
max 255 chars
Example request
curl -X POST https://app.flipbooker.com/api/v1/books/konva \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"canvas":"<object>","page_images":"<string[]>","title":"<string>"}'

Error responses

422 Validation failed
GET/books/uploads/status/active

List active uploads

Returns upload batches that are still converting.

books:read
Example request
curl https://app.flipbooker.com/api/v1/books/uploads/status/active \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"
GET/books/uploads/{batchId}/status

Get upload status

Returns conversion progress for one upload batch.

books:read

Parameters

ParameterTypeDetails
batchIdreqstring path—
Example request
curl https://app.flipbooker.com/api/v1/books/uploads/<batchId>/status \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"
GET/books/{book}

Retrieve a flipbook

Fetches a single flipbook by its numeric ID.

books:read

Parameters

ParameterTypeDetails
bookreqstring path

The book random id

Response 200

FieldTypeDetails
datareqobject —
data.batch_idstring —
data.billing_expires_atstring

Billing's, read-only. Set when paid access ends; grants a grace window and then an expired notice in the viewer rather than unpublishing. Exposed so a client can tell why a book is about to stop being readable, and which of the two it can change.

data.created_atstring
format: date-time
data.descriptionstring —
data.embed_codestring —
data.expires_atstring

The customer's own expiry: settable here, and a hard unpublish when it passes.

data.external_catalog_idinteger —
data.namereqstring —
data.page_countreqinteger —
data.page_images_statusreqstring
readyprocessingfailed
data.preview_urlstring —
Example request
curl https://app.flipbooker.com/api/v1/books/<book> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found
PUT/books/{book}

Update flipbook settings

Updates the supplied flipbook metadata and viewer settings. The eod_enabled and domains_enabled flags this flipbook reports are read-only and ignored here: each is derived from an access list, so adding the first entry turns it on and removing the last turns it off. Change the lists through /v1/subscribers for reader access and /v1/books/{book}/embed-domains for embedding.

books:write

Parameters

ParameterTypeDetails
bookreqstring path

The book random id

Request body application/json

FieldTypeDetails
accessibility_enabledboolean —
allow_fullscreenboolean —
animation_typestring
flipscroll_viewslidefadezoomflick-throughcut
auto_links_enabledboolean —
backgroundstring
max 2048 chars
copyright_enabledboolean —
descriptionstring
max 50000 chars
domain_listsarray —
downloadable_pdfboolean —
eod_listsarray —
expires_atstring
format: date-time
flip_soundboolean —
image_displaystring
repeatcenter/cover
made_with_badge_enabledboolean —
magic_link_error_messagestring
max 1000 chars
magic_link_messagestring
max 1000 chars
mobile_animation_typestring
flipscroll_viewslidefadezoomflick-throughcut
open_fullscreen_by_defaultboolean —
pdf_passwordstring
max 255 chars
pdf_privacy_statusstring
max 50 chars
published_datestring
format: date-time
share_social_mediaboolean —
slugstring
max 255 chars
statusreqstring
draftschedulepublish
titlestring
max 255 chars
watermarkstring
max 2048 chars

Response 200

FieldTypeDetails
datareqobject —
data.batch_idstring —
data.billing_expires_atstring

Billing's, read-only. Set when paid access ends; grants a grace window and then an expired notice in the viewer rather than unpublishing. Exposed so a client can tell why a book is about to stop being readable, and which of the two it can change.

data.created_atstring
format: date-time
data.descriptionstring —
data.embed_codestring —
data.expires_atstring

The customer's own expiry: settable here, and a hard unpublish when it passes.

data.external_catalog_idinteger —
data.namereqstring —
data.page_countreqinteger —
data.page_images_statusreqstring
readyprocessingfailed
data.preview_urlstring —
Example request
curl -X PUT https://app.flipbooker.com/api/v1/books/<book> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status":"draft"}'

Error responses

400 Bad request404 Not found422 Validation failed
DELETE/books/{book}

Delete a flipbook

Permanently deletes a flipbook and its generated assets.

books:write

Parameters

ParameterTypeDetails
bookreqstring path

The book random id

Response 200

FieldTypeDetails
datareqobject —
data.messagereqstring —
metareqstring —
Example request
curl -X DELETE https://app.flipbooker.com/api/v1/books/<book> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found

Batches

GET/batches/{batchId}

Retrieve a batch

Returns the status of an upload batch and the books it produced.

books:read

Parameters

ParameterTypeDetails
batchIdreqstring path—

Response 200

FieldTypeDetails
datareqobject —
data.booksreqobject[] —
data.books.batch_idstring —
data.books.billing_expires_atstring

Billing's, read-only. Set when paid access ends; grants a grace window and then an expired notice in the viewer rather than unpublishing. Exposed so a client can tell why a book is about to stop being readable, and which of the two it can change.

data.books.created_atstring
format: date-time
data.books.descriptionstring —
data.books.embed_codestring —
data.books.expires_atstring

The customer's own expiry: settable here, and a hard unpublish when it passes.

data.books.external_catalog_idinteger —
data.books.namereqstring —
data.books.page_countreqinteger —
data.books.page_images_statusreqstring
readyprocessingfailed
Example request
curl https://app.flipbooker.com/api/v1/batches/<batchId> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found
DELETE/batches/{batchId}

Cancel an upload batch

Cancels an upload batch that is still in flight.

books:write

Parameters

ParameterTypeDetails
batchIdreqstring path—
Example request
curl -X DELETE https://app.flipbooker.com/api/v1/batches/<batchId> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Subscribers

GET/subscribers

List subscribers

Returns subscribers captured across the workspace flipbooks.

subscribers:read

Parameters

ParameterTypeDetails
pagination[per_page]integer query
1–200
pagination[rowsPerPage]integer query
1–200
pagination[page]integer query
min 1
filterstring query—
typestring query
emaildomain

Response 200

FieldTypeDetails
datareqobject[] —
metareqstring —
Example request
curl https://app.flipbooker.com/api/v1/subscribers \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

422 Validation failed
POST/subscribers

Create a subscriber

Grants a reader access to a gated flipbook.

subscribers:write

Request body application/json

FieldTypeDetails
book_idreqstring

`book_id` carries the flipbook's public handle — the same `random_id` BookResource publishes. The auto-increment key is not an identifier this API accepts.

emailreqstring
max 255 chars format: email
typestring
emaildomain
Example request
curl -X POST https://app.flipbooker.com/api/v1/subscribers \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"book_id":"<string>","email":"<string>"}'

Error responses

422 Validation failed
DELETE/subscribers/{subscriber}

Revoke a subscriber

Removes a reader from a flipbook's access list. The entry may be an address or a domain, and removing the last one turns the flipbook's email gate off.

subscribers:write

Parameters

ParameterTypeDetails
subscriberreqinteger path—
Example request
curl -X DELETE https://app.flipbooker.com/api/v1/subscribers/<subscriber> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found

Analytics

GET/analytics/audit-log

Get the analytics audit log

Returns a chronological record of analytics events.

analytics:read Company plan

Parameters

ParameterTypeDetails
book_idreqstring query—
viewer_idinteger query—
event_typestring query
access_requestedaccess_grantedaccess_rejecteddocument_downloadedlink_clickedlead_form_submittedform_widget_openedcheckout_widget_opened+1 more
datestring query—
tracked_link_idinteger query—
limitinteger query
1–500
cursorstring query—

Response 200

FieldTypeDetails
datareqobject[] —
data.active_msinteger —
data.active_secondsnumber —
data.book_idreqstring

The flipbook this row belongs to, named the way the request named it. `book_id` on the wire is a `random_id`; the column behind it is a foreign key that stays server-side.

data.event_typereqstring —
data.idreqstring —
data.metadatareqobject | string —
data.occurred_atstring —
data.page_numberinteger —
data.reasonreqstring —
data.sourcereqstring —
data.source_event_idreqinteger —
Example request
curl https://app.flipbooker.com/api/v1/analytics/audit-log?book_id=<book_id> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

403 Forbidden422 Validation failed
GET/analytics/book-flow

Get reading flow

Returns page-to-page reader transitions for a flipbook.

analytics:read Company plan

Parameters

ParameterTypeDetails
book_idreqstring query—
datestring query—
tracked_link_idinteger query—
Example request
curl https://app.flipbooker.com/api/v1/analytics/book-flow?book_id=<book_id> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

403 Forbidden422 Validation failed
GET/analytics/book-view-events

List view events

Returns raw per-reader flipbook view events.

analytics:read Company plan

Parameters

ParameterTypeDetails
book_idreqstring query—
datestring query—
limitinteger query
1–500
cursorstring query—
source_hoststring query
max 255 chars
viewer_idinteger query—
tracked_link_idinteger query—

Response 200

FieldTypeDetails
datareqobject[] —
data.book_idreqstring

The flipbook this row belongs to, named the way the request named it. `book_id` on the wire is a `random_id`; the column behind it is a foreign key that stays server-side.

data.book_titlestring —
data.citystring —
data.clicksreqinteger —
data.countrystring —
data.duration_secondsreqinteger —
data.engagement_scorereqstring —
data.from_embeddedreqboolean —
data.idreqinteger —
data.impressionsreqinteger —
data.latitudenumber —
Example request
curl https://app.flipbooker.com/api/v1/analytics/book-view-events?book_id=<book_id> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

403 Forbidden422 Validation failed
GET/analytics/interaction-events

List interaction events

Returns raw reader interaction events such as clicks, plays and downloads.

analytics:read Company plan

Parameters

ParameterTypeDetails
book_idreqstring query—
viewer_idinteger query—
event_typestring query
session_startedpage_segment_completedlink_clickeddocument_downloadedlead_form_submittedform_widget_openedcheckout_widget_openedcheckout_redirect_clicked+1 more
page_numberinteger query
min 1
session_idstring query
max 255 chars
datestring query—
tracked_link_idinteger query—
limitinteger query
1–500
cursorstring query—

Response 200

FieldTypeDetails
datareqobject[] —
data.active_msinteger —
data.active_secondsnumber —
data.book_idreqstring

The flipbook this row belongs to, named the way the request named it. `book_id` on the wire is a `random_id`; the column behind it is a foreign key that stays server-side.

data.citystring —
data.countrystring —
data.created_atreqstring —
data.event_typereqstring —
data.exit_reasonreqstring —
data.idreqinteger —
data.latitudenumber —
data.longitudenumber —
Example request
curl https://app.flipbooker.com/api/v1/analytics/interaction-events?book_id=<book_id> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

403 Forbidden422 Validation failed
GET/analytics/page-performance

Summarise page performance

Returns aggregate engagement for each page.

analytics:read Company plan

Parameters

ParameterTypeDetails
book_idreqstring query—
datestring query—
tracked_link_idinteger query—
Example request
curl https://app.flipbooker.com/api/v1/analytics/page-performance?book_id=<book_id> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

403 Forbidden422 Validation failed
GET/analytics/reader-journey

Get a reader's journey

Returns the ordered timeline for one reader across sessions.

analytics:read Company plan

Parameters

ParameterTypeDetails
viewer_idinteger query—
session_idstring query
max 255 chars
datestring query—
Example request
curl https://app.flipbooker.com/api/v1/analytics/reader-journey \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

403 Forbidden422 Validation failed
GET/analytics/reader-pages

Summarise readers by page

Returns per-reader, per-page engagement.

analytics:read Company plan

Parameters

ParameterTypeDetails
book_idreqstring query—
viewer_idinteger query—
session_idstring query
max 255 chars
datestring query—
tracked_link_idinteger query—
page_numberinteger query
min 1
Example request
curl https://app.flipbooker.com/api/v1/analytics/reader-pages?book_id=<book_id> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

403 Forbidden422 Validation failed
GET/analytics/readers

Summarise readers

Returns one engagement summary per reader.

analytics:read Company plan

Parameters

ParameterTypeDetails
book_idreqstring query—
viewer_idinteger query—
session_idstring query
max 255 chars
include_anonymousboolean query—
datestring query—
sortstring query
recentengagement
tracked_link_idinteger query—
limitinteger query
1–500
cursorstring query—
Example request
curl https://app.flipbooker.com/api/v1/analytics/readers?book_id=<book_id> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

403 Forbidden422 Validation failed
GET/analytics/reading-session-pages

Summarise sessions by page

Returns page-level detail within each reading session.

analytics:read Company plan

Parameters

ParameterTypeDetails
book_idreqstring query—
view_event_idreqinteger query—

Response 200

FieldTypeDetails
datareqstring —
metareqstring —
Example request
curl https://app.flipbooker.com/api/v1/analytics/reading-session-pages?book_id=<book_id>&view_event_id=<view_event_id> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

403 Forbidden422 Validation failed

Exports

GET/exports/analytics/{book}

Export analytics

Downloads a flipbook analytics summary as a CSV file.

exports:read Company plan

Parameters

ParameterTypeDetails
bookreqstring path

The book random id

Example request
curl https://app.flipbooker.com/api/v1/exports/analytics/<book> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found
GET/exports/books/{book}/access-audit

Export the access audit

Downloads the flipbook access audit as CSV.

exports:read Company plan

Parameters

ParameterTypeDetails
bookreqstring path

The book random id

Example request
curl https://app.flipbooker.com/api/v1/exports/books/<book>/access-audit \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found
GET/exports/books/{book}/audit-log

Export the audit log

Downloads the analytics audit log as CSV.

exports:read Company plan

Parameters

ParameterTypeDetails
bookreqstring path

The book random id

Example request
curl https://app.flipbooker.com/api/v1/exports/books/<book>/audit-log \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found
GET/exports/books/{book}/interaction-events

Export interaction events

Downloads raw reader interaction events as CSV.

exports:read Company plan

Parameters

ParameterTypeDetails
bookreqstring path

The book random id

Example request
curl https://app.flipbooker.com/api/v1/exports/books/<book>/interaction-events \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found
GET/exports/books/{book}/leads

Export leads

Downloads captured lead form submissions as CSV.

exports:read

Parameters

ParameterTypeDetails
bookreqstring path

The book random id

Example request
curl https://app.flipbooker.com/api/v1/exports/books/<book>/leads \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found
GET/exports/books/{book}/page-performance

Export page performance

Downloads aggregate page engagement as CSV.

exports:read Company plan

Parameters

ParameterTypeDetails
bookreqstring path

The book random id

Example request
curl https://app.flipbooker.com/api/v1/exports/books/<book>/page-performance \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found
GET/exports/books/{book}/reader-pages

Export reader page summaries

Downloads per-reader, per-page engagement as CSV.

exports:read Company plan

Parameters

ParameterTypeDetails
bookreqstring path

The book random id

Example request
curl https://app.flipbooker.com/api/v1/exports/books/<book>/reader-pages \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found
GET/exports/books/{book}/readers

Export reader summaries

Downloads per-reader engagement summaries as CSV.

exports:read Company plan

Parameters

ParameterTypeDetails
bookreqstring path

The book random id

Example request
curl https://app.flipbooker.com/api/v1/exports/books/<book>/readers \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found

Brand

GET/brand

Retrieve the brand

Returns the workspace brand and public flipbook styling.

brand:read

Response 200

FieldTypeDetails
datareqobject —
data.brandreqobject —
metareqstring —
Example request
curl https://app.flipbooker.com/api/v1/brand \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"
POST/brand

Create the brand

Creates the workspace brand record.

brand:write

Request body multipart/form-data

FieldTypeDetails
about_brandstring —
company_namereqstring —
contact_numberstring —
facebookstring —
filestring
max 2048 chars format: binary
google_analyticsstring —
instagramstring —
linkedinstring —
pintereststring —
primary_colorstring —
secondary_colorstring —
tertiary_colorstring —
twitterstring —
website_urlstring
format: uri
youtubestring —

Response 201

FieldTypeDetails
datareqobject —
data.brandreqobject —
data.brand.about_brandstring —
data.brand.brand_colorobject —
data.brand.brand_social_mediaobject —
data.brand.company_namestring —
data.brand.contact_numberstring —
data.brand.created_atstring
format: date-time
data.brand.google_analyticsstring —
data.brand.idreqinteger —
data.brand.logostring —
data.brand.take_over_brandingreqboolean

POST /v1/toggle-take-over-branding flips this and returns a BrandResource that could not show the value it had just changed, so two calls and no calls looked identical. The internal BrandResource has always exposed it.

Example request
curl -X POST https://app.flipbooker.com/api/v1/brand \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY" \
  -F "company_name=<string>" \
  -F "[email protected]"

Error responses

403 Forbidden422 Validation failed
PUT/brand

Update the brand

Updates the supplied workspace brand fields.

brand:write

Request body multipart/form-data

FieldTypeDetails
about_brandstring —
company_namereqstring —
contact_numberstring —
facebookstring —
filestring
max 2048 chars format: binary
google_analyticsstring —
idreqinteger —
instagramstring —
linkedinstring —
pintereststring —
primary_colorstring —
secondary_colorstring —
tertiary_colorstring —
twitterstring —
website_urlstring
format: uri
youtubestring —

Response 200

FieldTypeDetails
datareqobject —
data.brandreqobject —
metareqstring —
Example request
curl -X PUT https://app.flipbooker.com/api/v1/brand \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY" \
  -F "company_name=<string>" \
  -F "[email protected]" \
  -F "id=<integer>"

Error responses

403 Forbidden422 Validation failed
POST/toggle-take-over-branding

Toggle branding takeover

Turns workspace branding takeover on or off for public flipbook pages.

brand:write

Response 200

FieldTypeDetails
datareqobject —
data.brandreqobject —
data.brand.about_brandstring —
data.brand.brand_colorobject —
data.brand.brand_social_mediaobject —
data.brand.company_namestring —
data.brand.contact_numberstring —
data.brand.created_atstring
format: date-time
data.brand.google_analyticsstring —
data.brand.idreqinteger —
data.brand.logostring —
data.brand.take_over_brandingreqboolean

POST /v1/toggle-take-over-branding flips this and returns a BrandResource that could not show the value it had just changed, so two calls and no calls looked identical. The internal BrandResource has always exposed it.

Example request
curl -X POST https://app.flipbooker.com/api/v1/toggle-take-over-branding \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

403 Forbidden404 Not found

Webhooks

GET/webhook-subscriptions

List webhook subscriptions

Returns the workspace webhook subscriptions and their event filters.

webhooks:read

Response 200

FieldTypeDetails
datareqstring[] —
metareqstring —
Example request
curl https://app.flipbooker.com/api/v1/webhook-subscriptions \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"
POST/webhook-subscriptions

Create a webhook subscription

Subscribes an endpoint to one or more analytics events.

webhooks:write

Response 201

FieldTypeDetails
datareqobject —
data.created_atreqstring —
data.deliveries_countreqinteger —
data.event_typesreqobject[] —
data.filtersreqobject[]

Filters are stored as internal ids so the delivery matcher stays cheap, but they are configured — and re-submitted — as handles.

data.has_signing_secretreqboolean —
data.idreqinteger —
data.is_activereqboolean —
data.namereqstring —
data.providerreqstring —
data.target_urlreqstring —
data.updated_atreqstring —
Example request
curl -X POST https://app.flipbooker.com/api/v1/webhook-subscriptions \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"
GET/webhook-subscriptions/options

List webhook filter options

Returns workspace flipbooks, tracked links, event types and providers for configuring a webhook subscription.

webhooks:read

Response 200

FieldTypeDetails
datareqobject —
data.booksreqstring[] —
data.event_typesreqobject[] —
data.event_types.labelreqstring —
data.event_types.valuereqstring —
data.providersreqobject[] —
data.providers.labelreqstring —
data.providers.valuereqstring —
data.tracked_linksreqstring[] —
metareqstring —
Example request
curl https://app.flipbooker.com/api/v1/webhook-subscriptions/options \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"
GET/webhook-subscriptions/sample-events

List sample webhook events

Returns recent workspace webhook payloads for configuring an integration before its subscription exists.

webhooks:read

Parameters

ParameterTypeDetails
event_typesstring query—

Response 200

FieldTypeDetails
datareqstring[] —
metareqstring —
Example request
curl https://app.flipbooker.com/api/v1/webhook-subscriptions/sample-events \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"
PUT/webhook-subscriptions/{subscription}

Update a webhook subscription

Changes a subscription target URL or event list.

webhooks:write

Parameters

ParameterTypeDetails
subscriptionreqinteger path

The subscription ID

Response 200

FieldTypeDetails
datareqobject —
data.created_atreqstring —
data.deliveries_countreqinteger —
data.event_typesreqobject[] —
data.filtersreqobject[]

Filters are stored as internal ids so the delivery matcher stays cheap, but they are configured — and re-submitted — as handles.

data.has_signing_secretreqboolean —
data.idreqinteger —
data.is_activereqboolean —
data.namereqstring —
data.providerreqstring —
data.target_urlreqstring —
data.updated_atreqstring —
Example request
curl -X PUT https://app.flipbooker.com/api/v1/webhook-subscriptions/<subscription> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found
DELETE/webhook-subscriptions/{subscription}

Delete a webhook subscription

Removes a subscription while preserving its delivery history.

webhooks:write

Parameters

ParameterTypeDetails
subscriptionreqinteger path

The subscription ID

Example request
curl -X DELETE https://app.flipbooker.com/api/v1/webhook-subscriptions/<subscription> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found
GET/webhook-subscriptions/{subscription}/deliveries

List webhook deliveries

Returns recent delivery attempts and response statuses.

webhooks:read

Parameters

ParameterTypeDetails
subscriptionreqinteger path

The subscription ID

Response 200

FieldTypeDetails
datareqstring[] —
metareqstring —
Example request
curl https://app.flipbooker.com/api/v1/webhook-subscriptions/<subscription>/deliveries \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found
POST/webhook-subscriptions/{subscription}/test

Test a webhook subscription

Sends a test delivery to a subscription endpoint.

webhooks:write

Parameters

ParameterTypeDetails
subscriptionreqinteger path

The subscription ID

Response 202

FieldTypeDetails
datareqobject —
data.attemptsreqinteger —
data.created_atreqstring —
data.delivered_atreqstring —
data.error_messagestring —
data.event_idreqstring —
data.event_typereqstring —
data.idreqinteger —
data.payloadreqobject[]

What the subscriber actually received, not what we stored for matching and audit. A delivery history that shows fields the signed body never carried is worse than no history at all.

data.response_bodystring —
data.response_statusinteger —
data.statusreqstring —
Example request
curl -X POST https://app.flipbooker.com/api/v1/webhook-subscriptions/<subscription>/test \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found
POST/webhooks

Send a sample webhook

Dispatches a sample event to a URL so you can verify a webhook endpoint.

webhooks:write

Request body application/json

FieldTypeDetails
eventstring
flipbook.createdflipbook.updatedsubscriber.added
payloadarray —
urlstring
max 2048 chars format: uri

Response 202

FieldTypeDetails
datareqobject —
data.eventreqstring —
data.messagereqstring —
data.payloadreqobject[] —
data.target_urlreqstring —
metareqstring —
Example request
curl -X POST https://app.flipbooker.com/api/v1/webhooks \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Error responses

422 Validation failed502 Delivery failed

Catalogs

GET/catalogs

List catalogs

Returns product catalogs in the workspace.

catalogs:read

Parameters

ParameterTypeDetails
limitstring query
default: 25

Response 200

FieldTypeDetails
datareqobject[] —
data.created_atreqstring —
data.external_idstring —
data.idreqinteger —
data.last_sync_errorstring —
data.last_sync_statusstring —
data.last_synced_atreqstring —
data.metadataarray —
data.namereqstring —
data.sourcereqstring —
data.source_urlstring —
data.statusreqstring —
Example request
curl https://app.flipbooker.com/api/v1/catalogs \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"
POST/catalogs

Create a catalog

Creates a product catalog.

catalogs:write

Request body application/json

FieldTypeDetails
external_idstring
max 255 chars
metadataarray —
namereqstring
max 255 chars
sourcestring
woocommercewordpressshopifyecwidcustom
source_urlstring
max 2048 chars format: uri
template_keystring —

Response 202

FieldTypeDetails
datareqobject —
data.catalogreqobject —
data.catalog.created_atreqstring —
data.catalog.external_idstring —
data.catalog.idreqinteger —
data.catalog.last_sync_errorstring —
data.catalog.last_sync_statusstring —
data.catalog.last_synced_atreqstring —
data.catalog.metadataarray —
data.catalog.namereqstring —
data.catalog.sourcereqstring —
data.catalog.source_urlstring —
Example request
curl -X POST https://app.flipbooker.com/api/v1/catalogs \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"<string>"}'

Error responses

422 Validation failed
GET/catalogs/{catalog}

Retrieve a catalog

Returns one product catalog and its metadata.

catalogs:read

Parameters

ParameterTypeDetails
catalogreqinteger path

The catalog ID

Response 200

FieldTypeDetails
datareqobject —
data.catalogreqobject —
data.catalog.created_atreqstring —
data.catalog.external_idstring —
data.catalog.idreqinteger —
data.catalog.last_sync_errorstring —
data.catalog.last_sync_statusstring —
data.catalog.last_synced_atreqstring —
data.catalog.metadataarray —
data.catalog.namereqstring —
data.catalog.sourcereqstring —
data.catalog.source_urlstring —
Example request
curl https://app.flipbooker.com/api/v1/catalogs/<catalog> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found
DELETE/catalogs/{catalog}

Delete a catalog

Deletes a product catalog.

catalogs:write

Parameters

ParameterTypeDetails
catalogreqinteger path

The catalog ID

Response 200

FieldTypeDetails
datareqobject —
data.catalogreqobject —
data.catalog.created_atreqstring —
data.catalog.external_idstring —
data.catalog.idreqinteger —
data.catalog.last_sync_errorstring —
data.catalog.last_sync_statusstring —
data.catalog.last_synced_atreqstring —
data.catalog.metadataarray —
data.catalog.namereqstring —
data.catalog.sourcereqstring —
data.catalog.source_urlstring —
Example request
curl -X DELETE https://app.flipbooker.com/api/v1/catalogs/<catalog> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found
GET/catalogs/{catalog}/items

List catalog items

Returns the products in a catalog.

catalogs:read

Parameters

ParameterTypeDetails
catalogreqinteger path

The catalog ID

limitstring query
default: 25

Response 200

FieldTypeDetails
datareqobject[] —
data.availabilityarray —
data.availableboolean —
data.catalog_idreqinteger —
data.categoriesarray —
data.created_atreqstring —
data.currencystring —
data.descriptionstring —
data.external_item_keyreqstring —
data.external_product_idreqstring —
data.external_variant_idstring —
data.galleryarray —
Example request
curl https://app.flipbooker.com/api/v1/catalogs/<catalog>/items \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found
PATCH/catalogs/{catalog}/items/availability

Update catalog item availability

Updates availability for catalog items.

catalogs:write

Parameters

ParameterTypeDetails
catalogreqinteger path

The catalog ID

Request body application/json

FieldTypeDetails
itemsreqstring[][] —
snapshot_atstring
format: date-time

Response 202

FieldTypeDetails
datareqobject —
data.summaryreqobject —
data.summary.accepted_itemsreqstring —
data.summary.errorsreqstring | string[] —
data.summary.failed_itemsreqstring —
data.summary.statusreqstring —
data.summary.total_itemsreqstring —
data.sync_jobreqobject —
data.sync_job.catalog_idreqinteger —
data.sync_job.created_atreqstring —
data.sync_job.errorsreqobject[] —
data.sync_job.finished_atreqstring —
Example request
curl -X PATCH https://app.flipbooker.com/api/v1/catalogs/<catalog>/items/availability \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"items":"<string[][]>"}'

Error responses

404 Not found422 Validation failed
DELETE/catalogs/{catalog}/items/{item}

Delete a catalog item

Removes an item from a catalog.

catalogs:write

Parameters

ParameterTypeDetails
catalogreqinteger path

The catalog ID

itemreqinteger path

The item ID

Response 200

FieldTypeDetails
datareqobject —
data.messagereqstring —
metareqstring —
Example request
curl -X DELETE https://app.flipbooker.com/api/v1/catalogs/<catalog>/items/<item> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found
POST/catalogs/{catalog}/items:bulk-upsert

Bulk upsert catalog items

Creates or updates multiple catalog items in one request.

catalogs:write

Parameters

ParameterTypeDetails
catalogreqinteger path

The catalog ID

Request body application/json

FieldTypeDetails
itemsreqstring[][] —

Response 202

FieldTypeDetails
datareqobject —
data.summaryreqobject —
data.summary.accepted_itemsreqstring —
data.summary.errorsreqstring | string[] —
data.summary.failed_itemsreqstring —
data.summary.statusreqstring —
data.summary.total_itemsreqstring —
data.sync_jobreqobject —
data.sync_job.catalog_idreqinteger —
data.sync_job.created_atreqstring —
data.sync_job.errorsreqobject[] —
data.sync_job.finished_atreqstring —
Example request
curl -X POST https://app.flipbooker.com/api/v1/catalogs/<catalog>/items:bulk-upsert \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"items":"<string[][]>"}'

Error responses

404 Not found422 Validation failed
POST/catalogs/{catalog}/render

Render a catalog

Creates a flipbook from a product catalog.

catalogs:readbooks:write

Parameters

ParameterTypeDetails
catalogreqinteger path

The catalog ID

Request body application/json

FieldTypeDetails
coverobject —
cover.descriptionstring
max 5000 chars
cover.titlestring
max 255 chars
cover.websitestring
max 2048 chars
itemsstring[] —
settingsobject —
settings.allow_fullscreenboolean —
settings.animation_typestring
max 255 chars
settings.auto_links_enabledboolean —
settings.backgroundstring
max 2048 chars
settings.copyright_enabledboolean

Not accepted: these books are built from page images, so there is no source PDF to offer and downloadable_pdf is forced to false when the record is created. Validating it here advertised a setting the endpoint has never honoured. Removed from the contract rather than made `prohibited`, because a caller sending a meaningless field should not start failing — it is simply not part of the request.

settings.domains_enabledboolean —
settings.eod_enabledboolean —
settings.flip_soundboolean —
settings.image_displaystring
max 255 chars
settings.mobile_animation_typestring
max 255 chars
settings.open_fullscreen_by_defaultboolean —
settings.pdf_passwordstring
max 255 chars
settings.pdf_privacy_statusstring
max 50 chars
settings.share_social_mediaboolean —
statusstring
draftpublish
template_idinteger
min 1
titlestring
max 255 chars
Example request
curl -X POST https://app.flipbooker.com/api/v1/catalogs/<catalog>/render \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Error responses

401 Unauthenticated404 Not found422 Validation failed
GET/catalogs/{catalog}/sync-jobs/{syncJob}

Retrieve a catalog sync job

Returns the status of a catalog synchronization job.

catalogs:read

Parameters

ParameterTypeDetails
catalogreqinteger path

The catalog ID

syncJobreqinteger path

The sync job ID

Response 200

FieldTypeDetails
datareqobject —
data.sync_jobreqobject —
data.sync_job.catalog_idreqinteger —
data.sync_job.created_atreqstring —
data.sync_job.errorsreqobject[] —
data.sync_job.finished_atreqstring —
data.sync_job.idreqinteger —
data.sync_job.progressreqobject —
data.sync_job.started_atreqstring —
data.sync_job.statusreqstring —
data.sync_job.typereqstring —
data.sync_job.updated_atreqstring —
Example request
curl https://app.flipbooker.com/api/v1/catalogs/<catalog>/sync-jobs/<syncJob> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

401 Unauthenticated404 Not found
GET/templates

List catalog templates

Returns the catalog templates available to the workspace.

catalogs:read

Parameters

ParameterTypeDetails
typestring query
max 64 chars

Response 200

FieldTypeDetails
datareqobject[] —
data.idreqstring —
data.is_defaultreqboolean —
data.namereqstring —
data.thumbnailsreqobject —
data.typereqstring —
metareqobject —
meta.default_template_idreqstring —
meta.default_template_sourcereqstring —
Example request
curl https://app.flipbooker.com/api/v1/templates \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

422 Validation failed

Integrations

POST/integrations/shopify/webhooks

Receive a Shopify product webhook

Processes a Shopify product data webhook for catalog synchronization.

catalogs:write

Request body application/json

FieldTypeDetails
payloadreqobject —
payload.customerobject —
payload.customer.emailstring
max 255 chars format: email
payload.customer.idinteger —
payload.data_requestobject —
payload.data_request.idinteger —
payload.shop_domainreqstring
max 255 chars
payload.shop_idreqinteger —
shopDomainreqstring
max 255 chars
topicreqstring
customers/data_requestcustomers/redactshop/redact

Response 202

FieldTypeDetails
actionreqstring —
countsreqobject —
replayedreqboolean —
statusreqstring —
Example request
curl -X POST https://app.flipbooker.com/api/v1/integrations/shopify/webhooks \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"payload":"<object>","shopDomain":"<string>","topic":"customers/data_request"}'

Error responses

401 Unauthenticated422 Validation failed
POST/integrations/shopify/workspace-name

Choose the Shopify workspace name

Replaces the generated signup workspace name once, while the merchant is connecting their store. This operation is restricted to the configured Shopify connector.

workspace:write

Request body application/json

FieldTypeDetails
workspace_namereqstring
max 255 chars
workspace_slugstring

Reject slug collisions with every other workspace (matches the global unique index on `workspaces.slug`), ignoring exactly the row the controller will update.

Response 200

FieldTypeDetails
datareqobject —
data.workspacereqobject —
data.workspace.can_renamereqboolean —
data.workspace.idreqinteger —
data.workspace.namestring —
data.workspace.slugstring —
metareqstring —
Example request
curl -X POST https://app.flipbooker.com/api/v1/integrations/shopify/workspace-name \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"workspace_name":"<string>"}'

Error responses

401 Unauthenticated403 Forbidden422 Validation failed

General

GET/health

Health check

Returns the API status and version.

Response 200

FieldTypeDetails
statusreqstring —
timestampreqstring —
versionreqstring —
Example request
curl https://app.flipbooker.com/api/v1/health \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"
GET/me

Describe the current connection

Returns the authenticated workspace, plan features and granted scopes so an integration can identify and configure its connection.

Example request
curl https://app.flipbooker.com/api/v1/me \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

400 Bad request401 Unauthenticated403 Forbidden

Embed domains

GET/books/{book}/embed-domains

List embed domains

Returns the websites allowed to embed this flipbook. Matching includes subdomains, so "example.com" also permits "docs.example.com".

books:read

Parameters

ParameterTypeDetails
bookreqstring path

The book random id

Response 200

FieldTypeDetails
datareqobject[] —
data.created_atreqstring —
data.domainreqstring —
data.idreqstring —
data.includes_subdomainsreqboolean —
metareqstring —
Example request
curl https://app.flipbooker.com/api/v1/books/<book>/embed-domains \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found
POST/books/{book}/embed-domains

Allow a website to embed

Adds a website to the flipbook embed allowlist. Accepts a bare host such as "example.com"; a pasted URL is reduced to its host. Adding the first entry turns the embedding restriction on.

books:write

Parameters

ParameterTypeDetails
bookreqstring path

The book random id

Request body application/json

FieldTypeDetails
domainreqstring
max 255 chars

Response 200

FieldTypeDetails
datareqobject —
data.created_atreqstring —
data.domainreqstring —
data.idreqstring —
data.includes_subdomainsreqboolean —
metareqstring —
Example request
curl -X POST https://app.flipbooker.com/api/v1/books/<book>/embed-domains \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain":"<string>"}'

Error responses

404 Not found422 Validation failed
DELETE/books/{book}/embed-domains/{embedDomain}

Stop a website embedding

Removes a website from the flipbook embed allowlist. Removing the last entry turns the embedding restriction off.

books:write

Parameters

ParameterTypeDetails
bookreqstring path

The book random id

embedDomainreqinteger path—
Example request
curl -X DELETE https://app.flipbooker.com/api/v1/books/<book>/embed-domains/<embedDomain> \
  -H "Authorization: Bearer $FLIPBOOKER_API_KEY"

Error responses

404 Not found