Live

Bark logo

Bark API and MCP server

bark.com

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.

Endpoints
14 7 read, 7 write
Updated
How Cotlet connects your agent to Bark
  1. Your agent

    Claude Code, Codex, Cursor or a script

  2. Cotlet

    MCP server and REST API · 14 endpoints

    cotlet.dev/mcp/v1

  3. Bark logo

    Bark

    Signed in as you on bark.com

You sign in once. We never store your password.

Official API

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.

What Bark's own tools do compared with Cotlet
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 · Bark Help: Managing your leads dashboard · Bark on Zapier: triggers and actions · Bark Help: SMS Templates · Bark Help: Personalising your one-click response

Common use cases

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 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. Your agent calls get_lead_preferences, list_leads, get_lead, get_credit_balance and skip_lead.

  • 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. Your agent calls get_lead, contact_lead, send_message, send_estimate and add_note.

  • 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. Your agent calls list_responses, get_response, send_message, add_note, update_response_status and 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. Your agent calls list_responses, update_response_status and request_review.

  • Track credits and invoices Runs: Weekly

    How many credits do I have left, and what did I pay Bark last month? Your agent calls get_credit_balance and list_invoices.

Endpoints

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.

All endpoints · 14 total

missing one? request an endpoint

  • POST

    list_leads

    read

    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.

    POST /api/v1/bark/list_leads

    Input

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

    Example response

    {
      "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"
        }
      ]
    }
  • POST

    get_lead

    read

    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.

    POST /api/v1/bark/get_lead

    Input

    Input: get_lead
    Parameter Type Description
    lead_id required string Lead ID from list_leads or list_responses.

    Example response

    {
      "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"
      }
    }
  • POST

    list_responses

    read

    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.

    POST /api/v1/bark/list_responses

    Input

    Input: list_responses
    Parameter Type Description
    status enum pending, hired or all. Default: pending.
    since date Only leads contacted on or after this date.
    limit integer 1 to 100. Default: 50.

    Example response

    {
      "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": ""
        }
      ]
    }
  • POST

    get_response

    read

    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.

    POST /api/v1/bark/get_response

    Input

    Input: get_response
    Parameter Type Description
    lead_id required string Lead ID from list_leads or list_responses.

    Example response

    {
      "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."
      }
    }
  • POST

    get_credit_balance

    read

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

    POST /api/v1/bark/get_credit_balance

    Input

    No parameters.

    Example response

    {
      "credits": 88
    }
  • POST

    list_invoices

    read

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

    POST /api/v1/bark/list_invoices

    Input

    Input: list_invoices
    Parameter Type Description
    since date Only invoices on or after this date.

    Example response

    {
      "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"
        }
      ]
    }
  • POST

    get_lead_preferences

    read

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

    POST /api/v1/bark/get_lead_preferences

    Input

    No parameters.

    Example response

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

    add_note

    write

    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.

    POST /api/v1/bark/add_note

    Input

    Input: add_note
    Parameter Type Description
    lead_id required string Lead ID from list_leads or list_responses.
    note required string Note text.

    Example response

    {
      "lead_id": "61842207",
      "note": "Wants a second shooter",
      "saved": true
    }
  • POST

    update_response_status

    write

    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.

    POST /api/v1/bark/update_response_status

    Input

    Input: update_response_status
    Parameter Type Description
    lead_id required string Lead ID from list_leads or list_responses.
    status required enum pending, hired or archived.

    Example response

    {
      "lead_id": "61790415",
      "status": "hired"
    }
  • POST

    contact_lead

    write

    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.

    POST /api/v1/bark/contact_lead

    Input

    Input: contact_lead
    Parameter Type Description
    lead_id required string Lead ID from list_leads or list_responses.
    max_credits integer Fail instead of buying if the lead costs more.

    Example response

    {
      "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"
      }
    }
  • POST

    skip_lead

    write

    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.

    POST /api/v1/bark/skip_lead

    Input

    Input: skip_lead
    Parameter Type Description
    lead_id required string Lead ID from list_leads or list_responses.

    Example response

    {
      "lead_id": "61841930",
      "status": "skipped",
      "credits_spent": 0
    }
  • POST

    send_estimate

    write

    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.

    POST /api/v1/bark/send_estimate

    Input

    Input: send_estimate
    Parameter Type Description
    lead_id required string Lead ID from list_leads or list_responses.
    amount required string Quoted price in your Bark currency, e.g. 450.
    message string What the price includes.

    Example response

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

    send_message

    write

    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.

    POST /api/v1/bark/send_message

    Input

    Input: send_message
    Parameter Type Description
    lead_id required string Lead ID from list_leads or list_responses.
    channel required enum email or sms.
    body string Message text. Required unless template is set.
    template string Name of a saved Email or SMS template.

    Example response

    {
      "lead_id": "61842207",
      "channel": "sms",
      "sent": true
    }
  • POST

    request_review

    write

    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.

    POST /api/v1/bark/request_review

    Input

    Input: request_review
    Parameter Type Description
    lead_id required string Lead ID from list_leads or list_responses.

    Example response

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

Setup

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 over MCP

  1. 1

    Create an account

    Sign up and add Bark in the console. Your API key is there too.

  2. 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. 3

    Add Cotlet to your agent

    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"

    Paste the snippet for your client. The same server and key serve every app you connect, so you do this once.

  4. 4

    Ask your agent

    Prompt

    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.

    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.

Call Bark over REST

  1. 1

    Export your API key

    Shell

    export COTLET_API_KEY="cotlet_..."

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

  2. 2

    Call a tool

    curl

    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}'

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

  3. 3

    Read the result

    Example response · contact_lead

    {
      "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"
      }
    }

    You get plain JSON back, ready for your script. A failed call costs nothing.

Why Cotlet

Why use Cotlet for Bark? Hosted, safe and kept working.

  • 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.

Alternatives

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.

Cotlet compared with a Zapier
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

For AI agents

Cotlet for Bark in plain text The facts on this page in one block: status, endpoints, access, pricing, contact.

Endpoint health

verified 2h ago

  • list_leads passing
  • get_lead passing
  • list_responses passing
  • get_response passing
  • get_credit_balance passing

+ 9 more endpoints

14/14 passing latest check self-healing

bark.txt

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.
Full page as Markdown

Automations

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 to run Bark automations through Cotlet, and how to schedule them
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.

Pricing & limits

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.

Cotlet plan sizes: price, monthly credits and price per credit
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.

About Cotlet

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
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
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
Contact
Questions about the company, security or an app: contact@cotlet.dev
About Cotlet

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.

Give your agent access to Bark.

Request access and pick it. We review each request and email you your API key. Free 7-day trial with 5,000 credits, no card needed.