Client galleries
Client galleries in Allpage: its screens, what you can do there and its operations.
Availability. Works when the business has it turned on and its plan includes it. Otherwise its tools answer needs (kind module) with how to turn it on: business.useTool, or a plan that includes it.
Screens
- Galleries (/galleries)
What you can do
- Start a client gallery: the assistant can do it on its own
- Change a client gallery: the assistant can do it on its own
- Save a gallery set: the assistant can do it on its own
- Remove a gallery set: the assistant can do it on its own
- Share a gallery with the client: the assistant asks you first
- Make a new gallery link: the assistant asks you first
- Delete a client gallery: the assistant asks you first
For apps
Tools
- galleries_create (Start a client gallery): a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
- galleries_update (Change a client gallery): a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
- galleries_saveSet (Save a gallery set): a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
- galleries_removeSet (Remove a gallery set): a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
- galleries_share (Share a gallery with the client): customers see it: waits for the owner’s approval unless they chose Just do it for your app
- galleries_newLink (Make a new gallery link): customers see it: waits for the owner’s approval unless they chose Just do it for your app
- galleries_remove (Delete a client gallery): customers see it: waits for the owner’s approval unless they chose Just do it for your app
Reads
- galleries_list (List your client galleries)
- galleries_get (See a client gallery)
- galleries_downloads (See a gallery’s downloads)
- galleries_toDeliver (See galleries not shared yet)
- galleries_customer (See a client’s galleries)
- galleries_summary (What’s going on)
The owner’s screens
- Galleries (/galleries)
Operations
Each one's input and output, as JSON Schema. Ids are typed (typed ids).
galleries.create
Start a client gallery
- Kind
- Change
- Tool
galleries_create- Scope
galleries:write- Reached by
- API, MCP, ChatGPT
a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"customerId": {
"description": "Someone on your list; or send `name` with `email` or `phone`.",
"type": "string",
"pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$"
},
"name": {
"default": "",
"description": "Their name, without a customerId.",
"type": "string",
"maxLength": 120
},
"email": {
"label": "Email",
"control": "email",
"description": "Their email, without a customerId.",
"type": "string",
"maxLength": 320
},
"phone": {
"label": "Phone",
"control": "tel",
"description": "Their mobile, without a customerId.",
"type": "string",
"maxLength": 40
},
"galleryName": {
"description": "Left out, “<client>’s photos”.",
"type": "string",
"minLength": 1,
"maxLength": 120
},
"agreementId": {
"description": "The sale it delivers, for releasing downloads once it’s paid.",
"type": "string",
"pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$"
},
"sets": {
"default": [
"Photos"
],
"description": "Set names, in order.",
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
}
},
"additionalProperties": false
}Output
{
"oneOf": [
{
"type": "object",
"required": [
"status",
"title",
"change"
],
"properties": {
"status": {
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {},
"undo": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"input": {}
}
}
}
},
{
"type": "object",
"required": [
"status",
"proposalId"
],
"properties": {
"status": {
"const": "proposed"
},
"proposalId": {
"type": "string"
},
"preview": {},
"approveAt": {
"type": "string",
"format": "uri"
}
}
},
{
"type": "object",
"required": [
"status",
"check"
],
"properties": {
"status": {
"const": "pending"
},
"message": {
"type": "string"
},
"check": {
"type": "string"
},
"checkInput": {
"type": "object"
}
}
},
{
"type": "object",
"required": [
"status",
"message"
],
"properties": {
"status": {
"const": "refused"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"status",
"kind",
"message"
],
"properties": {
"status": {
"const": "needs"
},
"kind": {
"type": "string"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
]
}galleries.customer
See a client’s galleries
- Kind
- Read
- Tool
galleries_customer- Scope
galleries:read- Reached by
- API, MCP
Read-only.
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"customerId": {
"type": "string",
"pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A customer id: cus_ and 26 letters and digits."
}
},
"required": [
"customerId"
],
"additionalProperties": false
}Output
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"oneOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {
"type": "object",
"properties": {
"galleries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^gal_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A gallery id: gal_ and 26 letters and digits."
},
"name": {
"type": "string"
},
"shared": {
"type": "boolean"
},
"closed": {
"type": "boolean"
},
"photos": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"favorites": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"id",
"name",
"shared",
"closed",
"photos",
"favorites"
],
"additionalProperties": false
}
},
"total": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"galleries",
"total"
],
"additionalProperties": false
}
},
"required": [
"status",
"title",
"change",
"result"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "refused"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
},
"required": [
"status",
"title",
"change",
"message"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "needs"
},
"kind": {
"type": "string",
"enum": [
"module",
"portal",
"business",
"limit",
"paused",
"reauth"
]
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"status",
"kind",
"title",
"change",
"message"
],
"additionalProperties": {}
}
]
}galleries.downloads
See a gallery’s downloads
- Kind
- Read
- Tool
galleries_downloads- Scope
galleries:read- Reached by
- API, MCP
Read-only.
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"galleryId": {
"type": "string",
"pattern": "^gal_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A gallery id: gal_ and 26 letters and digits."
}
},
"required": [
"galleryId"
],
"additionalProperties": false
}Output
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"oneOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {
"type": "object",
"properties": {
"downloads": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^gdl_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A gallery download id: gdl_ and 26 letters and digits."
},
"at": {
"type": "string"
},
"viewer": {
"type": "string"
},
"name": {
"type": "string"
},
"web": {
"type": "boolean"
}
},
"required": [
"id",
"at",
"viewer",
"name",
"web"
],
"additionalProperties": false
}
},
"total": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"downloads",
"total"
],
"additionalProperties": false
}
},
"required": [
"status",
"title",
"change",
"result"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "refused"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
},
"required": [
"status",
"title",
"change",
"message"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "needs"
},
"kind": {
"type": "string",
"enum": [
"module",
"portal",
"business",
"limit",
"paused",
"reauth"
]
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"status",
"kind",
"title",
"change",
"message"
],
"additionalProperties": {}
}
]
}galleries.get
See a client gallery
- Kind
- Read
- Tool
galleries_get- Scope
galleries:read- Reached by
- API, MCP, ChatGPT
Read-only.
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"galleryId": {
"type": "string",
"pattern": "^gal_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A gallery id: gal_ and 26 letters and digits."
}
},
"required": [
"galleryId"
],
"additionalProperties": false
}Output
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"oneOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^gal_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A gallery id: gal_ and 26 letters and digits."
},
"name": {
"type": "string"
},
"message": {
"type": "string"
},
"customerId": {
"type": "string",
"pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A customer id: cus_ and 26 letters and digits."
},
"customer": {
"type": "string"
},
"agreementId": {
"anyOf": [
{
"type": "string",
"pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A agreement id: agr_ and 26 letters and digits."
},
{
"type": "null"
}
]
},
"shared": {
"type": "boolean"
},
"closed": {
"type": "boolean"
},
"url": {
"type": [
"string",
"null"
]
},
"expiresOn": {
"type": [
"string",
"null"
]
},
"hasPin": {
"type": "boolean"
},
"watermark": {
"type": "boolean"
},
"canWatermark": {
"type": "boolean"
},
"releaseOnPaid": {
"type": "boolean"
},
"downloads": {
"type": "array",
"items": {
"type": "string",
"enum": [
"original",
"web"
]
}
},
"coverFileId": {
"anyOf": [
{
"type": "string",
"pattern": "^fil_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A file id: fil_ and 26 letters and digits."
},
{
"type": "null"
}
]
},
"payment": {
"anyOf": [
{
"type": "object",
"properties": {
"released": {
"type": "boolean"
},
"due": {
"type": "string"
},
"refunded": {
"type": "boolean"
}
},
"required": [
"released",
"due",
"refunded"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"sets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^gst_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A gallery set id: gst_ and 26 letters and digits."
},
"collectionId": {
"type": "string",
"pattern": "^alb_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A album id: alb_ and 26 letters and digits."
},
"name": {
"type": "string"
},
"photos": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^fil_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A file id: fil_ and 26 letters and digits."
},
"name": {
"type": "string"
},
"alt": {
"type": "string"
},
"kind": {
"type": "string"
},
"thumb": {
"type": [
"string",
"null"
]
},
"marked": {
"type": "boolean"
},
"favorites": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"id",
"name",
"alt",
"kind",
"thumb",
"marked",
"favorites"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"collectionId",
"name",
"photos"
],
"additionalProperties": false
}
},
"viewers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^gvw_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A gallery viewer id: gvw_ and 26 letters and digits."
},
"name": {
"type": "string"
},
"isClient": {
"type": "boolean"
},
"lastSeenAt": {
"type": "string"
},
"favorites": {
"type": "array",
"items": {
"type": "object",
"properties": {
"fileId": {
"type": "string",
"pattern": "^fil_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A file id: fil_ and 26 letters and digits."
},
"name": {
"type": "string"
}
},
"required": [
"fileId",
"name"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"name",
"isClient",
"lastSeenAt",
"favorites"
],
"additionalProperties": false
}
},
"recentDownloads": {
"type": "array",
"items": {
"type": "object",
"properties": {
"at": {
"type": "string"
},
"when": {
"type": "string"
},
"viewer": {
"type": "string"
},
"name": {
"type": "string"
},
"size": {
"type": "string",
"enum": [
"original",
"web"
]
}
},
"required": [
"at",
"when",
"viewer",
"name",
"size"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"name",
"message",
"customerId",
"customer",
"agreementId",
"shared",
"closed",
"url",
"expiresOn",
"hasPin",
"watermark",
"canWatermark",
"releaseOnPaid",
"downloads",
"coverFileId",
"payment",
"sets",
"viewers",
"recentDownloads"
],
"additionalProperties": false
}
},
"required": [
"status",
"title",
"change",
"result"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "refused"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
},
"required": [
"status",
"title",
"change",
"message"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "needs"
},
"kind": {
"type": "string",
"enum": [
"module",
"portal",
"business",
"limit",
"paused",
"reauth"
]
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"status",
"kind",
"title",
"change",
"message"
],
"additionalProperties": {}
}
]
}galleries.list
List your client galleries
- Kind
- Read
- Tool
galleries_list- Scope
galleries:read- Reached by
- API, MCP, ChatGPT
Read-only.
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"customerId": {
"type": "string",
"pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A customer id: cus_ and 26 letters and digits."
}
},
"additionalProperties": false
}Output
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"oneOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {
"type": "object",
"properties": {
"galleries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^gal_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A gallery id: gal_ and 26 letters and digits."
},
"name": {
"type": "string"
},
"customerId": {
"type": "string",
"pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A customer id: cus_ and 26 letters and digits."
},
"customer": {
"type": "string"
},
"shared": {
"type": "boolean"
},
"closed": {
"type": "boolean"
},
"expiresOn": {
"type": [
"string",
"null"
]
},
"photos": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"favorites": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"downloads": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"cover": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"name",
"customerId",
"customer",
"shared",
"closed",
"expiresOn",
"photos",
"favorites",
"downloads",
"cover"
],
"additionalProperties": false
}
}
},
"required": [
"galleries"
],
"additionalProperties": false
}
},
"required": [
"status",
"title",
"change",
"result"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "refused"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
},
"required": [
"status",
"title",
"change",
"message"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "needs"
},
"kind": {
"type": "string",
"enum": [
"module",
"portal",
"business",
"limit",
"paused",
"reauth"
]
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"status",
"kind",
"title",
"change",
"message"
],
"additionalProperties": {}
}
]
}galleries.newLink
Make a new gallery link
- Kind
- Change
- Tool
galleries_newLink- Scope
galleries:write- Reached by
- API, MCP, ChatGPT
customers see it: waits for the owner’s approval unless they chose Just do it for your app
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"galleryId": {
"type": "string",
"pattern": "^gal_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A gallery id: gal_ and 26 letters and digits."
}
},
"required": [
"galleryId"
],
"additionalProperties": false
}Output
{
"oneOf": [
{
"type": "object",
"required": [
"status",
"title",
"change"
],
"properties": {
"status": {
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {},
"undo": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"input": {}
}
}
}
},
{
"type": "object",
"required": [
"status",
"proposalId"
],
"properties": {
"status": {
"const": "proposed"
},
"proposalId": {
"type": "string"
},
"preview": {},
"approveAt": {
"type": "string",
"format": "uri"
}
}
},
{
"type": "object",
"required": [
"status",
"check"
],
"properties": {
"status": {
"const": "pending"
},
"message": {
"type": "string"
},
"check": {
"type": "string"
},
"checkInput": {
"type": "object"
}
}
},
{
"type": "object",
"required": [
"status",
"message"
],
"properties": {
"status": {
"const": "refused"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"status",
"kind",
"message"
],
"properties": {
"status": {
"const": "needs"
},
"kind": {
"type": "string"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
]
}galleries.remove
Delete a client gallery
- Kind
- Change
- Tool
galleries_remove- Scope
galleries:write- Reached by
- API, MCP, ChatGPT
customers see it: waits for the owner’s approval unless they chose Just do it for your app
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"galleryId": {
"type": "string",
"pattern": "^gal_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A gallery id: gal_ and 26 letters and digits."
}
},
"required": [
"galleryId"
],
"additionalProperties": false
}Output
{
"oneOf": [
{
"type": "object",
"required": [
"status",
"title",
"change"
],
"properties": {
"status": {
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {},
"undo": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"input": {}
}
}
}
},
{
"type": "object",
"required": [
"status",
"proposalId"
],
"properties": {
"status": {
"const": "proposed"
},
"proposalId": {
"type": "string"
},
"preview": {},
"approveAt": {
"type": "string",
"format": "uri"
}
}
},
{
"type": "object",
"required": [
"status",
"check"
],
"properties": {
"status": {
"const": "pending"
},
"message": {
"type": "string"
},
"check": {
"type": "string"
},
"checkInput": {
"type": "object"
}
}
},
{
"type": "object",
"required": [
"status",
"message"
],
"properties": {
"status": {
"const": "refused"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"status",
"kind",
"message"
],
"properties": {
"status": {
"const": "needs"
},
"kind": {
"type": "string"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
]
}galleries.removeSet
Remove a gallery set
- Kind
- Change
- Tool
galleries_removeSet- Scope
galleries:write- Reached by
- API, MCP, ChatGPT
a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"setId": {
"type": "string",
"pattern": "^gst_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A gallery set id: gst_ and 26 letters and digits."
}
},
"required": [
"setId"
],
"additionalProperties": false
}Output
{
"oneOf": [
{
"type": "object",
"required": [
"status",
"title",
"change"
],
"properties": {
"status": {
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {},
"undo": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"input": {}
}
}
}
},
{
"type": "object",
"required": [
"status",
"proposalId"
],
"properties": {
"status": {
"const": "proposed"
},
"proposalId": {
"type": "string"
},
"preview": {},
"approveAt": {
"type": "string",
"format": "uri"
}
}
},
{
"type": "object",
"required": [
"status",
"check"
],
"properties": {
"status": {
"const": "pending"
},
"message": {
"type": "string"
},
"check": {
"type": "string"
},
"checkInput": {
"type": "object"
}
}
},
{
"type": "object",
"required": [
"status",
"message"
],
"properties": {
"status": {
"const": "refused"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"status",
"kind",
"message"
],
"properties": {
"status": {
"const": "needs"
},
"kind": {
"type": "string"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
]
}galleries.saveSet
Save a gallery set
- Kind
- Change
- Tool
galleries_saveSet- Scope
galleries:write- Reached by
- API, MCP, ChatGPT
a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"galleryId": {
"type": "string",
"pattern": "^gal_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A gallery id: gal_ and 26 letters and digits."
},
"setId": {
"description": "Left out, a new set.",
"type": "string",
"pattern": "^gst_[0-9a-hjkmnp-tv-z]{26}$"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"add": {
"description": "Library photos to put at the end, in order.",
"maxItems": 2000,
"type": "array",
"items": {
"type": "string",
"pattern": "^fil_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A file id: fil_ and 26 letters and digits."
}
},
"remove": {
"maxItems": 2000,
"type": "array",
"items": {
"type": "string",
"pattern": "^fil_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A file id: fil_ and 26 letters and digits."
}
},
"order": {
"description": "Photos in the order they go first; the rest keep theirs after.",
"maxItems": 2000,
"type": "array",
"items": {
"type": "string",
"pattern": "^fil_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A file id: fil_ and 26 letters and digits."
}
}
},
"required": [
"galleryId"
],
"additionalProperties": false
}Output
{
"oneOf": [
{
"type": "object",
"required": [
"status",
"title",
"change"
],
"properties": {
"status": {
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {},
"undo": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"input": {}
}
}
}
},
{
"type": "object",
"required": [
"status",
"proposalId"
],
"properties": {
"status": {
"const": "proposed"
},
"proposalId": {
"type": "string"
},
"preview": {},
"approveAt": {
"type": "string",
"format": "uri"
}
}
},
{
"type": "object",
"required": [
"status",
"check"
],
"properties": {
"status": {
"const": "pending"
},
"message": {
"type": "string"
},
"check": {
"type": "string"
},
"checkInput": {
"type": "object"
}
}
},
{
"type": "object",
"required": [
"status",
"message"
],
"properties": {
"status": {
"const": "refused"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"status",
"kind",
"message"
],
"properties": {
"status": {
"const": "needs"
},
"kind": {
"type": "string"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
]
}galleries.summary
What’s going on
- Kind
- Read
- Tool
galleries_summary- Scope
galleries:read- Reached by
- API, MCP
Read-only.
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
}Output
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"oneOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"facts": {
"type": "array",
"items": {
"type": "string"
},
"description": "One-line facts, e.g. \"3 bookings today\"."
},
"attention": {
"description": "Things that need the owner, each with a plain reason.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"text": {
"type": "string"
},
"href": {
"type": "string"
}
},
"required": [
"id",
"text"
],
"additionalProperties": false
}
},
"happening": {
"description": "What’s on today, each at its time.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"at": {
"type": "number",
"description": "Epoch milliseconds."
},
"text": {
"type": "string"
},
"href": {
"type": "string"
}
},
"required": [
"id",
"at",
"text"
],
"additionalProperties": false
}
},
"metrics": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"value": {
"type": "number"
},
"prior": {
"type": "number"
},
"unit": {
"type": "string",
"enum": [
"count",
"money"
]
},
"href": {
"type": "string"
}
},
"required": [
"id",
"label",
"value"
],
"additionalProperties": false
}
}
},
"required": [
"title",
"facts"
],
"additionalProperties": false
}
},
"required": [
"status",
"title",
"change",
"result"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "refused"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
},
"required": [
"status",
"title",
"change",
"message"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "needs"
},
"kind": {
"type": "string",
"enum": [
"module",
"portal",
"business",
"limit",
"paused",
"reauth"
]
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"status",
"kind",
"title",
"change",
"message"
],
"additionalProperties": {}
}
]
}galleries.toDeliver
See galleries not shared yet
- Kind
- Read
- Tool
galleries_toDeliver- Scope
galleries:read- Reached by
- API, MCP
Read-only.
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
}Output
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"oneOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^gal_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A gallery id: gal_ and 26 letters and digits."
},
"name": {
"type": "string"
},
"customer": {
"type": "string",
"description": "Whose gallery it is."
}
},
"required": [
"id",
"name",
"customer"
],
"additionalProperties": false
}
},
"total": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"items",
"total"
],
"additionalProperties": false
}
},
"required": [
"status",
"title",
"change",
"result"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "refused"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
},
"required": [
"status",
"title",
"change",
"message"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "needs"
},
"kind": {
"type": "string",
"enum": [
"module",
"portal",
"business",
"limit",
"paused",
"reauth"
]
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"status",
"kind",
"title",
"change",
"message"
],
"additionalProperties": {}
}
]
}galleries.update
Change a client gallery
- Kind
- Change
- Tool
galleries_update- Scope
galleries:write- Reached by
- API, MCP, ChatGPT
a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
Input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"galleryId": {
"type": "string",
"pattern": "^gal_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A gallery id: gal_ and 26 letters and digits."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"message": {
"description": "A note to the client at the top of the gallery.",
"type": "string",
"maxLength": 1000
},
"agreementId": {
"anyOf": [
{
"type": "string",
"pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A agreement id: agr_ and 26 letters and digits."
},
{
"type": "null"
}
]
},
"expiresOn": {
"description": "The last day it opens (YYYY-MM-DD, the business’s time zone); null for no end. Moving it later sends the reminder again.",
"anyOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
{
"type": "null"
}
]
},
"pin": {
"description": "4 to 8 digits the client types to open it; null for link only.",
"anyOf": [
{
"type": "string",
"pattern": "^\\d{4,8}$"
},
{
"type": "null"
}
]
},
"watermark": {
"description": "Show only watermarked previews, with your logo image drawn over.",
"type": "boolean"
},
"releaseOnPaid": {
"description": "Downloads open once the sale is paid in full.",
"type": "boolean"
},
"downloads": {
"description": "What clients can download: `original`, `web` (2048 px JPEG), or none.",
"maxItems": 2,
"type": "array",
"items": {
"type": "string",
"enum": [
"original",
"web"
]
}
},
"coverFileId": {
"anyOf": [
{
"type": "string",
"pattern": "^fil_[0-9a-hjkmnp-tv-z]{26}$",
"description": "A file id: fil_ and 26 letters and digits."
},
{
"type": "null"
}
]
}
},
"required": [
"galleryId"
],
"additionalProperties": false
}Output
{
"oneOf": [
{
"type": "object",
"required": [
"status",
"title",
"change"
],
"properties": {
"status": {
"const": "done"
},
"title": {
"type": "string"
},
"change": {
"type": "boolean"
},
"result": {},
"undo": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"input": {}
}
}
}
},
{
"type": "object",
"required": [
"status",
"proposalId"
],
"properties": {
"status": {
"const": "proposed"
},
"proposalId": {
"type": "string"
},
"preview": {},
"approveAt": {
"type": "string",
"format": "uri"
}
}
},
{
"type": "object",
"required": [
"status",
"check"
],
"properties": {
"status": {
"const": "pending"
},
"message": {
"type": "string"
},
"check": {
"type": "string"
},
"checkInput": {
"type": "object"
}
}
},
{
"type": "object",
"required": [
"status",
"message"
],
"properties": {
"status": {
"const": "refused"
},
"message": {
"type": "string"
},
"field": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"status",
"kind",
"message"
],
"properties": {
"status": {
"const": "needs"
},
"kind": {
"type": "string"
},
"message": {
"type": "string"
},
"note": {
"type": "string"
}
}
}
]
}