{
  "data": {
    "a": {
      "slug": "freshsales",
      "name": "Freshsales API",
      "vendor": "Freshworks",
      "vendorUrl": "https://www.freshworks.com/crm/sales/",
      "kind": "http-api",
      "category": "crm",
      "summary": "REST API for Freshsales, the Freshworks sales CRM.",
      "url": "https://www.anchorterminal.com/tools/freshsales",
      "markdownUrl": "https://www.anchorterminal.com/tools/freshsales.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/freshsales.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/freshsales.json",
      "dns": "freshsales.grade.anchorterminal.com",
      "transports": [
        "http"
      ],
      "packages": [],
      "auth": "api-key",
      "authNotes": "Per-user API key from Profile Settings, sent as `Authorization: Token token=\u003cAPI_KEY\u003e`. Requests go to `https://\u003cbundle-alias\u003e.myfreshworks.com/crm/sales/api/`, and the bundle alias is shown under the key. The key acts with that user's rights; there are no scoped keys.",
      "pricing": "paid",
      "pricingNotes": "21-day trial of the full CRM. Growth $11 a user a month billed monthly or $9 billed yearly, Pro $47 or $39, Enterprise $71 or $59. Add-ons include branded documents at $19 a user a month and Freddy AI Agent at $49 per 100 sessions (https://www.freshworks.com/crm/pricing/).",
      "priceSummary": "$9 / seat-mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No payments. API access follows the Freshsales subscription.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developers.freshworks.com/crm/api/",
      "capabilities": [
        "crm.records",
        "crm.pipeline",
        "crm.activities",
        "crm.search",
        "crm.webhooks"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "webhooks",
        "no-card"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 40.7,
        "grade": "E",
        "agentReady": false,
        "rank": 1316,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 17,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 48,
          "maintenance": 5,
          "payments": 30,
          "reliability": 51,
          "schema": 27,
          "security": 44,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Contact upsert and bulk upsert of up to 100 records make creates safe to retry. No MCP server for Freshsales.",
        "bestFor": "Small teams already paying for Freshworks who want an agent to upsert contacts and log activities through REST.",
        "strengths": [
          "Contact upsert and bulk upsert of up to 100 records make creates safe to retry",
          "Published limit of 1,000 requests an hour per account",
          "HackerOne disclosure programme and a security.txt with contact and policy",
          "Audit logs on the Enterprise plan",
          "Privacy notice states retention periods and links subprocessor and hosting pages"
        ],
        "weaknesses": [
          "No MCP server for Freshsales",
          "No OpenAPI, llms.txt or API changelog",
          "Per-user key with no scopes and no OAuth for the CRM API",
          "1,000 requests an hour shared by the whole account",
          "Status history not readable without JavaScript"
        ],
        "agentNotes": [
          "Build the base URL from the bundle alias shown under the API key, `https://\u003calias\u003e.myfreshworks.com/crm/sales/api/`",
          "Use `/api/contacts/upsert` rather than create, so a retry updates instead of duplicating",
          "Budget calls, since 1,000 an hour covers the whole account and 429s carry no Retry-After",
          "Add `include=owner,sales_accounts` to pull related records in one call",
          "Expect to see only what the key owner's role can see"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 40.7
          }
        ],
        "editorialScores": {
          "ergonomics": 48,
          "maintenance": 5,
          "payments": 30,
          "reliability": 51,
          "schema": 27,
          "security": 44,
          "transparency": 57
        },
        "provenanceScore": 88,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-01",
            "maintenance": "2026-10-01",
            "payments": "2026-10-01",
            "reliability": "2026-10-01",
            "schema": "2026-10-01",
            "security": "2026-10-01",
            "transparency": "2026-10-01"
          },
          "last": "2026-10-01",
          "lastMoved": "2026-10-27",
          "oldest": "2026-10-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl https://$FRESHSALES_BUNDLE.myfreshworks.com/crm/sales/api/contacts/filters \\\n  -H \"Authorization: Token token=$FRESHSALES_API_KEY\" -H \"Content-Type: application/json\""
      },
      "letme": {
        "capability": "https://letme.dev/crm.records",
        "tool": "https://letme.dev/freshsales"
      },
      "sameCompany": [
        "freshdesk"
      ],
      "area": "business",
      "unitPrices": [
        {
          "item": "Growth",
          "unit": "seat-month",
          "usd": 9,
          "note": "billed yearly; $11 billed monthly"
        },
        {
          "item": "Pro",
          "unit": "seat-month",
          "usd": 39,
          "note": "billed yearly; $47 billed monthly"
        },
        {
          "item": "Enterprise",
          "unit": "seat-month",
          "usd": 59,
          "note": "billed yearly; $71 billed monthly"
        }
      ],
      "provenance": {
        "legalEntity": "Freshworks Inc.",
        "domain": "freshworks.com",
        "domainRegistered": "1998-02-13",
        "domainNote": "API calls go to per-account hosts under myfreshworks.com, a second Freshworks domain.",
        "endpointOnVendorDomain": true,
        "terms": "https://www.freshworks.com/terms/",
        "privacy": "https://www.freshworks.com/privacy/",
        "statusPage": "https://status.freshworks.com",
        "changelog": "",
        "securityTxt": "valid",
        "checked": "2026-09-30",
        "notes": [
          "security.txt answers with a contact and a HackerOne note but has no Expires field."
        ],
        "score": 88
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/freshsales.json",
      "live": {
        "slug": "freshsales",
        "vendorStatus": {
          "page": "https://status.freshworks.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:47:48.771137576Z"
        },
        "securityTxt": {
          "url": "https://freshworks.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-11-07T16:00:51.039435163Z"
        },
        "domain": {
          "domain": "freshworks.com",
          "registered": "1998-02-13",
          "source": "https://rdap.verisign.com/com/v1/domain/freshworks.com",
          "checkedAt": "2026-11-01T14:10:51.001760254Z"
        },
        "pages": [
          {
            "url": "https://www.freshworks.com/crm/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:28:50.163671434Z",
            "changedAt": "2026-10-12T20:03:15.847710144Z",
            "fingerprint": "a43f70587190"
          }
        ],
        "updatedAt": "2026-11-07T16:00:51.039435163Z"
      }
    },
    "answer": "Relaticle scores 59.6 (C) on agent readiness against Freshsales API's 40.7 (E), and leads in 4 of 7 scored categories. Freshsales API leads on reliability.",
    "b": {
      "slug": "relaticle",
      "name": "Relaticle",
      "vendor": "Relaticle, Inc.",
      "vendorUrl": "https://relaticle.com",
      "kind": "http-api",
      "category": "crm",
      "summary": "Relaticle is an open-source CRM under AGPL-3.0 for companies, people, opportunities, tasks and notes, run on Relaticle Cloud or self-hosted. Agents use its REST API and an MCP server with OAuth or scoped tokens.",
      "url": "https://www.anchorterminal.com/tools/relaticle",
      "markdownUrl": "https://www.anchorterminal.com/tools/relaticle.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/relaticle.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/relaticle.json",
      "dns": "relaticle.grade.anchorterminal.com",
      "repo": "https://github.com/relaticle/relaticle",
      "license": "AGPL-3.0",
      "transports": [
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.relaticle.com",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Personal access tokens from Settings \u003e Access Tokens are tied to one workspace, take an expiry and carry chosen permissions (read, create, update, delete for REST, plus read, draft and send email for MCP). MCP clients can also use OAuth 2.1 through Laravel Passport and choose one workspace on the consent screen; the source says the OAuth scope `mcp:use` authorises the whole toolset.",
      "pricing": "freemium",
      "pricingNotes": "Self-hosting is free under AGPL-3.0. Relaticle Cloud is priced per workspace with unlimited users: Cloud Pro $19 a month billed yearly ($24 monthly) and Cloud Scale $49 ($59 monthly), Enterprise from $20,000 a year. A 14-day Cloud Pro trial needs no card. Scale has three times the API and MCP throughput.",
      "priceSummary": "$19 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the OpenAPI spec, the developer docs or the source (checked 2026-11-06). Over-limit Cloud calls return 402 for plan limits without payment requirements.",
        "endpoints": []
      },
      "toolCount": 50,
      "popularity": {
        "githubStars": 1811,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://relaticle.com/developers/rest-api",
      "llmsTxt": "https://relaticle.com/llms.txt",
      "openapi": "https://relaticle.com/openapi.json",
      "registryName": "com.relaticle/crm",
      "capabilities": [
        "crm.records",
        "crm.pipeline",
        "crm.activities",
        "crm.search",
        "email.send",
        "email.threads"
      ],
      "tags": [
        "official",
        "open-source",
        "agpl",
        "self-hosted",
        "hosted",
        "mcp",
        "remote-mcp",
        "mcp-registry",
        "oauth",
        "openapi",
        "llms-txt",
        "freemium",
        "trial",
        "no-card",
        "php",
        "eu-hosting"
      ],
      "lastRelease": "2026-11-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59.6,
        "grade": "C",
        "agentReady": false,
        "rank": 697,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 7,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 59,
          "maintenance": 90,
          "payments": 30,
          "reliability": 40,
          "schema": 86,
          "security": 57,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "Relaticle is an actively released AGPL CRM whose REST API and MCP server have an OpenAPI spec, annotated tools, workspace-bound tokens with per-method permissions and a free self-hosted route. MCP writes apply at once with no server-side confirmation, OAuth grants the whole toolset, and Cloud has no status page, SLA or certification.",
        "bestFor": "Small teams who want an open-source CRM they can self-host and let an agent write to.",
        "strengths": [
          "AGPL-3.0 source, free to self-host, with tagged releases about twice a week",
          "Tokens are bound to one workspace with an expiry and per-method permissions, so a read-only token is possible",
          "OpenAPI 3.1 spec, llms.txt and MCP tools with readOnly, destructive and idempotent hints",
          "Filter grammar with $and, $or and $not, cursor paging and upserts by unique field",
          "Cloud providers listed with what each receives, hosting at Hetzner in Germany"
        ],
        "weaknesses": [
          "Writes over MCP apply immediately, and OAuth's single `mcp:use` scope authorises every tool",
          "No status page or SLA for Relaticle Cloud was found",
          "No SOC 2 or ISO 27001, which the security page says plainly",
          "No changelog page beyond GitHub tags, and no deprecation policy",
          "50 MCP tools by default, with no toolsets or read-only subset"
        ],
        "agentNotes": [
          "Use a personal access token with only the read permission unless the task writes, since OAuth grants every tool",
          "Ask the user before create, update, delete or send tools; the server applies them at once",
          "Call `get-crm-schema-tool` for an entity before filtering on custom fields, which differ by workspace",
          "Use `POST /v1/people/upsert` or `/v1/companies/upsert` with a unique field to avoid duplicates on retry",
          "Keep MCP calls under 120 a minute per user and REST writes under 60 a minute per token on Cloud Pro"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 59.6
          }
        ],
        "editorialScores": {
          "ergonomics": 59,
          "maintenance": 90,
          "payments": 30,
          "reliability": 40,
          "schema": 86,
          "security": 57,
          "transparency": 72
        },
        "provenanceScore": 74,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl https://api.relaticle.com/v1/companies -H \"Authorization: Bearer YOUR_TOKEN\" -H \"Accept: application/json\"",
        "claudeCode": "claude mcp add --transport http relaticle https://mcp.relaticle.com",
        "config": {
          "mcpServers": {
            "relaticle": {
              "url": "https://mcp.relaticle.com"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/crm.records",
        "tool": "https://letme.dev/relaticle"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Cloud Pro workspace",
          "unit": "month",
          "usd": 19,
          "note": "Billed yearly at $228; $24 billed monthly"
        },
        {
          "item": "Cloud Scale workspace",
          "unit": "month",
          "usd": 49,
          "note": "Billed yearly at $588; $59 billed monthly"
        }
      ],
      "provenance": {
        "legalEntity": "Relaticle, Inc.",
        "domain": "relaticle.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://relaticle.com/terms-of-service",
        "privacy": "https://relaticle.com/privacy-policy",
        "statusPage": "",
        "changelog": "https://github.com/relaticle/relaticle/releases",
        "securityTxt": "valid",
        "checked": "2026-11-06",
        "notes": [
          "Terms of service effective 26 August 2026 and privacy policy effective 4 November 2026; the footer names Relaticle, Inc. No clause on automated access to the website was found.",
          "relaticle.com/robots.txt allows all crawlers and names ClaudeBot as allowed.",
          "security.txt names security@relaticle.com and expires 6 May 2027. The security page asks for reports by email and aims to acknowledge within 48 hours.",
          "status.relaticle.com did not connect and no status page is linked. relaticle.com/changelog is 404; releases are tagged on GitHub.",
          "The press page says Relaticle was founded in 2024 and lists 1,811 GitHub stars, verified 26 September 2026. Domain registration date not checked."
        ],
        "score": 74
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/relaticle.json",
      "live": {
        "slug": "relaticle",
        "probe": {
          "target": "https://mcp.relaticle.com",
          "method": "get",
          "lastAt": "2026-11-07T19:22:29.462221932Z",
          "lastOk": true,
          "lastStatus": 405,
          "lastMs": 164,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 174,
          "p95ms24h": 294,
          "samples24h": 210,
          "samples30d": 210,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "relaticle/relaticle",
            "version": "v3.8.2",
            "released": "2026-11-04",
            "seenAt": "2026-11-07T00:00:54.651079547Z"
          },
          {
            "registry": "mcp-registry",
            "name": "com.relaticle/crm",
            "version": "3.8.2",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          }
        ],
        "githubStars": 1811,
        "securityTxt": {
          "url": "https://relaticle.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-05-07T16:01:18Z",
          "checkedAt": "2026-11-07T16:01:18.554359358Z"
        },
        "llmsTxt": {
          "url": "https://relaticle.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:44.579905089Z"
        },
        "pages": [
          {
            "url": "https://relaticle.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:18:13.002922035Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6e701d3eab86"
          },
          {
            "url": "https://relaticle.com/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:18:15.26331735Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1e5fff279d1d"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.relaticle.com",
          "checkedAt": "2026-11-07T01:47:13.278550358Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:47:13.278550358Z"
        },
        "updatedAt": "2026-11-07T19:22:29.462221932Z"
      }
    },
    "edges": [
      {
        "by": 85,
        "category": "maintenance",
        "leads": "relaticle",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "No public API changelog or release notes for the Freshsales API found, so no last change date (0). No dated entries in the last 90 days found (0). Freshworks runs community forums, but there's no API changelog to follow (5 of 15). No official Freshsales SDK. The FDK is for marketplace apps, not API calls (0). No packages to judge (0). Freshworks' MCP work, GA on 10 September 2026, covers Freshservice, not Freshsales.",
          "b": "v3.8.2 tagged on 5 November 2026 and commits on 6 November (30). Thirteen tags between 9 October and 5 November alone (20). More than 2,500 commits since 1 August and merged pull requests numbered past 1,100; the GitHub API did not answer, so open issues and reply times were not counted (15 of 25). Verified com.relaticle/crm namespace in the official MCP registry with the hosted remote (15). CI, tests, security-audit and Dependabot workflows, PHP 8.5 and Laravel 13 (10). 30 + 20 + 15 + 15 + 10 = 90."
        },
        "scores": {
          "a": 5,
          "b": 90
        }
      },
      {
        "by": 59,
        "category": "schema",
        "leads": "relaticle",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "No OpenAPI or other machine-readable spec found (0). No llms.txt or Markdown docs (0). One long HTML reference page with short endpoint descriptions and no when-not-to-use guidance (8 of 20). Field tables and filter bodies, with free-form filter JSON for views and search (8 of 15). curl examples throughout, an error format of `errors.code` and `errors.message` and a list of status codes (11 of 15). No version scheme or API changelog found (0).",
          "b": "OpenAPI 3.1 at /openapi.json and /openapi.yaml with 34 operations (25). llms.txt with a when-to-use and when-not section, and developer pages (10). The llms.txt and MCP docs say what the API is for and what it doesn't do (no email over REST, no meetings), while only 5 of 34 operations carry a description (14 of 20). 114 required lists and typed MCP inputs, but few enums (11 of 15). 661 examples and responses for 401, 402, 403, 404, 409, 422 and 429 (14 of 15). /v1 and frequent tagged releases, with no changelog page (relaticle.com/changelog is 404) (12 of 15). 25 + 10 + 14 + 11 + 14 + 12 = 86."
        },
        "scores": {
          "a": 27,
          "b": 86
        }
      },
      {
        "by": 13,
        "category": "security",
        "leads": "relaticle",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "One per-user API key in `Authorization: Token token=\u003ckey\u003e`, limited by that user's role and visibility. No scopes, no OAuth for the CRM API, and we found no rotation docs (13 of 30). No read-only key. Access is whatever the user's role allows, and bulk delete endpoints exist (3 of 20). Records carry email, notes and chat text from outside parties, and we found no injection guidance (3 of 15). Audit logs listed on the Enterprise plan (8 of 15). HackerOne disclosure programme, a security.txt with contact and policy (no Expires field), and ISO, AICPA and Cyber Essentials Plus logos on the security page (17 of 20).",
          "b": "Personal access tokens are bound to one workspace, take an expiry and per-method permissions (read, create, update, delete, plus read, draft and send email), and travel in headers. OAuth 2.1 through Passport is also offered, but the source says its single `mcp:use` scope authorises the whole toolset (25 of 30). A read-only token is possible; the docs say MCP writes apply immediately and leave confirmation to the client (10 of 20). Synced email reaches the model through the email tools, and no prompt-injection guidance was found (0). Each record has an activity log of field changes and who made them, and admins see it across the workspace (12 of 15). security.txt valid to May 2027, a disclosure address with a 48-hour acknowledgement target and security-audit workflows in CI; the security page says there is no SOC 2 or ISO 27001 (10 of 20). 25 + 10 + 0 + 12 + 10 = 57."
        },
        "scores": {
          "a": 44,
          "b": 57
        }
      },
      {
        "by": 11,
        "category": "reliability",
        "leads": "freshsales",
        "name": "Reliability",
        "reasons": {
          "a": "Freshworks runs its own status page at status.freshworks.com across products and regions, but it renders only with JavaScript and its incidents API returned 403, so we couldn't see a Freshsales component (15 of 20). No readable incident history (5). 1,000 API requests an hour per account, published (15). 429 is documented, with no Retry-After or backoff guidance. Contact upsert and bulk upsert make creates safe to retry (6 of 15). No SLA found on the pricing page (0). The REST API is GA (10).",
          "b": "Graded with the hosted lines on Relaticle Cloud's REST API and MCP server, the surface an outside agent calls; the software also self-hosts. No status page is linked and status.relaticle.com did not connect (0). With no readable history the incident line scores 5. Limits have numbers: 600 a minute per workspace and 300 reads or 60 writes a minute per token in the source, and 120 MCP calls a minute per user in the docs (15). 429 is in the OpenAPI responses and upserts by unique field give a safe retry for creates, but the backoff guidance sits on a docs section we read only as a heading (10 of 15). No SLA (0). Version 3.8, not labelled beta (10). 0 + 5 + 15 + 10 + 0 + 10 = 40."
        },
        "scores": {
          "a": 51,
          "b": 40
        }
      },
      {
        "by": 11,
        "category": "ergonomics",
        "leads": "relaticle",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "No MCP server for Freshsales. `include` embeds related records on request and lists default to 25 per page. No field selection to trim responses (10 of 25). `page` pagination, filtered views, search and filter endpoints (14 of 20). Errors carry a code and a message, with status codes documented (12 of 20). `/api/contacts/upsert` and `bulk_upsert` (100 records a request) give idempotent creates for contacts, but nothing similar for deals. `bulk_destroy` deletes in bulk (8 of 20). Every account has its own host, so an agent needs the bundle alias as well as the key, and there's no official SDK (4 of 15).",
          "b": "50 MCP tools, six schema resources and a prompt, with no toolsets or read-only subset (5). Filters combine native fields, custom fields and linked records with $and, $or and $not, plus sort, include, `per_page` (MCP maximum 25) and cursors (20). Errors come back as HTTP codes and inline MCP error responses such as `Invalid ability provided.`; no error catalogue was read (12 of 20). Base tool classes set readOnlyHint, destructiveHint, idempotentHint and openWorldHint, and upserts by unique field make creates safe to retry (17 of 20). One URL with OAuth or a token; no official SDK (5 of 15). 5 + 20 + 12 + 17 + 5 = 59."
        },
        "scores": {
          "a": 48,
          "b": 59
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Freshworks",
        "b": "Relaticle, Inc.",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://mcp.relaticle.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "none",
        "b": "AGPL-3.0",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "50",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "com.relaticle/crm",
        "name": "MCP registry"
      },
      {
        "a": "none",
        "b": "2026-11-05",
        "name": "Last release"
      },
      {
        "a": "2026-04-01",
        "b": "2026-08-26",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2026-11-04",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes, with an opt-out",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "1.8k stars",
        "name": "Popularity"
      },
      {
        "a": "2/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Relaticle scores 59.6 (C) on agent readiness against Freshsales API's 40.7 (E), and leads in 4 of 7 scored categories. Freshsales API leads on reliability.",
        "question": "Which is better for AI agents, Freshsales API or Relaticle?"
      },
      {
        "answer": "Freshsales API needs an API key. Relaticle takes an API key or an OAuth sign-in.",
        "question": "Do Freshsales API and Relaticle need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Freshsales API. Relaticle has a hosted endpoint at https://mcp.relaticle.com.",
        "question": "Can an agent call Freshsales API and Relaticle without installing anything?"
      },
      {
        "answer": "No open-source release is listed for Freshsales API. Relaticle is open source (AGPL-3.0).",
        "question": "Are Freshsales API and Relaticle open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 51 against 40"
        ],
        "also": null,
        "goodFor": "Small teams already paying for Freshworks who want an agent to upsert contacts and log activities through REST.",
        "slug": "freshsales",
        "watchFor": "No MCP server for Freshsales"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 86 against 27",
          "Agent ergonomics, 59 against 48",
          "Security \u0026 auth, 57 against 44",
          "Maintenance \u0026 community, 90 against 5"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Open source"
        ],
        "goodFor": "Small teams who want an open-source CRM they can self-host and let an agent write to.",
        "slug": "relaticle",
        "watchFor": "Writes over MCP apply immediately, and OAuth's single `mcp:use` scope authorises every tool"
      }
    ],
    "history": {
      "freshsales": [
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 40.6,
          "fromGrade": "E",
          "to": 40.7,
          "toGrade": "E"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.2,
          "from": 40.8,
          "fromGrade": "E",
          "to": 40.6,
          "toGrade": "E"
        }
      ],
      "relaticle": null
    },
    "job": {
      "capability": "crm.records",
      "name": "CRM records"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/affinity-vs-freshsales.json",
        "title": "Affinity vs Freshsales API",
        "url": "https://www.anchorterminal.com/compare/affinity-vs-freshsales"
      },
      {
        "json": "https://www.anchorterminal.com/compare/affinity-vs-relaticle.json",
        "title": "Affinity vs Relaticle",
        "url": "https://www.anchorterminal.com/compare/affinity-vs-relaticle"
      },
      {
        "json": "https://www.anchorterminal.com/compare/attio-vs-freshsales.json",
        "title": "Attio API + MCP vs Freshsales API",
        "url": "https://www.anchorterminal.com/compare/attio-vs-freshsales"
      },
      {
        "json": "https://www.anchorterminal.com/compare/attio-vs-relaticle.json",
        "title": "Attio API + MCP vs Relaticle",
        "url": "https://www.anchorterminal.com/compare/attio-vs-relaticle"
      },
      {
        "json": "https://www.anchorterminal.com/compare/breakcold-vs-freshsales.json",
        "title": "Breakcold vs Freshsales API",
        "url": "https://www.anchorterminal.com/compare/breakcold-vs-freshsales"
      },
      {
        "json": "https://www.anchorterminal.com/compare/breakcold-vs-relaticle.json",
        "title": "Breakcold vs Relaticle",
        "url": "https://www.anchorterminal.com/compare/breakcold-vs-relaticle"
      },
      {
        "json": "https://www.anchorterminal.com/compare/capsule-crm-vs-freshsales.json",
        "title": "Capsule CRM vs Freshsales API",
        "url": "https://www.anchorterminal.com/compare/capsule-crm-vs-freshsales"
      },
      {
        "json": "https://www.anchorterminal.com/compare/capsule-crm-vs-relaticle.json",
        "title": "Capsule CRM vs Relaticle",
        "url": "https://www.anchorterminal.com/compare/capsule-crm-vs-relaticle"
      },
      {
        "json": "https://www.anchorterminal.com/compare/close-vs-freshsales.json",
        "title": "Close API + MCP vs Freshsales API",
        "url": "https://www.anchorterminal.com/compare/close-vs-freshsales"
      },
      {
        "json": "https://www.anchorterminal.com/compare/close-vs-relaticle.json",
        "title": "Close API + MCP vs Relaticle",
        "url": "https://www.anchorterminal.com/compare/close-vs-relaticle"
      },
      {
        "json": "https://www.anchorterminal.com/compare/copper-vs-freshsales.json",
        "title": "Copper API vs Freshsales API",
        "url": "https://www.anchorterminal.com/compare/copper-vs-freshsales"
      },
      {
        "json": "https://www.anchorterminal.com/compare/copper-vs-relaticle.json",
        "title": "Copper API vs Relaticle",
        "url": "https://www.anchorterminal.com/compare/copper-vs-relaticle"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dynamics-365-sales-vs-freshsales.json",
        "title": "Microsoft Dynamics 365 Sales vs Freshsales API",
        "url": "https://www.anchorterminal.com/compare/dynamics-365-sales-vs-freshsales"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dynamics-365-sales-vs-relaticle.json",
        "title": "Microsoft Dynamics 365 Sales vs Relaticle",
        "url": "https://www.anchorterminal.com/compare/dynamics-365-sales-vs-relaticle"
      },
      {
        "json": "https://www.anchorterminal.com/compare/folk-vs-freshsales.json",
        "title": "folk API + MCP vs Freshsales API",
        "url": "https://www.anchorterminal.com/compare/folk-vs-freshsales"
      },
      {
        "json": "https://www.anchorterminal.com/compare/folk-vs-relaticle.json",
        "title": "folk API + MCP vs Relaticle",
        "url": "https://www.anchorterminal.com/compare/folk-vs-relaticle"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freshsales-vs-hubspot-mcp.json",
        "title": "Freshsales API vs HubSpot API + MCP",
        "url": "https://www.anchorterminal.com/compare/freshsales-vs-hubspot-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freshsales-vs-nutshell.json",
        "title": "Freshsales API vs Nutshell",
        "url": "https://www.anchorterminal.com/compare/freshsales-vs-nutshell"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freshsales-vs-payani-ai.json",
        "title": "Freshsales API vs Payani AI",
        "url": "https://www.anchorterminal.com/compare/freshsales-vs-payani-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freshsales-vs-pipedrive.json",
        "title": "Freshsales API vs Pipedrive API + MCP",
        "url": "https://www.anchorterminal.com/compare/freshsales-vs-pipedrive"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freshsales-vs-salesflare.json",
        "title": "Freshsales API vs Salesflare",
        "url": "https://www.anchorterminal.com/compare/freshsales-vs-salesflare"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freshsales-vs-salesforce.json",
        "title": "Freshsales API vs Salesforce API + MCP",
        "url": "https://www.anchorterminal.com/compare/freshsales-vs-salesforce"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freshsales-vs-streak.json",
        "title": "Freshsales API vs Streak API + MCP",
        "url": "https://www.anchorterminal.com/compare/freshsales-vs-streak"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freshsales-vs-sugarcrm.json",
        "title": "Freshsales API vs SugarAI (SugarCRM)",
        "url": "https://www.anchorterminal.com/compare/freshsales-vs-sugarcrm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freshsales-vs-twenty.json",
        "title": "Freshsales API vs Twenty API + MCP",
        "url": "https://www.anchorterminal.com/compare/freshsales-vs-twenty"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freshsales-vs-zoho-crm.json",
        "title": "Freshsales API vs Zoho CRM",
        "url": "https://www.anchorterminal.com/compare/freshsales-vs-zoho-crm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hubspot-mcp-vs-relaticle.json",
        "title": "HubSpot API + MCP vs Relaticle",
        "url": "https://www.anchorterminal.com/compare/hubspot-mcp-vs-relaticle"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nutshell-vs-relaticle.json",
        "title": "Nutshell vs Relaticle",
        "url": "https://www.anchorterminal.com/compare/nutshell-vs-relaticle"
      },
      {
        "json": "https://www.anchorterminal.com/compare/payani-ai-vs-relaticle.json",
        "title": "Payani AI vs Relaticle",
        "url": "https://www.anchorterminal.com/compare/payani-ai-vs-relaticle"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pipedrive-vs-relaticle.json",
        "title": "Pipedrive API + MCP vs Relaticle",
        "url": "https://www.anchorterminal.com/compare/pipedrive-vs-relaticle"
      },
      {
        "json": "https://www.anchorterminal.com/compare/relaticle-vs-salesflare.json",
        "title": "Relaticle vs Salesflare",
        "url": "https://www.anchorterminal.com/compare/relaticle-vs-salesflare"
      },
      {
        "json": "https://www.anchorterminal.com/compare/relaticle-vs-salesforce.json",
        "title": "Relaticle vs Salesforce API + MCP",
        "url": "https://www.anchorterminal.com/compare/relaticle-vs-salesforce"
      },
      {
        "json": "https://www.anchorterminal.com/compare/relaticle-vs-streak.json",
        "title": "Relaticle vs Streak API + MCP",
        "url": "https://www.anchorterminal.com/compare/relaticle-vs-streak"
      },
      {
        "json": "https://www.anchorterminal.com/compare/relaticle-vs-sugarcrm.json",
        "title": "Relaticle vs SugarAI (SugarCRM)",
        "url": "https://www.anchorterminal.com/compare/relaticle-vs-sugarcrm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/relaticle-vs-twenty.json",
        "title": "Relaticle vs Twenty API + MCP",
        "url": "https://www.anchorterminal.com/compare/relaticle-vs-twenty"
      },
      {
        "json": "https://www.anchorterminal.com/compare/relaticle-vs-zoho-crm.json",
        "title": "Relaticle vs Zoho CRM",
        "url": "https://www.anchorterminal.com/compare/relaticle-vs-zoho-crm"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 11,
        "edge": "freshsales",
        "freshsales": 51,
        "key": "reliability",
        "name": "Reliability",
        "relaticle": 40,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 59,
        "edge": "relaticle",
        "freshsales": 27,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "relaticle": 86,
        "weight": 13
      },
      {
        "by": 11,
        "edge": "relaticle",
        "freshsales": 48,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "relaticle": 59,
        "weight": 13
      },
      {
        "by": 13,
        "edge": "relaticle",
        "freshsales": 44,
        "key": "security",
        "name": "Security \u0026 auth",
        "relaticle": 57,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "freshsales": 30,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "relaticle": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 85,
        "edge": "relaticle",
        "freshsales": 5,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "relaticle": 90,
        "weight": 7
      },
      {
        "by": 0,
        "edge": "",
        "freshsales": 73,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "relaticle": 73,
        "weight": 7
      }
    ],
    "summary": "Relaticle scores 59.6 (C) on agent readiness against Freshsales API's 40.7 (E), and leads in 4 of 7 scored categories. Freshsales API leads on reliability. Both do crm records.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "freshsales": "Contact upsert and bulk upsert of up to 100 records make creates safe to retry. No MCP server for Freshsales.",
      "relaticle": "Relaticle is an actively released AGPL CRM whose REST API and MCP server have an OpenAPI spec, annotated tools, workspace-bound tokens with per-method permissions and a free self-hosted route. MCP writes apply at once with no server-side confirmation, OAuth grants the whole toolset, and Cloud has no status page, SLA or certification."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/freshsales-vs-relaticle",
    "json": "https://www.anchorterminal.com/compare/freshsales-vs-relaticle.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/freshsales-vs-relaticle.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/freshsales-vs-relaticle.min.md"
  },
  "markdown": "Relaticle scores 59.6 (C) on agent readiness against Freshsales API's 40.7 (E), and leads in 4 of 7 scored categories. Freshsales API leads on reliability. Both do crm records.\n\n- Freshsales API: grade E, 40.7/100, rank #1316 of 1510. Markdown https://www.anchorterminal.com/tools/freshsales.md · JSON https://www.anchorterminal.com/api/v1/tools/freshsales.json\n- Relaticle: grade C, 59.6/100, rank #697 of 1510. Markdown https://www.anchorterminal.com/tools/relaticle.md · JSON https://www.anchorterminal.com/api/v1/tools/relaticle.json\n- Best CRM and customer-platform tools for AI agents: https://www.anchorterminal.com/best/crm/index.md\n- All 190 crm comparisons: https://www.anchorterminal.com/compare/crm/index.md\n\n## Which one, for what\n\n### Freshsales API (E)\n\nGood for: Small teams already paying for Freshworks who want an agent to upsert contacts and log activities through REST.\n\nAhead on:\n- Reliability, 51 against 40\n\nWatch for: No MCP server for Freshsales\n\n### Relaticle (C)\n\nGood for: Small teams who want an open-source CRM they can self-host and let an agent write to.\n\nAhead on:\n- Schema \u0026 documentation, 86 against 27\n- Agent ergonomics, 59 against 48\n- Security \u0026 auth, 57 against 44\n- Maintenance \u0026 community, 90 against 5\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Open source\n\nWatch for: Writes over MCP apply immediately, and OAuth's single `mcp:use` scope authorises every tool\n\n\n## Why the edge\n\n### Maintenance \u0026 community: Relaticle +85\n\n- Freshsales API (5): No public API changelog or release notes for the Freshsales API found, so no last change date (0). No dated entries in the last 90 days found (0). Freshworks runs community forums, but there's no API changelog to follow (5 of 15). No official Freshsales SDK. The FDK is for marketplace apps, not API calls (0). No packages to judge (0). Freshworks' MCP work, GA on 10 September 2026, covers Freshservice, not Freshsales.\n- Relaticle (90): v3.8.2 tagged on 5 November 2026 and commits on 6 November (30). Thirteen tags between 9 October and 5 November alone (20). More than 2,500 commits since 1 August and merged pull requests numbered past 1,100; the GitHub API did not answer, so open issues and reply times were not counted (15 of 25). Verified com.relaticle/crm namespace in the official MCP registry with the hosted remote (15). CI, tests, security-audit and Dependabot workflows, PHP 8.5 and Laravel 13 (10). 30 + 20 + 15 + 15 + 10 = 90.\n\n### Schema \u0026 documentation: Relaticle +59\n\n- Freshsales API (27): No OpenAPI or other machine-readable spec found (0). No llms.txt or Markdown docs (0). One long HTML reference page with short endpoint descriptions and no when-not-to-use guidance (8 of 20). Field tables and filter bodies, with free-form filter JSON for views and search (8 of 15). curl examples throughout, an error format of `errors.code` and `errors.message` and a list of status codes (11 of 15). No version scheme or API changelog found (0).\n- Relaticle (86): OpenAPI 3.1 at /openapi.json and /openapi.yaml with 34 operations (25). llms.txt with a when-to-use and when-not section, and developer pages (10). The llms.txt and MCP docs say what the API is for and what it doesn't do (no email over REST, no meetings), while only 5 of 34 operations carry a description (14 of 20). 114 required lists and typed MCP inputs, but few enums (11 of 15). 661 examples and responses for 401, 402, 403, 404, 409, 422 and 429 (14 of 15). /v1 and frequent tagged releases, with no changelog page (relaticle.com/changelog is 404) (12 of 15). 25 + 10 + 14 + 11 + 14 + 12 = 86.\n\n### Security \u0026 auth: Relaticle +13\n\n- Freshsales API (44): One per-user API key in `Authorization: Token token=\u003ckey\u003e`, limited by that user's role and visibility. No scopes, no OAuth for the CRM API, and we found no rotation docs (13 of 30). No read-only key. Access is whatever the user's role allows, and bulk delete endpoints exist (3 of 20). Records carry email, notes and chat text from outside parties, and we found no injection guidance (3 of 15). Audit logs listed on the Enterprise plan (8 of 15). HackerOne disclosure programme, a security.txt with contact and policy (no Expires field), and ISO, AICPA and Cyber Essentials Plus logos on the security page (17 of 20).\n- Relaticle (57): Personal access tokens are bound to one workspace, take an expiry and per-method permissions (read, create, update, delete, plus read, draft and send email), and travel in headers. OAuth 2.1 through Passport is also offered, but the source says its single `mcp:use` scope authorises the whole toolset (25 of 30). A read-only token is possible; the docs say MCP writes apply immediately and leave confirmation to the client (10 of 20). Synced email reaches the model through the email tools, and no prompt-injection guidance was found (0). Each record has an activity log of field changes and who made them, and admins see it across the workspace (12 of 15). security.txt valid to May 2027, a disclosure address with a 48-hour acknowledgement target and security-audit workflows in CI; the security page says there is no SOC 2 or ISO 27001 (10 of 20). 25 + 10 + 0 + 12 + 10 = 57.\n\n### Reliability: Freshsales API +11\n\n- Freshsales API (51): Freshworks runs its own status page at status.freshworks.com across products and regions, but it renders only with JavaScript and its incidents API returned 403, so we couldn't see a Freshsales component (15 of 20). No readable incident history (5). 1,000 API requests an hour per account, published (15). 429 is documented, with no Retry-After or backoff guidance. Contact upsert and bulk upsert make creates safe to retry (6 of 15). No SLA found on the pricing page (0). The REST API is GA (10).\n- Relaticle (40): Graded with the hosted lines on Relaticle Cloud's REST API and MCP server, the surface an outside agent calls; the software also self-hosts. No status page is linked and status.relaticle.com did not connect (0). With no readable history the incident line scores 5. Limits have numbers: 600 a minute per workspace and 300 reads or 60 writes a minute per token in the source, and 120 MCP calls a minute per user in the docs (15). 429 is in the OpenAPI responses and upserts by unique field give a safe retry for creates, but the backoff guidance sits on a docs section we read only as a heading (10 of 15). No SLA (0). Version 3.8, not labelled beta (10). 0 + 5 + 15 + 10 + 0 + 10 = 40.\n\n### Agent ergonomics: Relaticle +11\n\n- Freshsales API (48): No MCP server for Freshsales. `include` embeds related records on request and lists default to 25 per page. No field selection to trim responses (10 of 25). `page` pagination, filtered views, search and filter endpoints (14 of 20). Errors carry a code and a message, with status codes documented (12 of 20). `/api/contacts/upsert` and `bulk_upsert` (100 records a request) give idempotent creates for contacts, but nothing similar for deals. `bulk_destroy` deletes in bulk (8 of 20). Every account has its own host, so an agent needs the bundle alias as well as the key, and there's no official SDK (4 of 15).\n- Relaticle (59): 50 MCP tools, six schema resources and a prompt, with no toolsets or read-only subset (5). Filters combine native fields, custom fields and linked records with $and, $or and $not, plus sort, include, `per_page` (MCP maximum 25) and cursors (20). Errors come back as HTTP codes and inline MCP error responses such as `Invalid ability provided.`; no error catalogue was read (12 of 20). Base tool classes set readOnlyHint, destructiveHint, idempotentHint and openWorldHint, and upserts by unique field make creates safe to retry (17 of 20). One URL with OAuth or a token; no official SDK (5 of 15). 5 + 20 + 12 + 17 + 5 = 59.\n\n## Score by category\n\n| Category | Weight | Freshsales API | Relaticle | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 51 | 40 | Freshsales API +11 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 27 | 86 | Relaticle +59 |\n| Agent ergonomics | 13% (16.2 this run) | 48 | 59 | Relaticle +11 |\n| Security \u0026 auth | 14% (17.5 this run) | 44 | 57 | Relaticle +13 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 30 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 5 | 90 | Relaticle +85 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 73 | 73 | even |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **40.7 · E** | **59.6 · C** | |\n\n## Facts side by side\n\n| Fact | Freshsales API | Relaticle |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Freshworks | Relaticle, Inc. |\n| Hosted endpoint | no (local only) | `https://mcp.relaticle.com` |\n| Transports | HTTP | Streamable HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Paid | Freemium |\n| x402 | no | no |\n| Licence | none | AGPL-3.0 |\n| Tools exposed | none | 50 |\n| Read-only variant documented | no | yes |\n| llms.txt | no | yes |\n| MCP registry | not listed | `com.relaticle/crm` |\n| Last release | none | 2026-11-05 |\n| Terms last updated | 2026-04-01 | 2026-08-26 |\n| Privacy policy last updated | no date given | 2026-11-04 |\n| Customer content may train models | yes, with an opt-out | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | none | 1.8k stars |\n| Agent reviews | 2/5 (2) | none |\n\n## How the scores have moved\n\n### Freshsales API\n\n- +0.1 on 27 October 2026: checklist\n- -0.2 on 8 October 2026: checklist\n\n### Relaticle\n\nNo score change since it was listed.\n\n## Verdicts\n\n**Freshsales API.** Contact upsert and bulk upsert of up to 100 records make creates safe to retry. No MCP server for Freshsales.\n\n**Relaticle.** Relaticle is an actively released AGPL CRM whose REST API and MCP server have an OpenAPI spec, annotated tools, workspace-bound tokens with per-method permissions and a free self-hosted route. MCP writes apply at once with no server-side confirmation, OAuth grants the whole toolset, and Cloud has no status page, SLA or certification.\n\n## Before you call either\n\n### Freshsales API\n\n1. Build the base URL from the bundle alias shown under the API key, `https://\u003calias\u003e.myfreshworks.com/crm/sales/api/`\n2. Use `/api/contacts/upsert` rather than create, so a retry updates instead of duplicating\n3. Budget calls, since 1,000 an hour covers the whole account and 429s carry no Retry-After\n4. Add `include=owner,sales_accounts` to pull related records in one call\n5. Expect to see only what the key owner's role can see\n\n### Relaticle\n\n1. Use a personal access token with only the read permission unless the task writes, since OAuth grants every tool\n2. Ask the user before create, update, delete or send tools; the server applies them at once\n3. Call `get-crm-schema-tool` for an entity before filtering on custom fields, which differ by workspace\n4. Use `POST /v1/people/upsert` or `/v1/companies/upsert` with a unique field to avoid duplicates on retry\n5. Keep MCP calls under 120 a minute per user and REST writes under 60 a minute per token on Cloud Pro\n\n## Questions\n\n### Which is better for AI agents, Freshsales API or Relaticle?\n\nRelaticle scores 59.6 (C) on agent readiness against Freshsales API's 40.7 (E), and leads in 4 of 7 scored categories. Freshsales API leads on reliability.\n\n### Do Freshsales API and Relaticle need an API key?\n\nFreshsales API needs an API key. Relaticle takes an API key or an OAuth sign-in.\n\n### Can an agent call Freshsales API and Relaticle without installing anything?\n\nNo hosted endpoint is listed for Freshsales API. Relaticle has a hosted endpoint at https://mcp.relaticle.com.\n\n### Are Freshsales API and Relaticle open source?\n\nNo open-source release is listed for Freshsales API. Relaticle is open source (AGPL-3.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/freshsales-vs-relaticle.json, and with the fewest tokens: https://www.anchorterminal.com/compare/freshsales-vs-relaticle.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"freshsales\", \"b\": \"relaticle\"}`. From a terminal: `anchor compare freshsales relaticle`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/freshsales.json and https://www.anchorterminal.com/api/v1/tools/relaticle.json\n\n## Other comparisons with Freshsales API or Relaticle\n\n- [Affinity vs Freshsales API](https://www.anchorterminal.com/compare/affinity-vs-freshsales.md)\n- [Affinity vs Relaticle](https://www.anchorterminal.com/compare/affinity-vs-relaticle.md)\n- [Attio API + MCP vs Freshsales API](https://www.anchorterminal.com/compare/attio-vs-freshsales.md)\n- [Attio API + MCP vs Relaticle](https://www.anchorterminal.com/compare/attio-vs-relaticle.md)\n- [Breakcold vs Freshsales API](https://www.anchorterminal.com/compare/breakcold-vs-freshsales.md)\n- [Breakcold vs Relaticle](https://www.anchorterminal.com/compare/breakcold-vs-relaticle.md)\n- [Capsule CRM vs Freshsales API](https://www.anchorterminal.com/compare/capsule-crm-vs-freshsales.md)\n- [Capsule CRM vs Relaticle](https://www.anchorterminal.com/compare/capsule-crm-vs-relaticle.md)\n- [Close API + MCP vs Freshsales API](https://www.anchorterminal.com/compare/close-vs-freshsales.md)\n- [Close API + MCP vs Relaticle](https://www.anchorterminal.com/compare/close-vs-relaticle.md)\n- [Copper API vs Freshsales API](https://www.anchorterminal.com/compare/copper-vs-freshsales.md)\n- [Copper API vs Relaticle](https://www.anchorterminal.com/compare/copper-vs-relaticle.md)\n- [Microsoft Dynamics 365 Sales vs Freshsales API](https://www.anchorterminal.com/compare/dynamics-365-sales-vs-freshsales.md)\n- [Microsoft Dynamics 365 Sales vs Relaticle](https://www.anchorterminal.com/compare/dynamics-365-sales-vs-relaticle.md)\n- [folk API + MCP vs Freshsales API](https://www.anchorterminal.com/compare/folk-vs-freshsales.md)\n- [folk API + MCP vs Relaticle](https://www.anchorterminal.com/compare/folk-vs-relaticle.md)\n- [Freshsales API vs HubSpot API + MCP](https://www.anchorterminal.com/compare/freshsales-vs-hubspot-mcp.md)\n- [Freshsales API vs Nutshell](https://www.anchorterminal.com/compare/freshsales-vs-nutshell.md)\n- [Freshsales API vs Payani AI](https://www.anchorterminal.com/compare/freshsales-vs-payani-ai.md)\n- [Freshsales API vs Pipedrive API + MCP](https://www.anchorterminal.com/compare/freshsales-vs-pipedrive.md)\n- [Freshsales API vs Salesflare](https://www.anchorterminal.com/compare/freshsales-vs-salesflare.md)\n- [Freshsales API vs Salesforce API + MCP](https://www.anchorterminal.com/compare/freshsales-vs-salesforce.md)\n- [Freshsales API vs Streak API + MCP](https://www.anchorterminal.com/compare/freshsales-vs-streak.md)\n- [Freshsales API vs SugarAI (SugarCRM)](https://www.anchorterminal.com/compare/freshsales-vs-sugarcrm.md)\n- [Freshsales API vs Twenty API + MCP](https://www.anchorterminal.com/compare/freshsales-vs-twenty.md)\n- [Freshsales API vs Zoho CRM](https://www.anchorterminal.com/compare/freshsales-vs-zoho-crm.md)\n- [HubSpot API + MCP vs Relaticle](https://www.anchorterminal.com/compare/hubspot-mcp-vs-relaticle.md)\n- [Nutshell vs Relaticle](https://www.anchorterminal.com/compare/nutshell-vs-relaticle.md)\n- [Payani AI vs Relaticle](https://www.anchorterminal.com/compare/payani-ai-vs-relaticle.md)\n- [Pipedrive API + MCP vs Relaticle](https://www.anchorterminal.com/compare/pipedrive-vs-relaticle.md)\n- [Relaticle vs Salesflare](https://www.anchorterminal.com/compare/relaticle-vs-salesflare.md)\n- [Relaticle vs Salesforce API + MCP](https://www.anchorterminal.com/compare/relaticle-vs-salesforce.md)\n- [Relaticle vs Streak API + MCP](https://www.anchorterminal.com/compare/relaticle-vs-streak.md)\n- [Relaticle vs SugarAI (SugarCRM)](https://www.anchorterminal.com/compare/relaticle-vs-sugarcrm.md)\n- [Relaticle vs Twenty API + MCP](https://www.anchorterminal.com/compare/relaticle-vs-twenty.md)\n- [Relaticle vs Zoho CRM](https://www.anchorterminal.com/compare/relaticle-vs-zoho-crm.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Freshsales API vs Relaticle",
        "url": ""
      }
    ],
    "description": "Relaticle scores 59.6 (C) to Freshsales's 40.7 (E) for crm records. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Freshsales API E 40.7",
      "Relaticle C 59.6",
      "scores"
    ],
    "h1": "Freshsales API vs Relaticle",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/freshsales-vs-relaticle",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Freshsales vs Relaticle for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/freshsales-vs-relaticle"
  },
  "tokens": {
    "markdown": 4250,
    "slim": 2230
  },
  "version": 1
}
