Creators & communities
Substack
Posts, Notes, messages, subscribers and stats for your publication.
50 endpoints
Your AI agent logs enquiries, follows up quiet leads, books jobs with a contract and invoice and chases overdue payments. Sign in to Studio Ninja once in your own Cloud Browser. No API, no Zapier.
9 tools Read and write
Studio Ninja has no MCP server, no ChatGPT or Claude app, no public API and no Zapier app: it connects only to built-in partners such as Xero, Stripe and Pic-Time (checked 8 Nov 2026). Cotlet runs 9 Studio Ninja tools hosted, over MCP for agents and REST for scripts, in your own Studio Ninja login.
| What you need | Studio Ninja API | By hand | Cotlet |
|---|---|---|---|
| Leads and jobs | No API | Yes, one by one | Yes |
| Contracts and invoices | No API | Yes, one by one | Yes, after your OK |
| Overdue payments | No API | Payments page | Yes |
| Ask in ChatGPT or Claude | No | No | Yes |
| Zapier app | None | None | Not needed |
Checked 8 Nov 2026. Sources: Studio Ninja help center · Studio Ninja pricing and integrations · Studio Ninja help: How to add a new lead
Once, in a browser we host for you.
One address in its settings.
It drafts the work, you OK what customers get.
We never keep your Studio Ninja password, and no contract, invoice or client email goes out until you approve it. Who can see your session
Sign in to Studio Ninja in a Cloud Browser. Create a Cotlet account, open Studio Ninja in its Cloud Browser, sign in with your Studio Ninja login and press Enable for agents.
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.
Studio Ninja shares the address https://cotlet.dev/mcp/v1 with every other app you enable, so one connector covers them all. Turned Studio Ninja on after connecting? Refresh the connector and the 9 tools appear.
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" Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth // ~/.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: studio_ninja_read Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: studio_ninja_write New leads and booked jobs reach no one by themselves, so they run at once. A workflow task that emails the client waits for your OK.
Returns open leads with client, job type, shoot date, source and days since last contact.
MCP callstudio_ninja_read → list_leads
REST endpointGET https://cotlet.dev/api/v1/studio-ninja/leads
| Name | Type | Description |
|---|---|---|
| no_reply_days integer | integer | Only leads with no contact in this many days. |
| page integer | integer | Page number. Default: 1. |
{
"leads": [
{
"lead_id": "L-6610",
"client": "Hannah & Liam Fletcher",
"job_type": "Wedding",
"date": "2027-03-20",
"source": "Contact form",
"days_since_contact": 6
}
],
"page": 1
} Creates the client and lead with job type and date. Reaches no one, so it runs at once.
MCP callstudio_ninja_write → add_lead
REST endpointPOST https://cotlet.dev/api/v1/studio-ninja/leads
| Name | Type | Description |
|---|---|---|
| name string required | string | Client name. |
| email string | string | Email. |
| job_type string required | string | Job type as in your settings. |
| date string | string | ISO shoot date. |
| note string | string | What they wrote. |
{
"name": "Jane Doe",
"job_type": "job type"
} {
"lead_id": "L-6634",
"client": "Priya Raman",
"job_type": "Newborn",
"date": "2026-12-04"
} Converts the lead to a job and applies the job type's workflow. Workflow emails that go to the client follow your workflow settings, so check them first. Reaches no one by itself, so it runs at once.
MCP callstudio_ninja_write → book_job
REST endpointPOST https://cotlet.dev/api/v1/studio-ninja/leads/{lead_id}/jobs
| Name | Type | Description |
|---|---|---|
| lead_id string required | string | Lead ID from list_leads. |
{
"lead_id": "L-6610"
} {
"job_id": "J-3318",
"client": "Hannah & Liam Fletcher",
"job_type": "Wedding",
"date": "2027-03-20",
"status": "Booked"
} Returns jobs with client, date, job type, amount owing and the next open workflow task.
MCP callstudio_ninja_read → list_jobs
REST endpointGET https://cotlet.dev/api/v1/studio-ninja/jobs
| Name | Type | Description |
|---|---|---|
| date_from string | string | ISO date. |
| date_to string | string | ISO date. |
| page integer | integer | Page number. Default: 1. |
{
"jobs": [
{
"job_id": "J-3290",
"client": "Mitchell Doyle",
"job_type": "Corporate headshots",
"date": "2026-11-14",
"owing": "0.00",
"next_task": "Send gallery"
}
],
"page": 1
} Ticks the task in the job workflow. If the task sends an email to the client, it waits for your OK.
MCP callstudio_ninja_write → complete_task
REST endpointPOST https://cotlet.dev/api/v1/studio-ninja/jobs/{job_id}/task/complete
| Name | Type | Description |
|---|---|---|
| job_id string required | string | Job ID from list_jobs. |
| task string required | string | Task name. |
{
"job_id": "job_8c41d2",
"task": "task"
} {
"job_id": "J-3290",
"task": "Send gallery",
"status": "Done"
} Search matches name and email.
Returns clients with ID, contact details and their jobs.
MCP callstudio_ninja_read → list_clients
REST endpointGET https://cotlet.dev/api/v1/studio-ninja/clients
| Name | Type | Description |
|---|---|---|
| query string | string | Name or email. |
| page integer | integer | Page number. Default: 1. |
{
"clients": [
{
"client_id": "CL-5521",
"name": "Priya Raman",
"email": "priya@example.com",
"jobs": 1
}
],
"page": 1
} Contracts and invoices wait for your OK. The overdue list comes from the Payments page.
Fills the template with the job details and emails it for the client's signature. By default you confirm each call; you can switch that off for this tool.
MCP callstudio_ninja_write → send_contract
REST endpointPOST https://cotlet.dev/api/v1/studio-ninja/jobs/{job_id}/contracts
| Name | Type | Description |
|---|---|---|
| job_id string required | string | Job ID from list_jobs. |
| template string required | string | Contract template name. |
{
"job_id": "job_8c41d2",
"template": "template"
} {
"contract_id": "CT-1187",
"client": "Hannah & Liam Fletcher",
"template": "Wedding contract",
"status": "Sent"
} Creates the invoice with your packages or line items and payment schedule, then emails it with the payment link. By default you confirm each call; you can switch that off for this tool.
MCP callstudio_ninja_write → send_invoice
REST endpointPOST https://cotlet.dev/api/v1/studio-ninja/jobs/{job_id}/invoices
| Name | Type | Description |
|---|---|---|
| job_id string required | string | Job ID from list_jobs. |
| items array required | array | Package or line items with price. |
| schedule string | string | Payment schedule name. |
{
"job_id": "job_8c41d2",
"items": "items"
} {
"invoice_id": "INV-2041",
"client": "Hannah & Liam Fletcher",
"total": "4,200.00",
"status": "Sent"
} Returns overdue and upcoming payments with client, job, amount and due date.
MCP callstudio_ninja_read → list_overdue
REST endpointGET https://cotlet.dev/api/v1/studio-ninja/overdues
| Name | Type | Description |
|---|---|---|
| include_upcoming_days integer | integer | Also payments due in this many days. |
{
"payments": [
{
"client": "Mitchell Doyle",
"job": "Corporate headshots",
"amount": "650.00",
"due": "2026-10-30",
"status": "Overdue"
}
]
} Your signed-in Studio Ninja profile, AES-256-GCM encrypted, in Finland. No password.
The 9 Studio Ninja tools, never the session cookie.
What your login sees: leads, jobs, clients, invoices, contracts.
Refunds, payment settings, your templates, deletes.
You sign in again yourself, in the same Cloud Browser.
Disable for agents, reset the browser, or change your Studio Ninja password.
Cotlet never types your password: you sign in yourself, and the agent only uses the session. Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results).
When Studio Ninja moves a button on a job or renames a page, we fix the tool and your agent calls it the same way. status.cotlet.dev checks the site, console and API every 3 minutes.
| Action | Undo |
|---|---|
| Add a lead or book a job | Yes, edit or archive it in Studio Ninja |
| Send a contract or invoice | No, it is in the client's inbox; void it in Studio Ninja |
| Tick a workflow task | Yes, untick it |
2 of 9 tools ask first: send_invoice, send_contract. New leads, booked jobs and workflow ticks reach no customer, so they run at once. You can turn the wait off per tool once you trust a routine.
{
"name": "book_job",
"arguments": {
"lead_id": "L-6610"
}
} curl -X POST https://cotlet.dev/api/v1/studio-ninja/leads/L-6610/jobs \
-H "Authorization: Bearer $COTLET_API_KEY" {
"job_id": "J-3318",
"client": "Hannah & Liam Fletcher",
"job_type": "Wedding",
"date": "2027-03-20",
"status": "Booked"
} A cron job or n8n flow can call the same tools over REST at /api/v1/studio-ninja with the same key and price, in JSON. Failed calls are free. Each tool row above shows its REST path.
About $15 a monthfor a wedding and portrait photographer, 2,600 credits. Your Studio Ninja plan stays as it is.
| Job | Calls | Credits |
|---|---|---|
| Enquiry logged as a lead | 1 × 30 | 300 |
| Quiet leads, weekly | 1 × 4 | 40 |
| Job booked with contract and invoice | 4 × 8 | 320 |
| Overdue payments, weekly | 1 × 4 | 40 |
| Workflow task ticked | 1 × 40 | 400 |
| Cloud Browser, 30 days | 1,500 | |
| Total | 2,600 |
Studio Ninja publishes no job counts, so the month is our example. Dollars at the $29 pack rate.
| 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 |
|---|---|---|
| Built-in integrations | Xero, QuickBooks, Stripe, Pic-Time and other partners. | Fixed syncs; nothing you can ask in plain words. |
| Studio Ninja workflows | Automatic emails and tasks per job type. | Fixed steps you set up; no new leads or invoices on request. |
| By hand | Every screen of Studio Ninja, one client at a time. | Your editing time. |
Studio Ninja has no API or Zapier app, so there is nothing to connect a script to. To log leads, book jobs and send invoices from ChatGPT or Claude this week, Cotlet works in the Studio Ninja account you already have.
Take Group sp. z o.o. runs Cotlet. It is a software company registered in Poland, EU (VAT PL6342984273), in business since 2019, led by its founders Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Questions about the Studio Ninja tools go to contact@cotlet.dev.
Sign up free at https://cotlet.dev, open Studio Ninja under Integrations in the console and sign in to Studio Ninja in its Cloud Browser. The trial starts with your first app and asks for no card.
Sign up at cotlet.dev, log in to Studio Ninja once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your Studio Ninja account through Cotlet, in their phone apps too.
With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in Studio Ninja: log enquiries as leads; follow up quiet leads; book a wedding. You ask in plain words, and anything that reaches other people waits for your OK first.
No. Studio Ninja has no ChatGPT or Claude connector of its own and Studio Ninja has no official MCP server (checked 8 Nov 2026). Cotlet is an independent one that works in ChatGPT, Claude, Cursor and any MCP client, on your signed-in account.
Yes, with Cotlet. ChatGPT adds enquiries from email or DMs as Studio Ninja leads with the job type and date, and lists leads that have gone quiet.
Yes, with Cotlet. ChatGPT creates the invoice for the job from your packages and payment schedule and sends it after your OK.
Yes, with Cotlet. ChatGPT reads the Payments page and lists what is overdue and what falls due soon, by client and job.
Yes. Booking a job applies the job type's workflow as usual, and your agent can tick workflow tasks. A task that emails the client waits for your OK.
Yes. You sign in to Studio Ninja yourself in your Cloud Browser, code included, and Cotlet keeps that session. We never see or store your password.
Only in how it is called. Both carry the same 9 tools, inputs, answers, API key and price. Agents use MCP; scripts and HTTP steps use REST.
No. Cotlet is independent and not affiliated with Studio Ninja or its owner Captura.
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