# REsimpli API and MCP server

> REsimpli has a limited Open API, included on every plan since REsimpli 6.0 (checked 11 Oct 2026). It reads leads, buyers, agents, vendors, call logs and appointments and can create or delete leads, but cannot update a lead's status, notes, tags, tasks or assignment.

All-in-one CRM for real estate investors: leads and pipelines, list stacking, skip tracing, automations, calls and texts in one place.

## What is the REsimpli API?

Cotlet's REsimpli API exposes 15 endpoints for your own REsimpli account: list leads, get lead, list pipelines, list automations, get skip trace results, create lead, update lead status, add lead note, tag lead, assign lead, create task, skip trace lead, enroll lead in automation, remove lead from automation and send SMS. The list_leads endpoint returns leads with property address, pipeline, status, assignee and tags. Each endpoint takes simple JSON inputs like lead_id, pipeline_id or automation_id and works both as an MCP tool for agents and as a REST call for scripts.

- **Category:** [Real estate](https://cotlet.dev/integrations/category/real-estate)
- **Endpoints:** 15 (5 read, 10 write)
- **Updated:** 2026-10-11

REsimpli has a limited Open API, included on every plan since REsimpli 6.0 (checked 11 Oct 2026). Cotlet is a hosted MCP server and REST API for REsimpli with 15 endpoints (5 read, 10 write): your AI agent signs in as you and does the work.

## Does REsimpli have an official API?

REsimpli has a limited Open API, included on every plan since REsimpli 6.0 (checked 11 Oct 2026). It reads leads, buyers, agents, vendors, call logs and appointments and can create or delete leads, but cannot update a lead's status, notes, tags, tasks or assignment.

| Task | REsimpli official | Cotlet |
|---|---|---|
| Find and read leads | Yes: Lead list endpoint, 500 requests per minute per key | Yes |
| Create a lead | Yes: Open API can create leads; Zapier also covers lead intake | Yes |
| Move a lead to another pipeline status | No: Planned for a later API update | Yes |
| Add notes and tags to a lead | No: Planned for a later API update | Yes |
| Assign a lead and set up tasks | No: Planned for a later API update | Yes |
| Enroll a lead in an automation (drip) | No: In the app only: Manual Assignment automations, bulk add up to 100 records a day per account | Yes |
| Skip trace a lead and read the results | No | Yes |
| Text a lead from your campaign number | No | Yes |

Sources: [REsimpli help: Open API and Integrations](https://help.resimpli.com/en/articles/16915306-open-api-and-integrations), [REsimpli Open API endpoint tester](https://developer.resimpli.com), [REsimpli help: pay-per-lead via Zapier](https://help.resimpli.com/en/articles/12001660-how-to-integrate-pay-per-lead-into-your-resimpli-account-via-zapier-motivatedsellers-ispeedtolead-propertyleads), [REsimpli 6.0 on Zapier](https://zapier.com/apps/resimpli-1/integrations), [REsimpli help: Understanding automation triggers](https://help.resimpli.com/en/articles/16762612-understanding-automation-triggers-in-resimpli)

## For AI agents

```text
REsimpli has a limited Open API, included on every plan since REsimpli 6.0 (checked 11 Oct 2026). It reads leads, buyers, agents, vendors, call logs and appointments and can create or delete leads, but cannot update a lead's status, notes, tags, tasks or assignment.
Cotlet provides a hosted MCP server and REST API for REsimpli: 15 tools (5 read, 10 write).
Access       Request access at https://cotlet.dev/app/signup?app=resimpli; we email the API key.

MCP server   https://cotlet.dev/mcp/v1
REST base    https://cotlet.dev/api/v1/resimpli
Auth         Authorization: Bearer <COTLET_API_KEY>. Listing endpoints and schemas needs no key; calling an endpoint needs one.
Tools        list_leads, get_lead, list_pipelines, list_automations, get_skip_trace_results, create_lead, update_lead_status, add_lead_note, tag_lead, assign_lead, create_task, skip_trace_lead, enroll_lead_in_automation, remove_lead_from_automation, send_sms
Confirm      skip_trace_lead, enroll_lead_in_automation, send_sms (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/resimpli-api-mcp-server.md

How access works:
1. The user requests access at https://cotlet.dev/app/signup?app=resimpli (REsimpli is pre-selected). Each request is reviewed and the API key is sent by email.
2. The user signs in to REsimpli 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 REsimpli 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 REsimpli 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 REsimpli's terms; Cotlet is not affiliated with REsimpli.
```

## What can an AI agent do in REsimpli?

Cotlet is best for real estate investors who work leads in REsimpli and want their AI agent to update statuses, enroll drips and skip trace without running or fixing a server.

- **[Update lead statuses and notes after a calling session](https://cotlet.dev/integrations/resimpli-api-mcp-server/update-lead-status)** (runs: daily): "Go through the REsimpli leads I called today. Move the accepted offers to Under Contract with the price in a note, move "call me next week" sellers to Follow Up with a call-back task for Sam, and list the ones that should go to Dead Leads so I can pick the reason." → `list_pipelines`, `list_leads`, `get_lead`, `update_lead_status`, `add_lead_note`, `create_task`
- **[Reactivate dead leads with a drip](https://cotlet.dev/integrations/resimpli-api-mcp-server/reactivate-dead-leads-with-a-drip)** (runs: weekly): "Find Dead Leads from the last two quarters whose reason was not "property sold", skip anyone already in an automation, and enroll up to 50 of them in my Reactivation drip this week. Tag them Reactivation Q4." → `list_pipelines`, `list_leads`, `get_lead`, `list_automations`, `enroll_lead_in_automation`, `tag_lead`
- **Skip trace new leads** (runs: daily): "Skip trace the 10 newest leads without a phone number and tell me who matched." → `list_leads`, `skip_trace_lead`, `get_skip_trace_results`
- **Assign leads and set call-back tasks** (runs: daily): "Assign the new Facebook leads to Sam and set a call-back task for tomorrow at 10:00." → `list_leads`, `assign_lead`, `create_task`
- **Import leads and tag them** (runs: weekly): "Add the sellers from driving.csv as leads and tag them D4D October." → `create_lead`, `tag_lead`

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

Yes. Cotlet does not replace your automation platform: it gives it a REsimpli 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 update lead statuses and notes after a calling session, 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/resimpli/{tool}. | Schedule Trigger node. |
| Make | HTTP module: POST https://cotlet.dev/api/v1/resimpli/{tool} with an Authorization: Bearer header and a JSON body. | Scenario schedule. |
| Zapier | Webhooks by Zapier: POST https://cotlet.dev/api/v1/resimpli/{tool} with the same header and body. | Schedule by Zapier trigger. |
| Your own script | POST https://cotlet.dev/api/v1/resimpli/{tool} with your API key. | cron or GitHub Actions. |

## Tools

**For AI agents:** Every endpoint and its schema is public. The 15 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 REsimpli.

### list_leads

Leads with property address, pipeline, status, assignee and tags. Access: read. REST: `POST /api/v1/resimpli/list_leads`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `search` | string | no | Name, phone, email or property address. |
| `pipeline_id` | string | no | Pipeline ID from list_pipelines. |
| `status_ids` | string[] | no | Status IDs from list_pipelines. |
| `tag` | string | no | Only leads with this tag. |
| `page` | integer | no | Page number. Default: 1. |
| `limit` | integer | no | 1 to 100. Default: 25. |

Lists leads from your account, newest first. Filter by search text, pipeline, status IDs or tag. Pages hold up to 100 leads; raise page for the next one. Use lead_id from each item in the other tools.

Example response:

```json
{
  "leads": [
    {
      "lead_id": "66f1c2a9e4b0a1d3c8f20417",
      "name": "Dana Whitfield",
      "property_address": "12 Oak St, Columbus, OH 43215",
      "pipeline": "Acquisitions",
      "status": "Contact Made",
      "assignee": "Sam Rivera",
      "tags": [
        "D4D October"
      ]
    }
  ],
  "page": 1,
  "has_more": true
}
```

### get_lead

Full lead: contacts, property, status, notes, tags, tasks and recent activity. Access: read. REST: `POST /api/v1/resimpli/get_lead`.

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

Returns one lead with contacts, property, current status, notes, tags, open tasks, the automations it is in and recent activity. Use it before changing a lead so your agent sees what your team already did.

Example response:

```json
{
  "lead_id": "66f1c2a9e4b0a1d3c8f20417",
  "name": "Dana Whitfield",
  "phones": [
    "6145550142"
  ],
  "property_address": "12 Oak St, Columbus, OH 43215",
  "pipeline": "Acquisitions",
  "status": "Contact Made",
  "assignee": {
    "user_id": "u_41",
    "name": "Sam Rivera"
  },
  "tags": [
    "D4D October"
  ],
  "notes": [
    {
      "text": "Open to an offer this week.",
      "created_at": "2026-10-08T15:10:00-04:00"
    }
  ],
  "tasks": [],
  "automations": []
}
```

### list_pipelines

Your pipelines and the statuses in each, with IDs, as set up in your account. Access: read. REST: `POST /api/v1/resimpli/list_pipelines`.

No parameters.

Returns your pipelines in the order set in your account, each with its statuses in order. Names and IDs are yours, not defaults. Use the IDs in list_leads and update_lead_status.

Example response:

```json
{
  "pipelines": [
    {
      "pipeline_id": "pl_acq",
      "name": "Acquisitions",
      "statuses": [
        {
          "status_id": "64a0d5b2c91e7f0012ab33a1",
          "name": "Contact Made"
        },
        {
          "status_id": "64a0d5b2c91e7f0012ab33c6",
          "name": "Under Contract"
        }
      ]
    }
  ]
}
```

### list_automations

Your lead automations, including drips, with name and whether each is on. Access: read. REST: `POST /api/v1/resimpli/list_automations`.

No parameters.

Returns the automations in your account with their name and on or off state. Pass automation_id to enroll_lead_in_automation.

Example response:

```json
{
  "automations": [
    {
      "automation_id": "65b7e0a3d2c4f1009e8a1b52",
      "name": "Reactivation",
      "active": true
    }
  ]
}
```

### get_skip_trace_results

Phone numbers and emails found for a lead. Access: read. REST: `POST /api/v1/resimpli/get_skip_trace_results`.

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

Returns the phone numbers and emails the skip traces on this lead found. A lead with no skip trace returns an empty list. It does not start a skip trace; skip_trace_lead does.

Example response:

```json
{
  "lead_id": "66f1c2a9e4b0a1d3c8f20417",
  "results": [
    {
      "phones": [
        "6145550142",
        "6145550177"
      ],
      "emails": [
        "dana.w@example.com"
      ]
    }
  ]
}
```

### create_lead

New seller lead with contact details and property address. Access: write. REST: `POST /api/v1/resimpli/create_lead`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `first_name` | string | yes | Seller first name. |
| `last_name` | string | no | Seller last name. |
| `phone` | string | yes | 10-digit phone number. |
| `email` | string | no | Seller email. |
| `property_address` | string | no | Full property address. |
| `marketing_campaign_id` | string | no | Campaign the lead came from. |

Creates a lead and returns its ID and the status it starts in. It reaches no one. It runs without asking by default, and delete the lead in REsimpli to undo it.

Example response:

```json
{
  "lead_id": "66f1c2a9e4b0a1d3c8f20499",
  "name": "Dana Whitfield",
  "property_address": "12 Oak St, Columbus, OH 43215",
  "status": "New Lead",
  "created_at": "2026-10-11T09:12:00-04:00"
}
```

### update_lead_status

Move a lead to another status, or to a status in another pipeline. Access: write. REST: `POST /api/v1/resimpli/update_lead_status`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads. |
| `status_id` | string | yes | Status ID from list_pipelines. |
| `pipeline_id` | string | no | Target pipeline, if it changes. |

Moves one lead to another status and returns the new and previous status. Pass pipeline_id to move it to a status in another pipeline. It reaches no one directly and runs without asking by default; one more call moves the lead back.

Example response:

```json
{
  "lead_id": "66f1c2a9e4b0a1d3c8f20417",
  "property_address": "12 Oak St, Columbus, OH 43215",
  "pipeline": "Acquisitions",
  "status": "Under Contract",
  "previous_status": "Contact Made",
  "updated_at": "2026-10-11T14:32:05-04:00"
}
```

### add_lead_note

Add a note to the lead, visible to your team. Access: write. REST: `POST /api/v1/resimpli/add_lead_note`.

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

Adds a note to the lead's history under your name. Your team sees it; the seller does not. It runs without asking by default.

Example response:

```json
{
  "lead_id": "66f1c2a9e4b0a1d3c8f20417",
  "note_id": "n_9d21",
  "text": "Offer accepted at $142,000.",
  "created_at": "2026-10-11T14:33:10-04:00"
}
```

### tag_lead

Add or remove tags on a lead. Access: write. REST: `POST /api/v1/resimpli/tag_lead`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads. |
| `add` | string[] | no | Tags to add. |
| `remove` | string[] | no | Tags to remove. |

Adds and removes tags on one lead in a single call and returns the lead's tags after the change. It runs without asking by default and one more call reverses it.

Example response:

```json
{
  "lead_id": "66f1c2a9e4b0a1d3c8f20499",
  "tags": [
    "D4D October"
  ]
}
```

### assign_lead

Assign a lead to a team member. Access: write. REST: `POST /api/v1/resimpli/assign_lead`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads. |
| `user_id` | string | yes | Team member ID from get_lead. |

Assigns the lead to one team member and replaces the current assignee. The call fails if the user_id is not on your team. It runs without asking by default and one more call reassigns it.

Example response:

```json
{
  "lead_id": "66f1c2a9e4b0a1d3c8f20417",
  "assignee": {
    "user_id": "u_41",
    "name": "Sam Rivera"
  }
}
```

### create_task

Set up a task on a lead with a due time and assignee. Access: write. REST: `POST /api/v1/resimpli/create_task`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads. |
| `title` | string | yes | What to do. |
| `due_at` | datetime | yes | ISO 8601 with time zone. |
| `assignee_id` | string | no | Team member. Default: you. |

Creates a task on the lead with a title, due time and assignee, and returns its ID. The due time needs a time zone. The assignee is you unless you name someone else. It runs without asking by default.

Example response:

```json
{
  "task_id": "t_5530",
  "lead_id": "66f1c2a9e4b0a1d3c8f20417",
  "title": "Call back about 12 Oak St",
  "due_at": "2026-10-12T10:00:00-04:00",
  "assignee": "You"
}
```

### skip_trace_lead

Run a skip trace on the lead's property owner. Access: write, asks the user first. REST: `POST /api/v1/resimpli/skip_trace_lead`.

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

Starts a skip trace for the lead in your REsimpli account and returns once it is queued; read the outcome with get_skip_trace_results. REsimpli's own skip tracing pricing applies. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "lead_id": "66f1c2a9e4b0a1d3c8f20417",
  "status": "queued",
  "requested_at": "2026-10-11T09:20:00-04:00"
}
```

### enroll_lead_in_automation

Add a lead to an automation; its steps can text, email or mail the seller. Access: write, asks the user first. REST: `POST /api/v1/resimpli/enroll_lead_in_automation`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads. |
| `automation_id` | string | yes | Automation ID from list_automations. |

Adds one lead to an automation and returns its state. The automation's steps can text, email or mail the seller on the schedule you set in REsimpli. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "lead_id": "66f1c2a9e4b0a1d3c8f20417",
  "automation_id": "65b7e0a3d2c4f1009e8a1b52",
  "status": "enrolled"
}
```

### remove_lead_from_automation

Stop a running automation for one lead. Steps not yet sent are skipped. Access: write. REST: `POST /api/v1/resimpli/remove_lead_from_automation`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads. |
| `automation_id` | string | yes | Automation ID from get_lead. |

Stops the automation for one lead. Steps already sent stay sent; the rest are skipped. It reaches no one, so it runs without asking by default.

Example response:

```json
{
  "lead_id": "66f1c2a9e4b0a1d3c8f20417",
  "automation_id": "65b7e0a3d2c4f1009e8a1b52",
  "status": "removed"
}
```

### send_sms

Text a lead from your REsimpli campaign number. Shows in the lead's inbox. Access: write, asks the user first. REST: `POST /api/v1/resimpli/send_sms`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `lead_id` | string | yes | Lead ID from list_leads. |
| `body` | string | yes | Message text. |
| `to_phone` | string | no | Which of the lead's numbers. Default: primary. |

Sends a text to one lead from your REsimpli number, and the message shows in the lead's conversation. Use to_phone to pick one of the lead's numbers. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "lead_id": "66f1c2a9e4b0a1d3c8f20417",
  "message_id": "sms_7712",
  "to": "6145550142",
  "status": "sent",
  "sent_at": "2026-10-11T09:25:00-04:00"
}
```

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

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

### Connect REsimpli to your agent.

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

2. **Sign in to REsimpli once** Open the connect page from the console and sign in to REsimpli 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 REsimpli 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.

```
Go through the REsimpli leads I called today. Move the accepted offers to Under Contract with the price in a note, move "call me next week" sellers to Follow Up with a call-back task for Sam, and list the ones that should go to Dead Leads so I can pick the reason.
```

### Call REsimpli 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/resimpli/{tool}. Send its parameters as JSON, exactly as listed in the endpoints above.

```
curl https://cotlet.dev/api/v1/resimpli/update_lead_status \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"lead_id":"66f1c2a9e4b0a1d3c8f20417","status_id":"64a0d5b2c91e7f0012ab33c6"}'
```

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

```
{
  "lead_id": "66f1c2a9e4b0a1d3c8f20417",
  "property_address": "12 Oak St, Columbus, OH 43215",
  "pipeline": "Acquisitions",
  "status": "Under Contract",
  "previous_status": "Contact Made",
  "updated_at": "2026-10-11T14:32:05-04:00"
}
```

## Why use Cotlet for REsimpli?

**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 REsimpli 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 REsimpli changes, the tool pauses until we fix it.
- Failed calls cost nothing.

## Is there a REsimpli MCP server on GitHub?

REsimpli's own Open API is included on every plan and reads records and creates leads, and Zapier covers lead intake. Neither updates a lead or starts an automation. Cotlet works in your signed-in REsimpli account, so it can do what you do in the app.

|  | REsimpli Open API | Cotlet |
|---|---|---|
| Setup | Create the API key in Settings, then write and host your own client | Request access, sign in to REsimpli once, add one MCP server or API key |
| Status, notes, tags, tasks | Cannot be updated today, planned for a later API update | Change status, add notes and tags, assign leads, set up tasks |
| Automations, texts, skip tracing | No endpoint to enroll a lead, send a text or run a skip trace; API changes do not trigger automations | Enroll in automations, text and skip trace, each one confirmed by you by default |
| AI agents | Official MCP server announced, not available yet, no date | Hosted MCP for Claude Code, Codex and Cursor, plus REST for scripts and n8n |
| When REsimpli changes | REsimpli maintains the API and keeps it stable | Our team tests it daily and fixes it for you; failed calls are free |
| Your REsimpli session | Not needed, the API key is the credential | Encrypted in an EU vault, never your password, revoked in one click |
| Price | Free, included on every plan | 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 REsimpli 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 REsimpli API cost?

Free 7-day trial with 5,000 credits, no card needed. After that, the REsimpli 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 REsimpli 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 REsimpli 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 REsimpli tool you allowed. When it expires, your agent gives you a link to sign in again. [Security](https://cotlet.dev/security)
- **Revoking access:** Disconnect REsimpli 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.
- **REsimpli's terms:** You use your own REsimpli account and stay responsible for following REsimpli's terms. Cotlet is independent and not affiliated with REsimpli. [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 REsimpli. Cotlet reviews each request and emails you your API key.

**Do I need to be technical?**

No. You sign in to REsimpli 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 REsimpli session would leave my computer.**

Cotlet keeps your REsimpli 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.

**Do I need a certain REsimpli plan?**

The official Open API is included on every plan (checked 11 Oct 2026). Cotlet works in your own REsimpli account and does not use it; the features you use, such as automations, follow your plan in REsimpli.

**Will the official API make Cotlet unnecessary?**

It may cover more later. REsimpli lists updates to status, notes, tags, assignment and tasks as planned, and an MCP server as in development with no date. Until then they are not available.

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

No. Every call to skip_trace_lead, enroll_lead_in_automation or send_sms waits for your OK by default. For scheduled automations you can switch confirmation off per tool in your dashboard, for example only for approvals. create_lead, update_lead_status, add_lead_note, tag_lead, assign_lead, create_task, remove_lead_from_automation runs without asking, because it sends nothing to anyone and one call undoes it.

**Can I use the REsimpli 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/resimpli/{tool} from the HTTP Request node.
