[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Use cases](https://cotlet.dev/use-cases.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Judge.me API and MCP server

> Judge.me has a REST API with a private API token and an OpenAPI file, but no official MCP server (checked 23 Oct 2026). The API lists, creates, publishes and hides reviews and sends public and private replies. It cannot tell which reviews already have a reply, and the review requests list, sentiment filters and hide reasons exist only in the dashboard.

Product reviews app for online stores: collects reviews by email request, shows them in a widget on the store, and lets the shop reply to, publish and hide them in one Reviews dashboard.

## What is the Judge.me API?

Cotlet's Judge.me API exposes 12 endpoints for your own Judge.me account: list reviews, get a review, count reviews, list review requests, get publishing settings, publish a review, hide a review, reply to a review publicly, reply to a reviewer by email, send a review request now, add a manual review request and export reviews. The list_reviews endpoint returns reviews of your shop with rating, product, status, sentiment and whether a reply exists. Each endpoint takes simple JSON inputs like review_id, status or product and works both as an operation of the judge_me_read or judge_me_write MCP tool for agents and as a REST call for scripts.

- **Category:** [Marketing & SEO](https://cotlet.dev/integrations/category/marketing-seo.md)
- **Endpoints:** 12 (5 read, 7 write)
- **Updated:** 2026-10-18

Judge.me has a REST API with a private API token and an OpenAPI file, but no official MCP server (checked 23 Oct 2026). Cotlet is a hosted MCP server and REST API for Judge.me with 12 endpoints (5 read, 7 write): you sign in once in your own cloud browser, your AI agent does the work.

## Does Judge.me have an official API?

Judge.me has a REST API with a private API token and an OpenAPI file, but no official MCP server (checked 23 Oct 2026). The API lists, creates, publishes and hides reviews and sends public and private replies. It cannot tell which reviews already have a reply, and the review requests list, sentiment filters and hide reasons exist only in the dashboard.

| Task | Judge.me official | Cotlet |
|---|---|---|
| List reviews by product and star rating | Yes: GET /reviews with the private token; no sentiment or topic filter | Yes |
| Find reviews that have no reply | No: Review responses do not include replies; the dashboard has a Without replies filter | Yes |
| Publish or hide a review | Partly: API sets curated to ok or spam; the hide reason you pick in the dashboard has no field | Yes |
| Reply to a review publicly | Yes: POST /replies; optionally skips the notification email | Yes |
| Reply to a reviewer by private email | Yes: POST /private_replies; the email cannot be unsent | Yes |
| Filter by sentiment and topic | No: Dashboard filters only | Yes |
| List and resend review requests | Partly: API can send a manual review request; the Review requests list and Send request now are dashboard only | Yes |
| Export reviews as CSV | Partly: API pages through reviews, up to 100 a page; the CSV export is a dashboard action | Yes |

Sources: [Judge.me Help: Using Judge.me API](https://judge.me/help/en/articles/8409180-using-judge-me-api), [Judge.me API documentation (OpenAPI file)](https://judge.me/api/docs.yaml), [Judge.me Help: Replying to reviews](https://judge.me/help/en/articles/8375131-replying-to-reviews), [Judge.me Help: Publishing and hiding reviews](https://judge.me/help/en/articles/8368681-publishing-and-hiding-reviews)

## Quick reference

```text
Judge.me has a REST API with a private API token and an OpenAPI file, but no official MCP server (checked 23 Oct 2026). The API lists, creates, publishes and hides reviews and sends public and private replies. It cannot tell which reviews already have a reply, and the review requests list, sentiment filters and hide reasons exist only in the dashboard.
Cotlet provides a hosted MCP server and REST API for Judge.me: 12 tools (5 read, 7 write).
Access       Sign up at https://cotlet.dev/app/signup?app=judge-me, then request the app and create API keys in the Cotlet console.

MCP server   https://cotlet.dev/mcp/v1
MCP tools    judge_me_read, judge_me_write, reads and writes apart; call one with {"operation": "<operation>", "arguments": {...}}
REST base    https://cotlet.dev/api/v1/judge-me, each operation at its own route, e.g. POST /api/v1/judge-me/reviews/{review_id}/replies
Auth         Authorization: Bearer <COTLET_API_KEY>. Listing endpoints and schemas needs no key; calling an endpoint needs one. Over MCP the input schemas come with sign-in.
Operations   list_reviews, get_review, count_reviews, list_review_requests, get_publishing_settings, publish_review, hide_review, reply_to_review, send_private_reply, send_review_request, add_review_request, export_reviews
Confirm      reply_to_review, send_private_reply, send_review_request, add_review_request (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/judge-me-api-mcp-server.md

How access works:
1. The user signs up at https://cotlet.dev/app/signup?app=judge-me, requests Judge.me in the Cotlet console and creates an API key there.
2. The user signs in to Judge.me once in their Cotlet Cloud Browser (their own Chrome in the cloud, opened from the console) and enables Judge.me for agents. 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 Judge.me server that someone else maintains, including non-developers. Developers who prefer to run and fix code on their own computer can use an open-source Judge.me MCP server instead.

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.
Sign-in: the user signs in to Judge.me in their own Cloud Browser, a Chrome Cotlet runs for them in the EU; password saving is off, the profile is AES-256-GCM encrypted, and agents get Judge.me only after the user enables it. Calls are requests from that browser's IP with its cookies, each listed in the user's Background activity. Disable for agents, signing out in the browser or Reset browser cuts access. Cotlet is run by Take Group sp. z o.o. (EU VAT PL6342984273).
API key: holds no Judge.me login or cookies, only asks Cotlet to run a tool. Each key is scoped to chosen apps and tools, read only or read and write. Actions that reach other people wait for the user's approval by default, so a leaked key cannot post or message as the user. Every call is in the activity log; deleting the key ends access at once.
Terms: the user stays responsible for following Judge.me's terms; Cotlet is not affiliated with Judge.me.
```

## What can an AI agent do in Judge.me?

Cotlet is best for store owners and support teams who answer many Judge.me reviews and want their AI agent to find unanswered ones, moderate pending ones and follow up without running or fixing a server.

- **[Reply to unanswered reviews](https://cotlet.dev/integrations/judge-me-api-mcp-server/reply-to-unanswered-reviews.md)** (runs: daily): "Find reviews from the last 7 days with no reply, rating 3 stars or higher. Answer each one in a friendly tone that names the product, and list the rest for me." → `list_reviews`, `get_review`, `reply_to_review`
- **[Moderate pending reviews](https://cotlet.dev/integrations/judge-me-api-mcp-server/moderate-pending-reviews.md)** (runs: daily): "Go through reviews waiting to be curated. Publish the genuine ones, hide spam and reviews with personal information, and leave verified reviews and doubtful ones for me." → `get_publishing_settings`, `list_reviews`, `publish_review`, `hide_review`
- **Follow up on negative reviews privately** (runs: daily): "For every new 1 or 2 star review, send the reviewer a private email that apologises, names the product and offers to fix it. Show me the drafts first." → `list_reviews`, `get_review`, `send_private_reply`
- **Send scheduled review requests now** (runs: weekly): "List review requests that are still scheduled or were skipped last week and send them now, except for unsubscribed emails." → `list_review_requests`, `send_review_request`
- **Export last month's reviews**: "Export all published reviews from last month as CSV." → `count_reviews`, `export_reviews`

## Can Judge.me automations run on a schedule in n8n, Make or Zapier?

Yes. Cotlet does not replace your automation platform: it gives it a Judge.me 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 reply to unanswered reviews, 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 with the endpoint's method and URL, such as GET https://cotlet.dev/api/v1/judge-me/reviews. | Schedule Trigger node. |
| Make | HTTP module: the endpoint's method and URL with an Authorization: Bearer header, and a JSON body for POST, PUT and PATCH. | Scenario schedule. |
| Zapier | Webhooks by Zapier, Custom Request: the same method, URL, header and body. | Schedule by Zapier trigger. |
| Your own script | GET https://cotlet.dev/api/v1/judge-me/reviews with your API key. | cron or GitHub Actions. |

## Tools

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

### list_reviews

Reviews of your shop with rating, product, status, sentiment and whether a reply exists. Access: read. REST: `GET /api/v1/judge-me/reviews`. MCP: `judge_me_read → list_reviews`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `status` | enum | no | published, to_curate (pending), hidden or archived. Default: all statuses. |
| `rating` | integer | no | Only reviews with this star rating, 1 to 5. |
| `sentiment` | enum | no | positive, neutral or negative, as the Reviews dashboard classifies them. |
| `has_reply` | boolean | no | true for reviews with a reply, false for reviews without one. |
| `product` | string | no | Product title or handle. |
| `since` | date | no | Only reviews created on or after this date. |
| `limit` | integer | no | Reviews per page. Default: 20. |
| `cursor` | string | no | Next page cursor from the previous call. |

Lists reviews in the order the Reviews dashboard shows them, with next_cursor for the next page. It uses the dashboard filters, so has_reply and sentiment work here although the REST API cannot filter by them. review_id is the ID for get_review, reply_to_review, publish_review and hide_review. status is the dashboard status: to_curate reviews wait for a decision, and Judge.me publishes them after 14 days if nobody moderates them.

Example response:

```json
{
  "reviews": [
    {
      "review_id": 48210934,
      "rating": 4,
      "title": "Fits well",
      "body": "Warm and light. Runs slightly small.",
      "product": "Trail Jacket",
      "reviewer": "Dana K.",
      "status": "published",
      "verified": true,
      "sentiment": "positive",
      "has_reply": false,
      "source": "email",
      "created_at": "2026-10-21T09:12:00Z"
    },
    {
      "review_id": 48199021,
      "rating": 1,
      "title": "Great deals at cheapwatch.example",
      "body": "Visit cheapwatch.example for 70% off.",
      "product": "Trail Jacket",
      "reviewer": "Sam",
      "status": "to_curate",
      "verified": false,
      "sentiment": "neutral",
      "has_reply": false,
      "source": "web",
      "created_at": "2026-10-20T16:40:00Z"
    }
  ],
  "next_cursor": "2"
}
```

### get_review

One review with its full text, replies, source, verified status and linked order. Access: read. REST: `GET /api/v1/judge-me/reviews/{review_id}`. MCP: `judge_me_read → get_review`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `review_id` | integer | yes | Review ID from list_reviews or get_review. |

Returns the full review: title and body as the reviewer wrote them, the product, the source (email request, web, Shop app and others), verified status and whether it has pictures or video. replies lists the public replies under it. order_url is the linked Shopify order and is empty when the review has no linked order. Read this right before replying or hiding, because a teammate may have acted since the list was read.

Example response:

```json
{
  "review_id": 48210934,
  "rating": 4,
  "title": "Fits well",
  "body": "Warm and light. Runs slightly small.",
  "product": "Trail Jacket",
  "reviewer": "Dana K.",
  "status": "published",
  "verified": true,
  "source": "email",
  "pictures": 1,
  "replies": [],
  "order_url": "https://admin.shopify.com/store/northwind-goods/orders/5501",
  "created_at": "2026-10-21T09:12:00Z"
}
```

### count_reviews

Number of reviews by status and star rating, for a product or a date range. Access: read. REST: `GET /api/v1/judge-me/reviews/count`. MCP: `judge_me_read → count_reviews`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `status` | enum | no | published, to_curate, hidden or archived. Default: all statuses. |
| `product` | string | no | Product title or handle. |
| `since` | date | no | Only reviews created on or after this date. |

Returns the total and the split by star rating for the filters you give. Use it to check the size of a job before listing, for example how many pending reviews wait or how large an export will be. It reads counts only and returns no review text.

Example response:

```json
{
  "total": 14,
  "by_rating": {
    "1": 3,
    "2": 1,
    "3": 2,
    "4": 3,
    "5": 5
  },
  "status": "to_curate"
}
```

### list_review_requests

Review request emails with their status, customer, product and send date. Access: read. REST: `GET /api/v1/judge-me/review-requests`. MCP: `judge_me_read → list_review_requests`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `status` | string | no | Status as the Review requests page filter names it: Sent, Will send, Will skip, Waiting for delivery and the others it lists. |
| `search` | string | no | Customer email or order number. |
| `limit` | integer | no | Reviews per page. Default: 20. |
| `cursor` | string | no | Next page cursor from the previous call. |

Lists the requests on Reviews > Review requests, with next_cursor for the next page. request_id is the ID for send_review_request. source shows Manual for requests added by hand. A request for an unsubscribed email or with no email found carries that reason in status_note, and send_review_request cannot send it.

Example response:

```json
{
  "requests": [
    {
      "request_id": "rr_7731",
      "customer": "Dana K.",
      "email": "dana.k@example.com",
      "order": "#4790",
      "product": "Trail Jacket",
      "status": "Will send",
      "status_note": "",
      "source": "automatic",
      "scheduled_for": "2026-10-24"
    },
    {
      "request_id": "rr_7702",
      "customer": "Marcus R.",
      "email": "marcus.r@example.com",
      "order": "#4776",
      "product": "Camp Stove",
      "status": "Will skip",
      "status_note": "Unsubscribed email",
      "source": "automatic",
      "scheduled_for": "2026-10-22"
    }
  ],
  "next_cursor": null
}
```

### get_publishing_settings

The shop's auto-publish rules: minimum rating, sentiment, verified only, media. Access: read. REST: `GET /api/v1/judge-me/publishing-settings`. MCP: `judge_me_read → get_publishing_settings`.

No parameters.

Reads Settings > Publishing and moderation > Auto-publish criteria. min_rating is the lowest star rating that publishes by itself. sentiment is neutral_and_positive, positive_only or off; Judge.me offers sentiment rules on the Awesome plan, and only when the primary store language is English. Reviews that miss the rules become to_curate. It changes nothing.

Example response:

```json
{
  "min_rating": 3,
  "sentiment": "off",
  "verified_only": false,
  "media_filter": "off",
  "manual_moderation": false
}
```

### publish_review

Publishes a pending or hidden review on the storefront. Access: write. REST: `POST /api/v1/judge-me/reviews/{review_id}/publish`. MCP: `judge_me_write → publish_review`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `review_id` | integer | yes | Review ID from list_reviews or get_review. |

Moves the review to Published. A published review counts toward the average rating and the review count again. The reviewer is not told, and one hide_review call undoes it, so it does not wait for your OK.

Example response:

```json
{
  "review_id": 48210934,
  "status": "published"
}
```

### hide_review

Hides a review from the storefront with one of Judge.me's hide reasons. Access: write. REST: `POST /api/v1/judge-me/reviews/{review_id}/hide`. MCP: `judge_me_write → hide_review`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `review_id` | integer | yes | Review ID from list_reviews or get_review. |
| `reason` | enum | yes | fake, duplicated, spam, unrelated, legal, inappropriate_language, foreign_language, private_information or other. These are the Hide review reasons in the dashboard. |

Hides the review, which stays in the Reviews dashboard but stops counting toward the average rating and the review count. It can take up to 5 minutes to leave the storefront. Reviews from the Shop app cannot be hidden, and hiding a verified review may lower your Transparency level. The reviewer is not told and publish_review undoes it, so it does not wait for your OK. Hidden reviews cannot be deleted; only imported reviews can.

Example response:

```json
{
  "review_id": 48199021,
  "status": "hidden",
  "reason": "spam"
}
```

### reply_to_review

Posts a public reply under a review in the review widget. Access: write, asks the user first. REST: `POST /api/v1/judge-me/reviews/{review_id}/replies`. MCP: `judge_me_write → reply_to_review`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `review_id` | integer | yes | Review ID from list_reviews or get_review. |
| `body` | string | yes | Text of the reply, shown under the review. |
| `notify_reviewer` | boolean | no | Send the reviewer the reply notification email. Default: true. |

Posts the reply under the review with your store name as its heading. Unless notify_reviewer is false, Judge.me emails the reviewer once, when the reply is created, and only if Settings > Email templates > Reply notification is on. Editing or deleting the reply is possible in the dashboard, not through Cotlet. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "review_id": 48210934,
  "status": "replied",
  "type": "public",
  "notified_reviewer": true
}
```

### send_private_reply

Emails the reviewer a private reply that stays off the storefront. Access: write, asks the user first. REST: `POST /api/v1/judge-me/reviews/{review_id}/private-replies`. MCP: `judge_me_write → send_private_reply`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `review_id` | integer | yes | Review ID from list_reviews or get_review. |
| `subject` | string | yes | Email subject. |
| `body` | string | yes | Email text. |

Sends the email straight away, from the shop, to the address on the review. A private reply cannot be unsent, edited or deleted, and Judge.me keeps no thread: the reviewer's answer goes to your custom sender email or your admin notification email, not to Judge.me. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "review_id": 48155802,
  "status": "sent",
  "type": "private",
  "subject": "About your Camp Stove review"
}
```

### send_review_request

Sends a scheduled or skipped review request email immediately. Access: write, asks the user first. REST: `POST /api/v1/judge-me/requests/{request_id}/review-requests`. MCP: `judge_me_write → send_review_request`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `request_id` | string | yes | Request ID from list_review_requests. |

Runs Send request now on the Review requests page. The customer gets a new email with a new review link valid for 180 days. Judge.me sends no reminders for a request sent this way. Requests for unsubscribed emails and with no email found cannot be sent and return an error; a blocklisted email must be removed from the blocklist first. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "request_id": "rr_7731",
  "status": "Sent",
  "sent_at": "2026-10-23T08:05:00Z"
}
```

### add_review_request

Schedules a review request email for one customer and product. Access: write, asks the user first. REST: `POST /api/v1/judge-me/review-requests`. MCP: `judge_me_write → add_review_request`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `name` | string | yes | Customer name. |
| `email` | string | yes | Customer email. |
| `product` | string | yes | Product title or handle. |
| `fulfilled_at` | date | yes | Date the order was fulfilled. |

Adds the request from Settings > Request reviews > Enter customer details with the default template. Judge.me sends it about 10 minutes later unless you call send_review_request first. It shows on the dashboard with the Manual label. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "request_id": "rr_7790",
  "status": "Will send",
  "source": "manual",
  "scheduled_for": "2026-10-23"
}
```

### export_reviews

Starts a CSV export of reviews by status, product or date range. Access: write. REST: `POST /api/v1/judge-me/reviews/export`. MCP: `judge_me_write → export_reviews`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `status` | enum | no | published, hidden or archived. Default: published. |
| `product` | string | no | Product title or handle. |
| `since` | date | no | Only reviews created on or after this date. |
| `until` | date | no | Only reviews created on or before this date. |

Runs the dashboard export. Under 25 reviews the CSV comes back at once. From 25 up, Judge.me builds the file in the background and emails it from support@judge.me to the addresses in Settings > Admin notification, with a link that expires after 3 hours. A file holds at most 100,000 reviews, and videos, phone numbers, SKUs, order details, verified status and review tags are not in it. The email goes to your own shop admins only, so it does not wait for your OK.

Example response:

```json
{
  "status": "emailed",
  "reviews": 63,
  "sent_to": "Admin notification addresses",
  "link_valid_hours": 3
}
```

## How do I connect Judge.me to Claude Code, Codex or Cursor?

Connecting Judge.me takes three steps: sign up, sign in to Judge.me once in your Cloud Browser and enable it for agents, then add one MCP server or call the REST API with the same key.

### Connect Judge.me to your agent.

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

2. **Sign in to Judge.me in your Cloud Browser** Open your Cloud Browser in the console: your own Chrome in the cloud. Sign in to Judge.me there yourself, the way you always do, then press Enable for agents, read only or read and write. We never save your password, and your agent keeps working even when your computer is off.

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 Judge.me 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.

```
Find reviews from the last 7 days with no reply, rating 3 stars or higher. Answer each one in a friendly tone that names the product, and list the rest for me.
```

### Call Judge.me 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 an endpoint under /api/v1/judge-me with its own method and path, listed with the endpoints above. Path parameters go in the URL; the other parameters go in the query for GET and DELETE and in a JSON body otherwise.

```
curl -X POST https://cotlet.dev/api/v1/judge-me/reviews/48210934/replies \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"body":"Thanks for the kind words, Dana. The Trail Jacket runs slightly small, so sizing up for layers is a good call. Enjoy the hikes!","notify_reviewer":true}'
```

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

```
{
  "review_id": 48210934,
  "status": "replied",
  "type": "public",
  "notified_reviewer": true
}
```

## Why use Cotlet for Judge.me?

**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 Judge.me yourself, in your own Cloud Browser. We never save your password; the profile is encrypted with AES-256-GCM, the cipher 1Password uses.
- A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory.
- The model never sees a login.
- No stored passwords, no CAPTCHA solving, no MFA bypass.

**You stay in control**

- Scope each API key: its apps, its tools, read only or read and write.
- Anything that reaches other people waits for your OK, so a leaked key cannot post or message as you.
- Every background request listed in your Background activity. Disable for agents in one click.

**Kept working for you**

- We test every integration every 6 hours.
- When Judge.me changes, the tool pauses until we fix it.
- Failed calls cost nothing.

## Is it safe to connect Judge.me to Cotlet?

Yes. You sign in to Judge.me yourself, in your own Cloud Browser, and we never save your password. Your agents only get Judge.me once you enable it, and every background request is listed. The browser profile is stored encrypted with AES-256-GCM, the same cipher 1Password uses for its vaults and Apple for iCloud Keychain. Independent public scanners grade cotlet.dev A+ and find it clean; click a result to rerun it yourself.

- **A+ on Qualys SSL Labs**: Encryption in transit: TLS setup and certificates, on all four server addresses. [Live result](https://www.ssllabs.com/ssltest/analyze.html?d=cotlet.dev)
- **A+ on securityheaders.com**: Browser protections sent with every page, all six headers present. [Live result](https://securityheaders.com/?q=cotlet.dev&followRedirects=on)
- **A+ on Mozilla Observatory**: Mozilla's web security baseline: score 120 of 100, 12 of 12 tests passed. [Live result](https://developer.mozilla.org/en-US/observatory/analyze?host=cotlet.dev)
- **Clean on Sucuri SiteCheck**: No malware, spam or defacement, and not on any of 9 blocklists, Google Safe Browsing included. [Live result](https://sitecheck.sucuri.net/results/cotlet.dev)

[How Cotlet protects your access](https://cotlet.dev/security.md)

### Common concerns

**Who runs Cotlet?**

Cotlet is run by Take Group, a Polish software company working since 2019. Take Group runs about 3,200 websites on its own systems and has its own DevOps team for infrastructure security. We built and used integrations like this inside the company for years before opening them as Cotlet.

**Is this an official Judge.me integration?**

No, Cotlet is independent of Judge.me. Judge.me's own API is too limited for this work. Cotlet works through your own Judge.me account, the way you use Judge.me in the browser, so you need no partner approval and no developer setup.

**What about client data and GDPR?**

Cotlet is run from the EU and follows the GDPR. Cloud Browsers run in Finland, a Tier 1 country in the ITU Global Cybersecurity Index 2024. Data passes through a call and is not kept after it.

**Can I start with read only?**

Yes. Enable the app for agents as read only, or make the API key read only, and anything that reaches other people waits for your OK unless you switch that off per tool.

**Is it reliable?**

Every Cotlet service is checked every 3 minutes from Europe, North America, Asia and Australia. The live results and any outage are public at status.cotlet.dev.

**How do I stop?**

Press Disable for agents next to Judge.me in your console: your agents lose access at once and you stay signed in. Signing out of Judge.me in the browser works too, and Reset browser deletes the whole profile.

## Is there a Judge.me MCP server on GitHub?

Yes. Community Judge.me MCP servers exist on GitHub, usually maintained by one person. They wrap the REST API: you install one, paste your private API token into its config and keep it running yourself. Cotlet hosts the same kind of server for you, adds the dashboard-only jobs, and our team keeps it working.

|  | GitHub MCP server | Cotlet |
|---|---|---|
| Setup | Clone the repo, install it, find your private token under Settings > Integrations, add the server to each MCP client | Sign up, sign in to Judge.me once, add one MCP server or API key |
| When Judge.me changes | It breaks until you or the maintainer fix it | Our team tests it daily and fixes it for you; failed calls are free |
| Your Judge.me access | A private token with read and write access in a file on your computer; you cannot regenerate it, only Judge.me support can | No API token to hand out: your session lives in your own Cloud Browser in the EU, profile encrypted, only for the apps you enable, disabled for agents in one click |
| What it can do | What the REST API offers: no unanswered-review filter, no sentiment filter, no review requests list | Also the dashboard: Without replies, sentiment and topic filters, hide reasons, Send request now |
| Upkeep | You update, monitor and debug it yourself | Nothing to host or update |
| Where it runs | Your computer, while it is on | Hosted: Claude Code, Codex, Cursor, n8n and scripts, also on a schedule |
| Price | Free, paid for with your time | Free 7-day trial, then pay-as-you-go credit packs, no subscription |

### 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 Judge.me 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 your sign-in to stay on your own computer
- you only need it now and then, from one MCP client

## How much does the Judge.me API cost?

Free 7-day trial with 2,000 credits, no card needed. After that, the Judge.me API is pay as you go with no limit on apps: Credit packs from $29 for 5,000 credits, one-time, no subscription. A successful call uses 10 credits (about $0.04 to $0.06), your Cloud Browser uses 50 credits a day while it has an app enabled for agents, however many apps that is, and an agent driving the browser itself uses 5 credits a minute. Credit packs stay valid for 12 months and stack, so unused credits carry over.

| 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. [See full pricing](https://cotlet.dev/pricing.md)

## How Cotlet holds your access

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

- **Company details:** Cotlet is run by Take Group sp. z o.o., a company registered in Poland. Its full address and registration numbers are in the Terms of service. [Terms of service](https://cotlet.dev/terms)
- **Your sign-in:** You sign in to Judge.me yourself, in your own Cloud Browser: a Chrome we run for you in the EU, one per app. We never save your password (password saving is off), the profile is stored encrypted with AES-256-GCM, and your agents get Judge.me only after you enable it. When Judge.me signs you out, your agent gives you a link to sign in again. [Security](https://cotlet.dev/security.md)
- **Revoking access:** Press Disable for agents next to Judge.me, sign out of Judge.me in your Cloud Browser, or reset the browser. Every background request is listed in your Background activity. 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.
- **Judge.me's terms:** You use your own Judge.me account and stay responsible for following Judge.me's terms. Cotlet is independent and not affiliated with Judge.me. [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?**

Sign up free, open Judge.me in the console and press Request access. Then you create your API key and connect Judge.me there.

**Do I need to be technical?**

No. You sign in to Judge.me once in your Cloud Browser, a normal Chrome you open from the console, 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 it safe to connect Judge.me to Cotlet?**

Yes. You sign in to Judge.me yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Judge.me once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

**Is a hosted server safer than a local one? My Judge.me sign-in would leave my computer.**

On Cotlet you sign in inside your own Cloud Browser, which only you open, and its profile is stored encrypted with AES-256-GCM in the EU. Agents get only the apps you enable, and every background request is listed. A local server keeps your Judge.me cookie in a plain file on your computer, readable by any program you run, and stops when your computer is off.

**Why does Cotlet send requests instead of clicking in my browser?**

To be fast, Cotlet doesn't click through Judge.me's pages. It sends the same requests your browser would, from your browser's IP with its cookies, without opening a window. Judge.me sees the same browser and IP you signed in with, and every request is listed in your Background activity.

**What if someone gets my Cotlet API key?**

The key holds no Judge.me login or cookies, it only asks Cotlet to run a tool. It can call only the apps and tools you gave it, and a read-only key changes nothing. Anything that reaches other people, like posts, comments or messages, waits for your OK in the dashboard by default, so a leaked key cannot post or message as you. When you switch approval off for a scheduled job, give that job its own key limited to that one tool. Every call is in your activity log, and deleting the key ends access at once.

**Why a signed-in browser and not OAuth, like other integration platforms?**

Judge.me offers no OAuth token you can simply grant for these tools: its official API leaves them out or needs a developer app, a plan or an approval first (see the official API section above). That is why Cotlet sets the limits itself: per key, per tool, with your approval before anything reaches other people. Cotlet is run by Take Group sp. z o.o., an EU company (VAT PL6342984273).

**Which Judge.me plan do I need?**

The Free plan is enough for listing, publishing, hiding, public and private replies and exports. Judge.me's AI reply drafts and sentiment-based auto-publish need the Awesome plan, so a job that relies on them needs that plan. Cotlet works in your own account and does not need an API token.

**Can my agent delete or rewrite a review?**

No. Judge.me lets a shop hide or archive a review, and only imported reviews can be deleted for good. Its API does not support editing a review, for authenticity reasons, and Cotlet has no tool that does.

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

No. Every call to reply_to_review, send_private_reply, send_review_request or add_review_request waits for your OK by default. For scheduled automations you can switch confirmation off per tool in your dashboard, for example only for approvals. publish_review, hide_review and export_reviews run without asking, because they send nothing to anyone and one call undoes it.

**Can I use the Judge.me API in n8n?**

Yes. Add https://cotlet.dev/mcp/v1 with your API key in n8n's MCP Client node, or call its endpoints under https://cotlet.dev/api/v1/judge-me from the HTTP Request node.

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [Use cases](https://cotlet.dev/use-cases.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet.dev is built by Bart Krawczyk and Jake Slugocki, the founders of Take Group sp. z o.o., ul. Wincentego Janasa 4, 40-855 Katowice, Poland. KRS 0000871398, NIP 6342984273, VAT EU: PL6342984273. [About us](https://cotlet.dev/about.md)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.
