Invoicing & freelance CRM
Pixieset
Galleries, clients, invoices and bookings in your Pixieset studio.
13 endpoints
CloudSpot has no public API, only a beta Zapier app, and no CloudSpot MCP server (checked 13 Nov 2026). Cotlet runs a hosted CloudSpot MCP server with 17 tools that ChatGPT and Claude use in your own CloudSpot account. Gallery emails, contracts, invoices and anything else a client receives wait for your OK.
17 tools Read and write
CloudSpot publishes no public API. Its Help Center documents one integration route for automation: a CloudSpot (Beta) app on Zapier, connected with a token. No CloudSpot MCP server and no official ChatGPT or Claude connector was found.
| What you need | Zapier app | By hand | Cotlet |
|---|---|---|---|
| Ask ChatGPT or Claude to do the work | No MCP server found | Copy and paste | Hosted MCP server |
| Email a Gallery or Zip to a client | Not in the Zap ideas | Galleries & Apps > Email | deliver_images, after your OK |
| Contracts, invoices and bookings | Not covered | One screen at a time | 17 tools, writes after your OK |
| Run from n8n or a script | Inside Zapier only | Manual only | REST, same key |
Checked 13 Nov 2026. Sources: Help: Connecting CloudSpot + Zapier · Help: What is Zapier? · CloudSpot pricing · CloudSpot Help Center · Help: Creating Client Galleries (Part One) · Help: Delivering Galleries and Images · Help: How to Expire a Gallery · Help: How to Create a Collection · Help: Where Can I View My Client Favorites? · Help: View Client Downloads · Help: Managing Leads · Help: How to Save a New Client · Help: How to Create a Project · Help: View Project Activity · Help: Create a New Contract · Help: View Contract Activity · Help: How to Create a New Questionnaire · Help: Create a New Invoice · Help: Payment Schedules · Help: How Do I Remind a Client Their Payment Is Due? · Help: Can I Add a Manual Payment? · Help: How to Create a Mini-Session · Help: Reschedule a Client's Booking · Help: How to Cancel a Booking · Help: How to Create a Discount Code · Help: Review Print Orders Before Sending to the Lab · Help: Managing Your To Do List
Once, in a browser we host for you.
One address in its settings.
Draft the invoice, then approve the send.
Your agent works in your own signed-in Cloud Browser. Gallery emails, contracts, invoices and refunds wait for your OK. Who can see your session
Sign in to CloudSpot in a Cloud Browser. Open app.cloudspot.io/login in your Cotlet Cloud Browser and log in with your own CloudSpot account.
Add the Cotlet address. Enter https://cotlet.dev/mcp/v1 as the MCP server or connector URL in your agent.
Let the agent in. Chat apps open a Cotlet sign-in page. Editors, n8n and scripts send an API key made in the console.
CloudSpot uses the shared address https://cotlet.dev/mcp/v1, the same one as every other app you turn on, so a single connector reaches them all. Enabled CloudSpot after you connected? Refresh the connector and its 17 tools show up.
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect
Claude Code:
claude mcp add --transport http cotlet \
https://cotlet.dev/mcp/v1 \
--header "Authorization: Bearer $COTLET_API_KEY" // ~/.cursor/mcp.json
{
"mcpServers": {
"cotlet": {
"url": "https://cotlet.dev/mcp/v1",
"headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
}
}
} # ~/.codex/config.toml
[mcp_servers.cotlet]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY" MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: cloudspot_read One tool per owner workflow in the CloudSpot Help Center. Most take an `action`: `list` and `get` only read, the other actions write and ask first.
A Collection holds the images of one shoot; its Galleries are what clients open. Favorites and downloads come from the Collection Analytics.
A Collection is the master set of images for one shoot; CloudSpot lets you make several Galleries from it, for example a Sneak Peek and the full Gallery. For each Gallery this returns its name, URL, the Folders it shows and its expiration date. Nothing changes, so it runs without asking.
MCP callcloudspot_read → read_galleries
REST endpointGET https://cotlet.dev/api/v1/cloudspot/galleries/read
| Name | Type | Description |
|---|---|---|
| collection string | string | Collection name. Leave empty to list every Collection. |
{
"collection": "Harper and Lee wedding",
"galleries": [
{
"name": "Sneak Peek",
"url": "example.cloudspot.io/harper-lee-sneak-peek",
"folders": [
"Ceremony"
],
"expires": null
},
{
"name": "Harper and Lee wedding",
"url": "example.cloudspot.io/harper-lee",
"folders": [
"Getting ready",
"Ceremony",
"Reception"
],
"expires": "2027-02-01"
}
]
} Favorites lists are the ones clients saved in the Collection's published Galleries and Mobile Apps. Downloads covers single images as well as full Gallery or Folder downloads. Read only, it runs without asking.
MCP callcloudspot_read → view_collection_analytics
REST endpointGET https://cotlet.dev/api/v1/cloudspot/collection-analytics/view
| Name | Type | Description |
|---|---|---|
| collection string required | string | Collection name, as read_galleries returns it. |
| section string | string | `favorites` or `downloads`. Leave empty for both. |
{
"collection": "collection"
} {
"collection": "Harper and Lee wedding",
"favorites": [
{
"list": "Album picks",
"by": "client@example.com",
"images": 42
}
],
"downloads": [
{
"what": "Full Gallery",
"by": "client@example.com",
"date": "2026-11-10"
},
{
"what": "IMG_0412.jpg",
"by": "guest@example.com",
"date": "2026-11-11"
}
]
} Creates the empty Collection with the name, date and tags you give. Images are uploaded afterwards; the agent does not upload photos for you. By default you confirm each call; you can switch that off for this tool.
MCP callcloudspot_write → create_collection
REST endpointPOST https://cotlet.dev/api/v1/cloudspot/collections
| Name | Type | Description |
|---|---|---|
| name string required | string | Collection name, for example the couple or the event. |
| date string | string | ISO date of the shoot. Optional. |
| tags array | array | Collection tags. Optional. |
{
"name": "Jane Doe"
} {
"collection": "Rivera family fall session",
"date": "2026-11-08",
"tags": [
"Family"
],
"created": true
} This is CloudSpot's Email button under Galleries & Apps. Without `zip` the client gets a button that opens the Gallery; with it they can also download the images straight from the email, under the Zip settings you set. The email reaches your client, so the agent shows the recipients and the text first. By default you confirm each call; you can switch that off for this tool.
MCP callcloudspot_write → deliver_images
REST endpointPOST https://cotlet.dev/api/v1/cloudspot/images/deliver
| Name | Type | Description |
|---|---|---|
| collection string required | string | Collection name, as read_galleries returns it. |
| gallery string required | string | Gallery to send, by name. |
| to array required | array | Recipient emails, from your saved Clients or typed in. |
| zip object | object | Add a Zip file: `folders`, `limit_downloads`, `expires` (ISO date), `image_size` (`full`, `social` or `custom`) and `watermark` (true or false). |
| template string | string | Saved Email Template to use. Leave empty and give `message` instead. |
| message string | string | Email text when no template is used. |
| copy_me boolean | boolean | Send yourself a copy of the email. |
{
"collection": "collection",
"gallery": "gallery",
"to": "to"
} {
"gallery": "Harper and Lee wedding",
"to": [
"client@example.com"
],
"zip": {
"image_size": "full",
"limit_downloads": 3,
"expires": "2027-01-15",
"watermark": false
},
"sent": true
} This is the Expiration Date setting on the Gallery's Access tab. An expired Gallery stays in your account, but the client sees only the cover photo and a note to contact you. The reminder reaches clients, so the change waits for your OK. By default you confirm each call; you can switch that off for this tool.
MCP callcloudspot_write → set_gallery_expiration
REST endpointPUT https://cotlet.dev/api/v1/cloudspot/gallery-expiration
| Name | Type | Description |
|---|---|---|
| collection string required | string | Collection name, as read_galleries returns it. |
| gallery string required | string | Gallery name. |
| expires string | string | ISO date. Leave empty to remove the date and reactivate the Gallery. |
| reminder_days integer | integer | Days before expiration to send the reminder. Needs an expiration date at least two days away. |
| reminder_to array | array | Specific emails for the reminder. Leave empty to use all Gallery visitors when Email Capture is on. |
{
"collection": "collection",
"gallery": "gallery"
} {
"gallery": "Harper and Lee wedding",
"expires": "2027-02-01",
"reminder_days": 7,
"reminder_to": "all visitors",
"saved": true
} From a Lead Form inquiry to a Project with its documents and activity history.
A lead reads as New until it is opened, then Reviewed. `convert_to_project` saves the lead as a Client and creates a Project assigned to them. The agent never uses Delete Lead, which CloudSpot cannot undo. By default you confirm each call; you can switch that off for this tool.
MCP callcloudspot_write → manage_leads
REST endpointPOST https://cotlet.dev/api/v1/cloudspot/leads/manage
| Name | Type | Description |
|---|---|---|
| action string required | string | One of `list`, `get`, `email`, `archive`, `convert_to_project`. `list` and `get` only read. |
| lead string | string | Lead name or email, for every action except `list`. |
| status string | string | For `list`: `new`, `reviewed` or `archived`. |
| message string | string | For `email`: the email text. |
{
"action": "action"
} {
"leads": [
{
"name": "Example Bride",
"email": "bride@example.com",
"status": "New",
"answers": {
"event_date": "2027-06-12",
"venue": "Example Barn"
}
},
{
"name": "Sample Family",
"email": "family@example.com",
"status": "Reviewed"
}
]
} This is Studio's Clients page. Run `list` first so the same client is not saved twice; once saved, a client can be assigned to Projects, documents and Galleries. By default you confirm each call; you can switch that off for this tool.
MCP callcloudspot_write → manage_clients
REST endpointPOST https://cotlet.dev/api/v1/cloudspot/clients/manage
| Name | Type | Description |
|---|---|---|
| action string required | string | One of `list`, `get`, `create`, `add_note`. `list` and `get` only read. |
| client string | string | Client name or email, as manage_clients `list` returns it. |
| fields object | object | For `create`: first_name, last_name and email (required), phone and address (optional). |
| note object | object | For `add_note`: title and text. |
{
"action": "action"
} {
"client": "Example Bride",
"email": "bride@example.com",
"phone": "+1 555 0100",
"saved": true
} A Project keeps every document of one event or client together. `get` returns its documents and its Activity History: when the client viewed documents, signed contracts, paid and completed questionnaires. Documents added here are saved to the Project, not sent; send them with the contract, questionnaire or invoice tool. By default you confirm each call; you can switch that off for this tool.
MCP callcloudspot_write → manage_projects
REST endpointPOST https://cotlet.dev/api/v1/cloudspot/projects/manage
| Name | Type | Description |
|---|---|---|
| action string required | string | One of `list`, `get`, `create`, `add_document`. `list` and `get` only read. |
| project string | string | Project name, as manage_projects `list` returns it. |
| fields object | object | For `create`: name, date, client and an optional description, which clients do not see. |
| document object | object | For `add_document`: type (`contract`, `questionnaire` or `invoice`) and the template to start from. |
{
"action": "action"
} {
"project": "Example Bride wedding",
"date": "2027-06-12",
"client": "Example Bride",
"documents": [
"Wedding contract",
"Wedding questionnaire",
"Wedding invoice"
],
"activity": [
{
"event": "Contract signed",
"at": "2026-11-12T18:04"
}
]
} A deleted to-do cannot be restored in CloudSpot; a completed one can be moved back to Active. By default you confirm each call; you can switch that off for this tool.
MCP callcloudspot_write → manage_to_dos
REST endpointPOST https://cotlet.dev/api/v1/cloudspot/dos/manage
| Name | Type | Description |
|---|---|---|
| action string required | string | One of `list`, `create`, `update`, `complete`, `delete`. `list` and `get` only read. |
| to_do string | string | The task text, for every action except `list`. |
| new_text string | string | For `update`: the new task text. |
{
"action": "action"
} {
"active": [
"Cull the Rivera session",
"Order album proofs for Harper and Lee"
],
"completed": 4
} Each document is drafted first and sent in a second call, so you read it before the client does.
`create` saves a draft; `send` emails it, so you can read the contract before your client does. `get` includes the Activity Feed: when the contract was created, viewed and signed. By default you confirm each call; you can switch that off for this tool.
MCP callcloudspot_write → manage_contracts
REST endpointPOST https://cotlet.dev/api/v1/cloudspot/contracts/manage
| Name | Type | Description |
|---|---|---|
| action string required | string | One of `list`, `get`, `create`, `send`. `list` and `get` only read. |
| contract string | string | Contract name, for `get` and `send`. |
| client string | string | Client name or email, as manage_clients `list` returns it. |
| template string | string | For `create`: Contract Template to start from. |
| email string | string | For `send`: Email Template name or the email text. |
{
"action": "action"
} {
"contract": "Wedding contract",
"client": "Example Bride",
"status": "Viewed",
"activity": [
{
"event": "Created",
"at": "2026-11-10T09:12"
},
{
"event": "Viewed",
"at": "2026-11-11T20:31"
}
]
} Questionnaires go out on their own or through a Project; to link one to a Project, its client must match the Project's client. `send` reaches your client, so it waits for your OK. By default you confirm each call; you can switch that off for this tool.
MCP callcloudspot_write → manage_questionnaires
REST endpointPOST https://cotlet.dev/api/v1/cloudspot/questionnaires/manage
| Name | Type | Description |
|---|---|---|
| action string required | string | One of `list`, `get`, `create`, `send`. `list` and `get` only read. |
| questionnaire string | string | Questionnaire name, for `get` and `send`. |
| client string | string | Client name or email, as manage_clients `list` returns it. |
| template string | string | For `create`: template to start from. |
| questions array | array | For `create` from scratch: each with text, type (`short_answer`, `long_answer`, `dropdown`, `radio`, `checkboxes` or `date`) and `required`. |
{
"action": "action"
} {
"questionnaire": "Wedding questionnaire",
"client": "Example Bride",
"questions": 12,
"status": "Draft"
} CloudSpot already emails automatic payment reminders before and after each due date; `remind` sends the extra reminder from the Invoice's Quick Actions menu. `create` saves a draft and `send` emails it, so you can check the amounts first. By default you confirm each call; you can switch that off for this tool.
MCP callcloudspot_write → manage_invoices
REST endpointPOST https://cotlet.dev/api/v1/cloudspot/invoices/manage
| Name | Type | Description |
|---|---|---|
| action string required | string | One of `list`, `get`, `create`, `send`, `remind`. `list` and `get` only read. |
| invoice string | string | Invoice name, for `get`, `send` and `remind`. |
| client string | string | Client name or email, as manage_clients `list` returns it. |
| template string | string | For `create`: Invoice Template to start from. |
| lines array | array | For `create`: description and price per line item. |
| payments array | array | For `create`: the payment schedule, amount and ISO due date per payment. CloudSpot splits the total equally until you set amounts. |
{
"action": "create",
"client": "Example Bride",
"template": "Wedding collection",
"lines": [
{
"description": "Wedding day coverage, 8 hours",
"price": 2800
},
{
"description": "Engagement session",
"price": 400
}
],
"payments": [
{
"amount": 1000,
"due": "2026-11-20"
},
{
"amount": 2200,
"due": "2027-05-29"
}
]
} {
"invoice": "Wedding invoice",
"client": "Example Bride",
"total": 3200,
"payments": [
{
"amount": 1000,
"due": "2026-11-20",
"status": "Due"
},
{
"amount": 2200,
"due": "2027-05-29",
"status": "Scheduled"
}
],
"status": "Draft"
} This is Add Manual Payment in the Invoice's Quick Actions; CloudSpot offers it on upgraded plans. The payment appears in Payment History and updates the Invoice status. It moves no money; a refund of a manual payment also happens outside CloudSpot. By default you confirm each call; you can switch that off for this tool.
MCP callcloudspot_write → record_manual_payment
REST endpointPOST https://cotlet.dev/api/v1/cloudspot/manual-payments
| Name | Type | Description |
|---|---|---|
| invoice string required | string | Invoice name. |
| date string required | string | ISO date the client paid. |
| amount number required | number | Amount paid. |
| method string required | string | Payment method, as CloudSpot lists it, for example Check or Cash. |
| description string | string | Short note on the payment. |
| transaction_id string | string | Reference for you and your client. |
| send_confirmation boolean | boolean | Email your client a confirmation. |
{
"invoice": "invoice",
"date": "date",
"amount": 1,
"method": "method"
} {
"invoice": "Wedding invoice",
"amount": 1000,
"method": "Check",
"date": "2026-11-18",
"status": "Partially paid",
"saved": true
} Time slots, prices and terms for a mini-session day, and the bookings clients make in it.
This is New Mini-Session in Studio's Booking section. Sample photos (up to 6) are added by hand. `get` lists every time slot with the client who booked it and the payment, if one was required. By default you confirm each call; you can switch that off for this tool.
MCP callcloudspot_write → manage_mini_sessions
REST endpointPOST https://cotlet.dev/api/v1/cloudspot/mini-sessions/manage
| Name | Type | Description |
|---|---|---|
| action string required | string | One of `list`, `get`, `create`. `list` and `get` only read. |
| mini_session string | string | Mini-session name, for `get`. |
| fields object | object | For `create`: name, description, date, time_slots (with AM or PM), location, require_payment, price and terms. |
{
"action": "action"
} {
"mini_session": "Fall minis at Example Park",
"date": "2026-11-22",
"slots": [
{
"time": "9:00 AM",
"client": "Sample Family",
"paid": 150
},
{
"time": "9:30 AM",
"client": null
}
],
"price": 150
} CloudSpot sends the client no email when a booking is edited or deleted, so the agent reminds you to tell them; a refund does send them an email. The freed slot opens for other clients. A refund cannot be pulled back. By default you confirm each call; you can switch that off for this tool.
MCP callcloudspot_write → manage_bookings
REST endpointPOST https://cotlet.dev/api/v1/cloudspot/bookings/manage
| Name | Type | Description |
|---|---|---|
| action string required | string | One of `reschedule`, `delete`, `refund`. `list` and `get` only read. |
| mini_session string required | string | Mini-session name. |
| client string required | string | Client who booked. |
| new_time string | string | For `reschedule`: one of the open time slots. |
{
"action": "action",
"mini_session": "mini session",
"client": "client"
} {
"mini_session": "Fall minis at Example Park",
"client": "Sample Family",
"from": "9:00 AM",
"to": "10:30 AM",
"rescheduled": true
} Discount codes for prints, digital products or shipping, and print orders held for your review.
Discount codes live in the Discount Codes section of your Store and need a card on file. If a client's payment does not cover the lab's cost of goods, CloudSpot charges your card the difference, so the agent shows the amount and the minimum order before saving. By default you confirm each call; you can switch that off for this tool.
MCP callcloudspot_write → manage_discount_codes
REST endpointPOST https://cotlet.dev/api/v1/cloudspot/discount-codes/manage
| Name | Type | Description |
|---|---|---|
| action string required | string | One of `list`, `create`. `list` and `get` only read. |
| fields object | object | For `create`: name (only you see it), code, apply_to (`subtotal`, `shipping` or `digital`), a percentage or fixed amount, expires (ISO date), minimum_order and max_uses. |
{
"action": "action"
} {
"name": "Holiday print sale",
"code": "HOLIDAY20",
"apply_to": "subtotal",
"percent_off": 20,
"minimum_order": 50,
"expires": "2026-12-15",
"created": true
} Orders wait in Pending Orders when the Catalog has Approve Orders Before Fulfillment on, until you submit them or the hold window ends. A submitted order cannot be undone, so the agent shows the order before it goes to the lab. Crop edits stay with you in CloudSpot. By default you confirm each call; you can switch that off for this tool.
MCP callcloudspot_write → review_pending_orders
REST endpointPOST https://cotlet.dev/api/v1/cloudspot/pending-orders/review
| Name | Type | Description |
|---|---|---|
| action string required | string | One of `list`, `submit`. `list` and `get` only read. |
| order string | string | Order number, for `submit`. |
{
"action": "action"
} {
"pending_orders": [
{
"order": "10482",
"client": "Sample Family",
"items": 3,
"total": 86,
"auto_submits": "2026-11-16"
}
]
} Your signed-in CloudSpot browser profile, AES-256-GCM encrypted, in Finland. Never your password.
The 17 CloudSpot tools. The session cookie stays in the Cloud Browser.
The Collections, clients, documents and Store your CloudSpot plan includes, and nothing more.
Your CloudSpot subscription and billing, payment connections (Stripe, PayPal), account settings, and image uploads or deletions.
You log in again yourself, in the same Cloud Browser.
Disable CloudSpot for agents, reset the browser, or change your CloudSpot password.
You type your CloudSpot password yourself; the agent only uses the session that login leaves behind. Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results).
Cotlet watches the apps it serves and updates the CloudSpot server when CloudSpot changes its screens, such as the Gallery Settings tabs or the Studio menus, so your agent keeps working without a change on your side.
New CloudSpot features reach the agent once a tool covers them. The agent only sees what your plan includes: on a Gallery-only plan the Studio tools find no invoices or contracts to work on.
If CloudSpot logs you out, one click in the Cotlet console reopens the Cloud Browser so you can log in again.
| Action | How to put it right |
|---|---|
| Gallery expiration date | Change or remove it with set_gallery_expiration; the Gallery opens again |
| Rescheduled booking | Move it back with manage_bookings, then tell the client: CloudSpot sends them no email |
| Sent gallery, contract or invoice | Already with your client: follow up with them directly |
| Submitted print order | CloudSpot cannot undo it; ask CloudSpot support in chat right away |
| Refunded booking payment | The money and the refund email are already with your client |
All 15 write tools ask first: by default you confirm each call, and you can switch that off per tool. The 2 read tools, galleries and Collection Analytics, run at once.
{
"name": "manage_invoices",
"arguments": {
"action": "create",
"client": "Example Bride",
"template": "Wedding collection",
"lines": [
{
"description": "Wedding day coverage, 8 hours",
"price": 2800
},
{
"description": "Engagement session",
"price": 400
}
],
"payments": [
{
"amount": 1000,
"due": "2026-11-20"
},
{
"amount": 2200,
"due": "2027-05-29"
}
]
}
} curl -X POST https://cotlet.dev/api/v1/cloudspot/invoices/manage \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"action":"create","client":"Example Bride","template":"Wedding collection","lines":[{"description":"Wedding day coverage, 8 hours","price":2800},{"description":"Engagement session","price":400}],"payments":[{"amount":1000,"due":"2026-11-20"},{"amount":2200,"due":"2027-05-29"}]}' {
"invoice": "Wedding invoice",
"client": "Example Bride",
"total": 3200,
"payments": [
{
"amount": 1000,
"due": "2026-11-20",
"status": "Due"
},
{
"amount": 2200,
"due": "2027-05-29",
"status": "Scheduled"
}
],
"status": "Draft"
} The example drafts a $3,200 wedding invoice, $2,800 of coverage and a $400 engagement session, as a $1,000 retainer and a $2,200 final payment. It stays a draft until a second call sends it. A cron job or n8n flow can make the same call over REST at /api/v1/cloudspot with the same key and price, in JSON. Failed calls are free.
About $20 a monthfor a solo wedding and portrait photographer, 3,420 credits. Your CloudSpot plan stays as it is.
| Job | Calls | Credits |
|---|---|---|
| Morning look at new leads and sent invoices | 2 × 20 | 400 |
| Leads emailed or turned into projects | 3 × 8 | 240 |
| Galleries delivered with an expiry date | 3 × 6 | 180 |
| Favorites and downloads check | 2 × 20 | 400 |
| Contracts and questionnaires sent | 2 × 8 | 160 |
| Payment reminders and checks recorded | 2 × 12 | 240 |
| Mini-session setup and booking moves | 1 × 10 | 100 |
| To-do list updates | 1 × 20 | 200 |
| Cloud Browser, 30 days | 1,500 | |
| Total | 192 calls | 3,420 |
The smallest pack, 5,000 credits for $29, covers this month. Wedding season, with more deliveries and invoices, uses more calls.
Credit packs are one-time purchases, not a subscription. The month above is an example built from our own assumptions, not measured customer usage.
| Credits | Price, one time | Calls at 10 credits | Per 1,000 credits |
|---|---|---|---|
| 5,000 | $29 | 500 | $5.80 |
| 15,000 | $79 | 1,500 | $5.27 |
| 32,000 | $149 | 3,200 | $4.66 |
| 60,000 | $249 | 6,000 | $4.15 |
Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.
| Option | What it does | Where it stops |
|---|---|---|
| CloudSpot (Beta) on Zapier | Moves gallery visitor emails, store orders and contacts to other apps with a token. | No gallery emails, contracts, invoices or bookings; runs inside Zapier. |
| Lightroom plugin | Publishes Collections and images from Lightroom to CloudSpot, one way. | Image publishing only, not a route for an AI agent. |
| By hand | Open each Collection, Project and Invoice in CloudSpot. | One screen at a time, only while you are at the desk. |
If a Zap already moves the data you need, keep it: it is the vendor's own route. Cotlet fits when you want ChatGPT, Claude or a script doing the client work in CloudSpot itself, from your own login, with nothing to host.
Take Group sp. z o.o. runs Cotlet: a software company registered in Poland, EU (VAT PL6342984273), working since 2019, founded by Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Questions about the CloudSpot tools go to contact@cotlet.dev.
Sign up free at https://cotlet.dev/signup?app=cloudspot, turn on CloudSpot under Integrations in the console and log in at https://app.cloudspot.io/login in your Cloud Browser. Then connect your AI agent and ask it about a gallery or an invoice. The trial needs no card.
CloudSpot publishes no public API (checked 13 Nov 2026). Its Help Center documents a CloudSpot (Beta) app on Zapier, connected with an access token you generate under Galleries > Settings > Integrations. No CloudSpot MCP server and no official ChatGPT or Claude connector was found. Cotlet does not use that token: it works in your own signed-in CloudSpot account.
CloudSpot's pricing page lists invoices, contracts, questionnaires, lead forms, scheduling and mini-sessions in its Full Suite plans; the Gallery-only plans cover galleries and the print store. Manual payments are on upgraded plans. The agent can use only what your plan includes.
Not from CloudSpot. Its Help Center says clients get no email when a mini-session booking is edited or deleted, only when a payment is refunded. Tell your client yourself, or ask your agent to draft the message.
No. The tools create Collections, send Galleries and change their settings, but uploading, culling and crop edits stay with you in CloudSpot or the Lightroom plugin.
Only in how it is called. Both carry the same 17 tools, inputs, answers, API key and price. Agents use MCP; scripts and n8n HTTP steps use REST.
No. Cotlet is independent and not affiliated with CloudSpot.
Free 7-day trial with 2,000 credits, no card needed.
May we use Google Analytics to see which pages help people? It sets cookies only if you accept. No ads, and we never sell data. Cookie policy