Skip to content
bluefox.email logoBlueFox Email
Main Navigation HomeFeaturesPricing
Marketing Agencies
Colleges & Universities
SaaS Companies
Occasional Senders
Amazon SES Users
Docs
Tutorials
Articles
Free Tools
Login
Get Started for Free

Appearance

Sidebar Navigation

Docs

Getting Started

Account Dashboard

Account Users

Account Settings

Projects

Project Dashboard

Creating a new project

Email Editors

Pre-designed Templates

Delivery Modes

Transactional Emails

Triggered Emails

Campaigns

Data Feeds

Send Test Emails

Automations

Contacts

Segments

Forms & Pages

Email Theme Settings

Suppression Lists

Settings

API

Project

Sender Identities

Domains

Webhook

Sending Setup

Production Access

BYO AWS

Design Systems

Templates

Campaigns

Transactional Emails

Triggered Emails

Send Email

Test Email

Email Error Log

Contacts

Segments

Subscriber Lists

Subscriptions

Signup Forms

Suppression List

Gallery

Legacy Endpoints

Contacts Management

Subscriber List Management

Send Transactional Email

Send Triggered Email

Send Attachments

Integrations

Webhooks for Event Notifications

Supabase

Zapier

Statistics

Google Postmaster Tools Feedback Identifiers

Email Personalization (Merge Tags)

Email Themes

Email Theme Basics

Email Theme Components

Blocks (or modules)

Templates

Pricing

Why?

About

Terms of use

Privacy policy

Refund policy

Partners

On this page

Gallery ​

Full reference for the Gallery resource in the bluefox.email API. See the API overview for authentication, the response envelope, and pagination.

List gallery folders ​

GET /v1/projectId/{projectId}/gallery/folders

Lists the folders directly inside a given folder. By default (parentFolderId omitted) this is the top level of the gallery as this project sees it: this project's own top-level folders, PLUS any account-wide shared folder (one with no project of its own, e.g. "Company Logos" - visible to and usable from every project in the account). The project's own top level has no folder entry of its own - the response's galleryName field carries its name (the project name). Pass parentFolderId to list a subfolder's contents instead, which can be inside either your own tree or a shared one - but never inside a different project's own private tree.

Parameters ​

NameInTypeRequiredDescription
projectIdpathstringyesThe project _id, found in the app under Project Settings.
parentFolderIdquerystringA folder _id to list the children of. Omit to list the top-level folders.
limitqueryintegerMax items per page. Capped at 30.
skipqueryintegerNumber of items to skip, for pagination.
sortquerystringField to sort by.
orderquerystring
filter[<field>]querystringExact-match filter on a top-level field, e.g. filter[name]=Welcome. Repeatable for multiple fields.

Responses ​

StatusDescription
200OK
403Missing or invalid API key
404Parent folder not found

Response body ​

FieldTypeRequiredDescription
itemsarray
countintegerTotal matching items across all pages, not just this page.
nextstringFull URL (path + query string) of the next page, or null if this is the last page.
galleryNamestringThe name of this project's own gallery space (kept in sync with the project name). The project's top level has no folder entry of its own, so this is how a caller knows which gallery the listing belongs to.

Create a gallery folder ​

POST /v1/projectId/{projectId}/gallery/folders

Defaults to creating the folder at the top level of this project's own tree. Pass parentFolderId (your own or an account-wide shared folder's id) to nest it there instead.

Parameters ​

NameInTypeRequiredDescription
projectIdpathstringyesThe project _id, found in the app under Project Settings.

Request body ​

FieldTypeRequiredDescription
namestringyes
parentFolderIdstringAn existing folder _id to nest the new folder under - either one from this project's own tree, or an account-wide shared folder. Omit to create it at the top level of this project's own tree.

Responses ​

StatusDescription
201Created
400Invalid request body or query - every violation found (missing/invalid/unexpected fields) is reported in one response, semicolon-separated, not just the first one hit.
403Missing or invalid API key
404Parent folder not found

Response body ​

FieldTypeRequiredDescription
_idstring
namestring
parentFolderIdstringThe parent folder's _id, or null if this folder is at the top level (either this project's own top level, or an account-wide shared folder itself). The project's own top level is implicit and has no id of its own - it is never returned as a folder, only referenced by omitting parentFolderId. A shared folder, in contrast, is returned as a normal folder with a real id.
createdAtstring
updatedAtstring

Get a single gallery folder ​

GET /v1/projectId/{projectId}/gallery/folders/{id}

Works for a folder anywhere in this project's own tree, or in an account-wide shared tree. 404s for a folder that belongs to a different project's own (non-shared) tree.

Parameters ​

NameInTypeRequiredDescription
projectIdpathstringyesThe project _id, found in the app under Project Settings.
idpathstringyes

Responses ​

StatusDescription
200OK
403Missing or invalid API key
404Folder not found

Response body ​

FieldTypeRequiredDescription
_idstring
namestring
parentFolderIdstringThe parent folder's _id, or null if this folder is at the top level (either this project's own top level, or an account-wide shared folder itself). The project's own top level is implicit and has no id of its own - it is never returned as a folder, only referenced by omitting parentFolderId. A shared folder, in contrast, is returned as a normal folder with a real id.
createdAtstring
updatedAtstring

Rename a gallery folder ​

PATCH /v1/projectId/{projectId}/gallery/folders/{id}

Parameters ​

NameInTypeRequiredDescription
projectIdpathstringyesThe project _id, found in the app under Project Settings.
idpathstringyes

Request body ​

FieldTypeRequiredDescription
namestringyes

Responses ​

StatusDescription
200OK
400Invalid request body or query - every violation found (missing/invalid/unexpected fields) is reported in one response, semicolon-separated, not just the first one hit.
403Missing or invalid API key
404Folder not found

Response body ​

FieldTypeRequiredDescription
_idstring
namestring
parentFolderIdstringThe parent folder's _id, or null if this folder is at the top level (either this project's own top level, or an account-wide shared folder itself). The project's own top level is implicit and has no id of its own - it is never returned as a folder, only referenced by omitting parentFolderId. A shared folder, in contrast, is returned as a normal folder with a real id.
createdAtstring
updatedAtstring

Delete a gallery folder ​

DELETE /v1/projectId/{projectId}/gallery/folders/{id}

Recursively deletes every subfolder and image nested inside it too (including their files in storage) - there is no separate confirmation step, this cannot be undone.

Parameters ​

NameInTypeRequiredDescription
projectIdpathstringyesThe project _id, found in the app under Project Settings.
idpathstringyes

Responses ​

StatusDescription
200Deleted
403Missing or invalid API key
404Folder not found

Response body ​

FieldTypeRequiredDescription
_idstring
namestring
parentFolderIdstringThe parent folder's _id, or null if this folder is at the top level (either this project's own top level, or an account-wide shared folder itself). The project's own top level is implicit and has no id of its own - it is never returned as a folder, only referenced by omitting parentFolderId. A shared folder, in contrast, is returned as a normal folder with a real id.
createdAtstring
updatedAtstring

List gallery images ​

GET /v1/projectId/{projectId}/gallery/images

Lists the images directly inside a given folder - by default the top level of this project's own gallery (whose name is in the response's galleryName field). Pass parentFolderId to list a subfolder's contents instead.

Parameters ​

NameInTypeRequiredDescription
projectIdpathstringyesThe project _id, found in the app under Project Settings.
parentFolderIdquerystringA folder _id to list the images inside. Omit to list the top-level images.
limitqueryintegerMax items per page. Capped at 30.
skipqueryintegerNumber of items to skip, for pagination.
sortquerystringField to sort by.
orderquerystring
filter[<field>]querystringExact-match filter on a top-level field, e.g. filter[name]=Welcome. Repeatable for multiple fields.

Responses ​

StatusDescription
200OK
403Missing or invalid API key
404Parent folder not found

Response body ​

FieldTypeRequiredDescription
itemsarray
countintegerTotal matching items across all pages, not just this page.
nextstringFull URL (path + query string) of the next page, or null if this is the last page.
galleryNamestringThe name of this project's own gallery space (kept in sync with the project name). The project's top level has no folder entry of its own, so this is how a caller knows which gallery the listing belongs to.

Upload a gallery image ​

POST /v1/projectId/{projectId}/gallery/images

A multipart/form-data upload (not JSON like other create endpoints, since it carries a binary file). Allowed types: image/jpeg, image/png, image/gif - any other type 400s.

Parameters ​

NameInTypeRequiredDescription
projectIdpathstringyesThe project _id, found in the app under Project Settings.

Responses ​

StatusDescription
201Created
400Invalid request body or query - every violation found (missing/invalid/unexpected fields) is reported in one response, semicolon-separated, not just the first one hit.
403Missing or invalid API key
404Parent folder not found

Response body ​

FieldTypeRequiredDescription
_idstring
namestring
urlstring
parentFolderIdstringThe containing folder's _id, or null if the image is at the top level of this project's gallery.
createdAtstring
updatedAtstring

Get a single gallery image ​

GET /v1/projectId/{projectId}/gallery/images/{id}

Parameters ​

NameInTypeRequiredDescription
projectIdpathstringyesThe project _id, found in the app under Project Settings.
idpathstringyes

Responses ​

StatusDescription
200OK
403Missing or invalid API key
404Image not found

Response body ​

FieldTypeRequiredDescription
_idstring
namestring
urlstring
parentFolderIdstringThe containing folder's _id, or null if the image is at the top level of this project's gallery.
createdAtstring
updatedAtstring

Rename a gallery image ​

PATCH /v1/projectId/{projectId}/gallery/images/{id}

Renames the image record only - does not replace the uploaded file itself. Upload a new image and delete the old one to replace the file.

Parameters ​

NameInTypeRequiredDescription
projectIdpathstringyesThe project _id, found in the app under Project Settings.
idpathstringyes

Request body ​

FieldTypeRequiredDescription
namestringyes

Responses ​

StatusDescription
200OK
400Invalid request body or query - every violation found (missing/invalid/unexpected fields) is reported in one response, semicolon-separated, not just the first one hit.
403Missing or invalid API key
404Image not found

Response body ​

FieldTypeRequiredDescription
_idstring
namestring
urlstring
parentFolderIdstringThe containing folder's _id, or null if the image is at the top level of this project's gallery.
createdAtstring
updatedAtstring

Delete a gallery image ​

DELETE /v1/projectId/{projectId}/gallery/images/{id}

Also deletes the underlying file in storage - this cannot be undone.

Parameters ​

NameInTypeRequiredDescription
projectIdpathstringyesThe project _id, found in the app under Project Settings.
idpathstringyes

Responses ​

StatusDescription
200Deleted
403Missing or invalid API key
404Image not found

Response body ​

FieldTypeRequiredDescription
_idstring
namestring
urlstring
parentFolderIdstringThe containing folder's _id, or null if the image is at the top level of this project's gallery.
createdAtstring
updatedAtstring
Pager
PreviousSuppression List
NextContacts Management