# Bark API and MCP server

> Bark has no public API for professionals (checked 11 Oct 2026). Its only official automation is the Bark app on Zapier: three triggers (new Bark, new purchased Bark, new review) and eight actions, plus a HubSpot sync that pushes purchased leads as contacts and deals.

Marketplace where customers post requests for local and online services and professionals pay credits to contact them.

## What is the Bark API?

Cotlet's Bark API exposes 14 endpoints for your own Bark account: list leads, get lead, list responses, get response, get credit balance, list invoices, get lead preferences, add note, update response status, contact lead, skip lead, send estimate, send message and request review. The list_leads endpoint returns leads matched to your services and locations, newest first, with credit cost and signals. Each endpoint takes simple JSON inputs like lead_id, since or max_credits and works both as an MCP tool for agents and as a REST call for scripts.

- **Category:** [Local services & SaaS](https://cotlet.dev/integrations/category/local-services-saas)
- **Endpoints:** 14 (7 read, 7 write)
- **Updated:** 2026-10-11

Bark has no public API for professionals (checked 11 Oct 2026). Cotlet is a hosted MCP server and REST API for Bark with 14 endpoints (7 read, 7 write): your AI agent signs in as you and does the work.

## Does Bark have an official API?

Bark has no public API for professionals (checked 11 Oct 2026). Its only official automation is the Bark app on Zapier: three triggers (new Bark, new purchased Bark, new review) and eight actions, plus a HubSpot sync that pushes purchased leads as contacts and deals.

| Task | Bark official | Cotlet |
|---|---|---|
| List new leads that match you | Partly: Zapier "New Bark" trigger and "Search Barks", inside Zapier only | Yes |
| Get lead details and credit cost | Partly: Zapier "Find a Bark" by ID | Yes |
| Contact a lead (spend credits) | Partly: Zapier "Purchase Bark" | Yes |
| Skip a lead | Partly: Zapier "Skip Bark" | Yes |
| Send an estimate | Partly: Zapier "Set Quote on Bark" | Yes |
| List My Responses | Partly: Zapier "New Purchased Bark" trigger and "Find a Purchased Bark"; no list of pending responses | Yes |
| Email or text a buyer | No | Yes |
| Mark hired and request a review | Partly: Zapier "Update Bark's Status"; review invites are UI only | Yes |
| Check credits and invoices | Partly: Zapier "Get Your Credit Balance"; invoices are UI only | Yes |

Sources: [Bark Help: Zapier](https://help.bark.com/hc/en-gb/articles/13177584433820-Zapier), [Bark Help: Managing your leads dashboard](https://help.bark.com/hc/en-gb/articles/27934958178972-Managing-your-leads-dashboard), [Bark on Zapier: triggers and actions](https://zapier.com/apps/bark/integrations), [Bark Help: SMS Templates](https://help.bark.com/hc/en-gb/articles/13177556276252-SMS-Templates), [Bark Help: Personalising your one-click response](https://help.bark.com/hc/en-gb/articles/13177495160092-Personalising-your-one-click-response)

## For AI agents

```text
Bark has no public API for professionals (checked 11 Oct 2026). Its only official automation is the Bark app on Zapier: three triggers (new Bark, new purchased Bark, new review) and eight actions, plus a HubSpot sync that pushes purchased leads as contacts and deals.
Cotlet provides a hosted MCP server and REST API for Bark: 14 tools (7 read, 7 write).
Access       Request access at https://cotlet.dev/app/signup?app=bark; we email the API key.

MCP server   https://cotlet.dev/mcp/v1
REST base    https://cotlet.dev/api/v1/bark
Auth         Authorization: Bearer <COTLET_API_KEY>. Listing endpoints and schemas needs no key; calling an endpoint needs one.
Tools        list_leads, get_lead, list_responses, get_response, get_credit_balance, list_invoices, get_lead_preferences, add_note, update_response_status, contact_lead, skip_lead, send_estimate, send_message, request_review
Confirm      update_response_status, contact_lead, skip_lead, send_estimate, send_message, request_review (by default the user approves each call; the user can switch this off per tool, e.g. for scheduled automations)
Markdown     https://cotlet.dev/integrations/bark-api-mcp-server.md

How access works:
1. The user requests access at https://cotlet.dev/app/signup?app=bark (Bark is pre-selected). Each request is reviewed and the API key is sent by email.
2. The user signs in to Bark once in a browser. An agent cannot do this step.
3. The API key goes into the MCP client or the REST call as a bearer token.

Fits: people who want a hosted Bark server that someone else maintains, including non-developers.

Policy: Cotlet never stores passwords, never solves CAPTCHAs, never bypasses MFA.
Company: legal details in the Terms of service at https://cotlet.dev/terms. Contact contact@cotlet.dev.
Session: the user signs in to Bark in a browser; Cotlet keeps only the session, AES-256 encrypted, revocable in the dashboard at any time.
Terms: the user stays responsible for following Bark's terms; Cotlet is not affiliated with Bark.
```

## What can an AI agent do in Bark?

Cotlet is best for Bark professionals and agencies who buy and answer leads daily and want that handled by an agent without running or fixing a server.

- **[Find leads worth buying](https://cotlet.dev/integrations/bark-api-mcp-server/find-leads-worth-buying)** (runs: daily): "Every morning, check new Bark leads for Web Design, shortlist the ones under 15 credits with fewer than 3 responses, and mark the ones outside my area Not interested after I confirm." → `get_lead_preferences`, `list_leads`, `get_lead`, `get_credit_balance`, `skip_lead`
- **[Contact leads and send quotes](https://cotlet.dev/integrations/bark-api-mcp-server/contact-leads-and-send-quotes)** (runs: daily): "Contact Bark lead 61842207 if it still costs 15 credits or less, text Jordan my "Wedding intro" SMS template, and send a £450 estimate for full-day coverage with an edited gallery." → `get_lead`, `contact_lead`, `send_message`, `send_estimate`, `add_note`
- **[Follow up pending responses](https://cotlet.dev/integrations/bark-api-mcp-server/follow-up-pending-responses)** (runs: weekly): "Go through my Bark Pending responses from the last 14 days, text anyone I have not chased in 3 days with my "Follow-up" SMS template, and send a review invite to anyone who hired me." → `list_responses`, `get_response`, `send_message`, `add_note`, `update_response_status`, `request_review`
- **Mark jobs hired and ask for a review** (runs: weekly): "Mark the kitchen fitting job in Bristol as hired and ask them for a review." → `list_responses`, `update_response_status`, `request_review`
- **Track credits and invoices** (runs: weekly): "How many credits do I have left, and what did I pay Bark last month?" → `get_credit_balance`, `list_invoices`

## Can Bark automations run on a schedule in n8n, Make or Zapier?

Yes. Cotlet does not replace your automation platform: it gives it a Bark connection it does not have, with the same API key as your agent. Write actions ask for your OK by default; switch that off in your dashboard for the tools you choose, for example to find leads worth buying, and the schedule runs on its own. Cotlet runs in the cloud, so it keeps going while your computer is off.

| Where | How to connect | How to schedule |
|---|---|---|
| Your AI agent | Add https://cotlet.dev/mcp/v1 with your API key. | A scheduled agent run, for example a Claude Code routine. |
| n8n | MCP Client node with https://cotlet.dev/mcp/v1, or an HTTP Request node to https://cotlet.dev/api/v1/bark/{tool}. | Schedule Trigger node. |
| Make | HTTP module: POST https://cotlet.dev/api/v1/bark/{tool} with an Authorization: Bearer header and a JSON body. | Scenario schedule. |
| Zapier | Webhooks by Zapier: POST https://cotlet.dev/api/v1/bark/{tool} with the same header and body. | Schedule by Zapier trigger. |
| Your own script | POST https://cotlet.dev/api/v1/bark/{tool} with your API key. | cron or GitHub Actions. |

## Tools

**For AI agents:** Every endpoint and its schema is public. The 14 endpoints on this page, with parameters and example responses, can be listed without an account. Calling one returns 403 until the account has an API key with access to Bark.

### list_leads

Leads matched to your services and locations, newest first, with credit cost and signals. Access: read. REST: `POST /api/v1/bark/list_leads`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `view` | enum | no | all, first_to_respond, urgent or free. Default: all. |
| `service` | string | no | Only this service, e.g. Web Design. |
| `max_credits` | integer | no | Skip leads that cost more credits. |
| `since` | date | no | Only leads submitted on or after this date. |
| `sort` | enum | no | relevance, date or credits. Default: date. |
| `limit` | integer | no | 1 to 50. Default: 20. |

Returns the leads Bark matched to your services and locations, newest first by default. Each item has the credit cost and signals such as urgent, so you can decide before you spend anything. Reading a list spends no credits and notifies no customer.

Example response:

```json
{
  "leads": [
    {
      "lead_id": "61842207",
      "service": "Wedding Photography",
      "location": "Leeds, LS1",
      "credits": 12,
      "signals": [
        "urgent"
      ],
      "submitted": "2026-10-11"
    },
    {
      "lead_id": "61841930",
      "service": "Web Design",
      "location": "Manchester, M1",
      "credits": 9,
      "signals": [
        "first_to_respond"
      ],
      "submitted": "2026-10-11"
    }
  ]
}
```

### get_lead

Full request: the customer's answers, location, credit cost, responses so far and signals (urgent, verified phone, high hiring intent). Access: read. REST: `POST /api/v1/bark/get_lead`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads or list_responses. |

Returns the full request before you buy it: the customer's answers, location, credit cost, how many professionals have responded and the signals Bark shows. The customer's contact details stay hidden until contact_lead. Read only: no credits are spent.

Example response:

```json
{
  "lead_id": "61842207",
  "service": "Wedding Photography",
  "location": "Leeds, LS1",
  "credits": 12,
  "responses_so_far": 2,
  "signals": [
    "urgent",
    "verified_phone"
  ],
  "answers": {
    "Event date": "2027-06-12",
    "Hours of coverage": "Full day"
  }
}
```

### list_responses

Leads you contacted (My Responses), with status, contact details and your notes. Access: read. REST: `POST /api/v1/bark/list_responses`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `status` | enum | no | pending, hired or all. Default: pending. |
| `since` | date | no | Only leads contacted on or after this date. |
| `limit` | integer | no | 1 to 100. Default: 50. |

Returns the leads you contacted, as in My Responses, with their status, the customer's contact details and your notes. Use status to see only the open ones. Read only.

Example response:

```json
{
  "responses": [
    {
      "lead_id": "61842207",
      "service": "Wedding Photography",
      "customer": "Jordan",
      "status": "pending",
      "contacted": "2026-10-11",
      "note": "Sent estimate"
    },
    {
      "lead_id": "61790415",
      "service": "Kitchen Fitting",
      "customer": "Sam",
      "status": "pending",
      "contacted": "2026-10-08",
      "note": ""
    }
  ]
}
```

### get_response

One contacted lead: customer's name, phone and email, request, estimate sent and status. Access: read. REST: `POST /api/v1/bark/get_response`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads or list_responses. |

Returns one contacted lead with the customer's name, phone and email, the original request, the estimate you sent and the current status. Read only.

Example response:

```json
{
  "lead_id": "61842207",
  "status": "pending",
  "service": "Wedding Photography",
  "customer": {
    "name": "Jordan",
    "email": "client@example.com",
    "phone": "+44 7700 900123"
  },
  "estimate": {
    "amount": "450",
    "message": "Full day coverage, edited gallery included."
  }
}
```

### get_credit_balance

Credits available now, from My Credits. Access: read. REST: `POST /api/v1/bark/get_credit_balance`.

No parameters.

Returns the credits available on your account now, as My Credits shows them. Read only.

Example response:

```json
{
  "credits": 88
}
```

### list_invoices

Invoices from Invoices and billing details, with date, amount and a download link. Access: read. REST: `POST /api/v1/bark/list_invoices`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `since` | date | no | Only invoices on or after this date. |

Returns your Bark invoices with date, amount and a download link. Use since to limit the range. Read only.

Example response:

```json
{
  "invoices": [
    {
      "invoice_id": "INV-2026-0914",
      "date": "2026-09-14",
      "amount": "50.00",
      "download_url": "https://www.bark.com/invoices/example-0914.pdf"
    },
    {
      "invoice_id": "INV-2026-1002",
      "date": "2026-10-02",
      "amount": "100.00",
      "download_url": "https://www.bark.com/invoices/example-1002.pdf"
    }
  ]
}
```

### get_lead_preferences

Your services, locations and coverage areas from Settings > Lead Preferences. Access: read. REST: `POST /api/v1/bark/get_lead_preferences`.

No parameters.

Returns the services, locations and coverage areas that decide which leads Bark sends you, from Lead Preferences in Settings. Read only.

Example response:

```json
{
  "services": [
    "Web Design",
    "Wedding Photography"
  ],
  "locations": [
    {
      "place": "Leeds",
      "radius_miles": 25
    }
  ]
}
```

### add_note

Private note on a contacted lead, to track the job. The customer does not see it. Access: write. REST: `POST /api/v1/bark/add_note`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads or list_responses. |
| `note` | string | yes | Note text. |

Adds a private note to a contacted lead. The customer is not told, so this tool does not ask for your OK, and you can change the note with another call.

Example response:

```json
{
  "lead_id": "61842207",
  "note": "Wants a second shooter",
  "saved": true
}
```

### update_response_status

Move a contacted lead to pending, hired or archived. Access: write, asks the user first. REST: `POST /api/v1/bark/update_response_status`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads or list_responses. |
| `status` | enum | yes | pending, hired or archived. |

Moves a contacted lead to pending, hired or archived and returns the new status. A lead must be hired before request_review works. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "lead_id": "61790415",
  "status": "hired"
}
```

### contact_lead

Spend credits to contact a lead and get their name, phone and email. Bark notifies the customer. Access: write, asks the user first. REST: `POST /api/v1/bark/contact_lead`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads or list_responses. |
| `max_credits` | integer | no | Fail instead of buying if the lead costs more. |

Spends credits to contact the lead and returns the customer's name, phone and email. Bark notifies the customer. Set max_credits and the call fails instead of buying a lead that costs more. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "lead_id": "61842207",
  "status": "pending",
  "credits_spent": 12,
  "credits_left": 88,
  "service": "Wedding Photography",
  "location": "Leeds, LS1",
  "customer": {
    "name": "Jordan",
    "email": "client@example.com",
    "phone": "+44 7700 900123"
  }
}
```

### skip_lead

Mark a lead Not interested. No credits are charged; Bark tells the customer politely. Access: write, asks the user first. REST: `POST /api/v1/bark/skip_lead`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads or list_responses. |

Marks the lead Not interested. No credits are charged, and Bark tells the customer politely. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "lead_id": "61841930",
  "status": "skipped",
  "credits_spent": 0
}
```

### send_estimate

Send a quote on a contacted lead. Bark notifies the customer. Access: write, asks the user first. REST: `POST /api/v1/bark/send_estimate`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads or list_responses. |
| `amount` | string | yes | Quoted price in your Bark currency, e.g. 450. |
| `message` | string | no | What the price includes. |

Sends a quote on a lead you already contacted. Bark notifies the customer. The amount is in your Bark currency. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "lead_id": "61842207",
  "amount": "450",
  "message": "Full day coverage, edited gallery included.",
  "sent": true
}
```

### send_message

Email or text a contacted customer from My Responses, as free text or one of your saved templates. Access: write, asks the user first. REST: `POST /api/v1/bark/send_message`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads or list_responses. |
| `channel` | enum | yes | email or sms. |
| `body` | string | no | Message text. Required unless template is set. |
| `template` | string | no | Name of a saved Email or SMS template. |

Emails or texts a customer you already contacted, as free text in body or from one of your saved Email or SMS templates. Required: body or template. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "lead_id": "61842207",
  "channel": "sms",
  "sent": true
}
```

### request_review

Invite a customer who hired you to review you on Bark. The lead must be marked hired. Access: write, asks the user first. REST: `POST /api/v1/bark/request_review`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads or list_responses. |

Invites the customer to review you on Bark. The lead must be marked hired first, otherwise the call fails. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "lead_id": "61790415",
  "review_requested": true
}
```

## How do I connect Bark to Claude Code, Codex or Cursor?

Connecting Bark takes three steps: request access, sign in to Bark once, then add one MCP server or call the REST API with the same key.

### Connect Bark to your agent.

1. **Create an account** Sign up and add Bark in the console. Your API key is there too.

2. **Sign in to Bark once** Open the connect page from the console and sign in to Bark the way you always do. We keep the session, never your password, and you can revoke it anytime.

3. **Add Cotlet to your agent** Paste the snippet for your client. The same server and key serve every app you connect, so you do this once.

   Claude Code:

```
claude mcp add --transport http cotlet \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
```

   Cursor:

```
{
  "mcpServers": {
    "cotlet": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": {
        "Authorization": "Bearer ${COTLET_API_KEY}"
      }
    }
  }
}
```

   Codex:

```
# ~/.codex/config.toml
[mcp_servers.cotlet]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
```

4. **Ask your agent** Ask in plain words. Your agent finds the Bark tools on the server and calls them for you; anything that reaches other people waits for your OK unless you switch that off for a tool.

```
Every morning, check new Bark leads for Web Design, shortlist the ones under 15 credits with fewer than 3 responses, and mark the ones outside my area Not interested after I confirm.
```

### Call Bark from your scripts.

1. **Export your API key** Your scripts use the same API key as your agent. Keep it in an environment variable, never in your code.

```
export COTLET_API_KEY="cotlet_..."
```

2. **Call a tool** Every tool is a POST endpoint at /api/v1/bark/{tool}. Send its parameters as JSON, exactly as listed in the endpoints above.

```
curl https://cotlet.dev/api/v1/bark/contact_lead \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"lead_id":"61842207","max_credits":15}'
```

3. **Read the result** You get plain JSON back, ready for your script. A failed call costs nothing.

```
{
  "lead_id": "61842207",
  "status": "pending",
  "credits_spent": 12,
  "credits_left": 88,
  "service": "Wedding Photography",
  "location": "Leeds, LS1",
  "customer": {
    "name": "Jordan",
    "email": "client@example.com",
    "phone": "+44 7700 900123"
  }
}
```

## Why use Cotlet for Bark?

**Built for agents**

- One MCP server for every app you connect.
- The same tools as a REST API for scripts and cron jobs.
- Works with Claude Code, Codex and Cursor.

**Your login stays yours**

- You sign in to Bark yourself. We keep only the session, encrypted with AES-256.
- The model never sees a login.
- No stored passwords, no CAPTCHA solving, no MFA bypass.

**You stay in control**

- Pick read only, or read and write.
- Anything that reaches other people waits for your OK, unless you switch it off per tool.
- Revoke access in one click.

**Kept working for you**

- We test every integration daily.
- When Bark changes, the tool pauses until we fix it.
- Failed calls cost nothing.

## Is there a Bark MCP server on GitHub?

The Bark app on Zapier buys leads, sets quotes, skips leads and pushes purchased leads to a CRM; no Bark MCP server on GitHub turned up. Zapier is the realistic option today, and Cotlet adds what it lacks.

|  | Zapier | Cotlet |
|---|---|---|
| Setup | Connect Zapier in Bark Settings, then build a Zap per workflow | Request access, sign in to Bark once in your browser, add one MCP server or API key |
| What it can do | New lead trigger, buy, skip, quote, note, status, credit balance | Also My Responses, email and SMS to buyers, review requests, invoices |
| Ad hoc questions | Fixed one-way Zaps, no two-way sync | Your agent asks anything, any time |
| When Bark changes | Bark maintains its own Zapier app | Our team tests it daily and fixes it for you; failed calls are free |
| When the session expires | Reconnect the account in Zapier | We keep it alive; if Bark logs you out, your agent gets a link to sign in again |
| Where it runs | Zapier cloud, Zapier tasks per run | Hosted: Claude Code, Codex, Cursor, n8n and scripts, also on a schedule |
| Price | Free plan with limited Zaps, paid plans above | Free 7-day trial with 5,000 credits, then credits per call |

### Which one fits you

**Pick Cotlet if**

- you are not a developer, or you do not want to maintain a server
- you need it to keep working when Bark changes, without checking it yourself
- your agent or a script should run it on a schedule, also while your computer is off

**Pick an open-source server if**

- you are comfortable installing, updating and fixing it yourself
- you want the session to stay on your own computer
- you only need it now and then, from one MCP client

## How much does the Bark API cost?

Free 7-day trial with 5,000 credits, no card needed. After that, the Bark API comes with the Cotlet plan, from $29 a month for 3,000 credits, with no limit on apps. Each month's credits stay valid for 3 months, so unused credits add up.

| Size | Price | Credits / month | Per credit |
|---|---|---|---|
| Solo | $29/mo | 3,000 | about $0.0097 |
| Pro | $99/mo | 12,000 | about $0.0083 |
| Agency | $299/mo | 40,000 | $0.0075 |

Each successful call uses credits for the work it takes; failed calls and timeouts cost nothing. A hard spend cap is on by default. Authenticate with the `Authorization: Bearer` header. [See full pricing](https://cotlet.dev/pricing)

## How Cotlet holds your access

Cotlet hosts MCP servers and REST APIs for apps with no usable API. Your agent works in your own Bark account.

- **Company details:** The legal name, address and registration numbers of the company behind Cotlet are in the Terms of service. [Terms](https://cotlet.dev/terms)
- **Your session:** You sign in to Bark yourself, in your browser. We keep only the session, never your password: encrypted with AES-256 in an EU vault, isolated to your account and used only when your agent calls a Bark tool you allowed. When it expires, your agent gives you a link to sign in again. [Security](https://cotlet.dev/security)
- **Revoking access:** Disconnect Bark in your dashboard: the session is deleted and access ends at once. Actions that reach other people wait for your OK unless you switch that off per tool.
- **What we never do:** Store passwords, solve CAPTCHAs or bypass MFA.
- **Bark's terms:** You use your own Bark account and stay responsible for following Bark's terms. Cotlet is independent and not affiliated with Bark. [Terms](https://cotlet.dev/terms)
- **Contact:** Questions about the company, security or an app: [contact@cotlet.dev](mailto:contact@cotlet.dev)

## Frequently asked questions

**How do I get access?**

Request access and pick Bark. Cotlet reviews each request and emails you your API key.

**Do I need to be technical?**

No. You sign in to Bark once in your browser and paste one command into your agent, or one URL into n8n. Your agent can walk you through it. There is no server to install, update or fix.

**Is a hosted server safe? My Bark session would leave my computer.**

Cotlet keeps your Bark session encrypted with AES-256 in an EU vault, isolated to your account and used only for the tools you allow: read only, or read and write. The AI model never sees it, and you revoke it in one click. A local server keeps the same session in a file on your computer, readable by any program you run, and needs a fresh sign-in whenever it expires.

**Does it work with a free Bark account?**

It works with the professional (seller) account you sign in with. Bark charges credits for each lead you contact, and contact_lead spends them only after your OK by default.

**Can my agent post or send messages in Bark without asking me?**

No. Every call to update_response_status, contact_lead, skip_lead, send_estimate, send_message or request_review waits for your OK by default. For scheduled automations you can switch confirmation off per tool in your dashboard, for example only for approvals. add_note runs without asking, because it sends nothing to anyone and one call undoes it.

**Can I use the Bark API in n8n?**

Yes. Add https://cotlet.dev/mcp/v1 with your API key in n8n's MCP Client node, or call https://cotlet.dev/api/v1/bark/{tool} from the HTTP Request node.
