{
  "data": {
    "a": {
      "slug": "bundle-social",
      "name": "bundle.social",
      "vendor": "BUNDLE SP. Z O.O.",
      "vendorUrl": "https://bundle.social",
      "kind": "http-api",
      "category": "social-media",
      "summary": "bundle.social is a hosted REST API from BUNDLE SP. Z O.O. in Warsaw for publishing, scheduling, commenting and reading analytics across 15 social networks. It also ships a TypeScript SDK, a CLI and a local MCP server.",
      "url": "https://www.anchorterminal.com/tools/bundle-social",
      "markdownUrl": "https://www.anchorterminal.com/tools/bundle-social.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/bundle-social.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/bundle-social.json",
      "repo": "https://github.com/bundleglobal/bundlesocial-node",
      "license": "Proprietary hosted service under bundle.social's terms of service. The TypeScript SDK, the CLI and the MCP server on GitHub are MIT",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://api.bundle.social/api/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "bundlesocial"
        },
        {
          "registry": "npm",
          "name": "bundlesocial-mcp"
        },
        {
          "registry": "npm",
          "name": "bundlesocial-cli"
        }
      ],
      "auth": "api-key",
      "authNotes": "Self-serve organisation API key sent in the `x-api-key` header, created and rolled in the dashboard after a browser sign-up, up to 50 keys an organisation. Keys carry no scopes and reach every team. Connecting a social account needs a person to complete that network's OAuth consent through a hosted connect link.",
      "pricing": "freemium",
      "pricingNotes": "Free plan at $0 with 20 posts a month, three teams and API access, no payment details needed. Pro is $100 a month for 10,000 posts and Business $400 for 100,000, both with unlimited connected accounts. Enterprise is quoted. X actions are charged from prepaid credit at X's rates (https://bundle.social/pricing.md).",
      "priceSummary": "$100 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in llms.txt, pricing.md, the docs index or the OpenAPI description in the SDK repository (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": 68,
      "popularity": {
        "githubStars": 2,
        "npmWeekly": 4095,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://info.bundle.social",
      "llmsTxt": "https://bundle.social/llms.txt",
      "openapi": "https://api.bundle.social/swagger-json",
      "capabilities": [
        "social.post",
        "social.schedule",
        "social.analytics",
        "social.comments",
        "social.media-upload"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "no-card",
        "api-key",
        "openapi",
        "llms-txt",
        "mcp",
        "cli",
        "typescript",
        "webhooks",
        "status-page"
      ],
      "lastRelease": "2026-10-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 60.1,
        "grade": "C",
        "agentReady": false,
        "rank": 530,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 66,
          "maintenance": 78,
          "payments": 35,
          "reliability": 63,
          "schema": 86,
          "security": 34,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "The REST API has a public OpenAPI 3.0 description of 194 operations, Markdown docs and published rate limits, and the free plan needs no card. Organisation API keys carry no scopes, there is no idempotency key, and the status page shows one API outage of 4 hours 3 minutes on 31 August 2026.",
        "bestFor": "A SaaS product or agent that manages many accounts for many customers, since paid plans do not charge per connected account and teams separate tenants.",
        "strengths": [
          "OpenAPI 3.0.2 description with 194 operations, each with a description, plus llms.txt, llms-full.txt and Markdown copies of every docs page",
          "Paid plans are priced per organisation with no fee per connected account. The free plan covers 20 posts a month and needs no payment details",
          "Rate limits are published as three windows (100 a second, 500 per 10 seconds, 2,000 a minute), counted per endpoint for API keys",
          "Platform errors come back with a stable `code`, a `userFacingMessage` and an `isTransient` flag in `errorsVerbose`",
          "Valid security.txt and a disclosure policy that promises acknowledgement within 3 business days"
        ],
        "weaknesses": [
          "API keys are organisation-wide with no scopes or read-only mode found, so one key reaches every team and connected account",
          "No idempotency key on `POST /api/v1/post`. A `referenceKey` with conflict protection is the nearest safeguard",
          "The status page records the API down for 4 hours 3 minutes on 31 August 2026",
          "The DPA is sent on request only, and no sub-processor list or certification was found",
          "One official SDK (TypeScript). The MCP server is local stdio only, with 68 tools and no toolsets"
        ],
        "agentNotes": [
          "Send the key in the `x-api-key` header to `https://api.bundle.social/api/v1`. A missing key returns 401 and a bad key 403",
          "Pass `teamId` on most calls. Set `BUNDLESOCIAL_TEAM_ID` for the MCP server or CLI when the organisation has more than one team",
          "Set a `referenceKey` on each post and look it up with the reference-key endpoint before retrying a create, because there is no idempotency key",
          "Check `GET /api/v1/organization/usage/daily-limits` before bulk scheduling. Failed and deleted posts still count against the monthly quota",
          "A person must complete each network's OAuth consent in a browser. Keep prepaid credit for X, where a post costs $0.015 or $0.20 with a link"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 60.1
          }
        ],
        "editorialScores": {
          "ergonomics": 66,
          "maintenance": 78,
          "payments": 35,
          "reliability": 63,
          "schema": 86,
          "security": 34,
          "transparency": 44
        },
        "provenanceScore": 86
      },
      "connect": {
        "install": "npm install bundlesocial",
        "http": "curl \"https://api.bundle.social/api/v1/team\" -H \"x-api-key: $BUNDLE_SOCIAL_API_KEY\"",
        "claudeCode": "claude mcp add bundlesocial --env BUNDLESOCIAL_API_KEY=sk_live_... -- npx -y bundlesocial-mcp",
        "config": {
          "mcpServers": {
            "bundlesocial": {
              "args": [
                "-y",
                "bundlesocial-mcp"
              ],
              "command": "npx",
              "env": {
                "BUNDLESOCIAL_API_KEY": "sk_live_..."
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/social.post",
        "tool": "https://letme.dev/bundle-social"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 100,
          "note": "10,000 posts a month, unlimited connected accounts"
        },
        {
          "item": "Business plan",
          "unit": "month",
          "usd": 400,
          "note": "100,000 posts a month"
        },
        {
          "item": "X post",
          "unit": "tx",
          "usd": 0.015,
          "note": "X's charge passed through, from prepaid credit"
        },
        {
          "item": "X post with a link",
          "unit": "tx",
          "usd": 0.2,
          "note": "X's charge passed through"
        }
      ],
      "provenance": {
        "legalEntity": "BUNDLE SP. Z O.O.",
        "domain": "bundle.social",
        "domainRegistered": "2023-09-17",
        "endpointOnVendorDomain": true,
        "terms": "https://bundle.social/terms",
        "privacy": "https://bundle.social/privacy",
        "statusPage": "https://bundlesocial.betteruptime.com/",
        "changelog": "https://info.bundle.social/changelog",
        "securityTxt": "valid",
        "checked": "2026-10-09",
        "notes": [
          "The terms (last updated 14 July 2026) name BUNDLE SP. Z O.O., ul. Hoża 86 / 410, 00-682 Warsaw, KRS 0001103308, and say they govern the website, dashboard and API. Polish law applies.",
          "The privacy policy (last updated 2 July 2026) covers the same Service and says the company is a processor for customer content and connected account data.",
          "security.txt at bundle.social/.well-known/security.txt expires on 7 April 2027 and gives a contact address and the contact page.",
          "RDAP gives a registration date of 2023-09-17 for bundle.social.",
          "The status page is on Better Stack's betteruptime.com domain. The API answers at api.bundle.social and the docs at info.bundle.social."
        ],
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/bundle-social.json",
      "live": {
        "slug": "bundle-social",
        "probe": {
          "target": "https://api.bundle.social/api/v1",
          "method": "get",
          "lastAt": "2026-10-10T04:40:44.924205505Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 159,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 126,
          "p95ms24h": 329,
          "samples24h": 133,
          "samples30d": 133,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 48,
              "ok": 48
            }
          ]
        },
        "vendorStatus": {
          "page": "https://bundlesocial.betteruptime.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:50:11.659944209Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "bundleglobal/bundlesocial-node",
            "version": "v2.66.0",
            "released": "2026-10-06",
            "seenAt": "2026-10-09T16:44:11.330353144Z"
          },
          {
            "registry": "npm",
            "name": "bundlesocial",
            "version": "2.66.0",
            "seenAt": "2026-10-09T16:44:07.124149089Z"
          },
          {
            "registry": "npm",
            "name": "bundlesocial-cli",
            "version": "1.2.0",
            "seenAt": "2026-10-09T16:44:09.336926914Z"
          },
          {
            "registry": "npm",
            "name": "bundlesocial-mcp",
            "version": "1.2.0",
            "seenAt": "2026-10-09T16:44:08.016971776Z"
          }
        ],
        "githubStars": 2,
        "npmWeekly": 4095,
        "pages": [
          {
            "url": "https://info.bundle.social/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:40:30.493711689Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "3cc1075e6da1"
          },
          {
            "url": "https://bundle.social/pricing.md",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:33:26.088434635Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a06b56dc1904"
          },
          {
            "url": "https://bundle.social/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:33:28.243797522Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "873c63ca40f1"
          },
          {
            "url": "https://bundle.social/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:33:30.268270502Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "cfd8eeb305a0"
          }
        ],
        "updatedAt": "2026-10-10T04:40:44.924205505Z"
      }
    },
    "answer": "bundle.social scores 60.1 (C) on agent readiness against Metricool API + MCP's 38.3 (E), and leads in 6 of 7 scored categories. Metricool API + MCP leads on security \u0026 auth.",
    "b": {
      "slug": "metricool",
      "name": "Metricool API + MCP",
      "vendor": "Metricool",
      "vendorUrl": "https://metricool.com",
      "kind": "http-api",
      "category": "social-media",
      "summary": "Analytics-first social suite with a large REST API (553 paths) and a hosted OAuth MCP server.",
      "url": "https://www.anchorterminal.com/tools/metricool",
      "markdownUrl": "https://www.anchorterminal.com/tools/metricool.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/metricool.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/metricool.json",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://app.metricool.com/api",
      "packages": [
        {
          "registry": "pypi",
          "name": "mcp-metricool"
        }
      ],
      "auth": "mixed",
      "authNotes": "REST API takes the account token in the X-Mc-Auth header plus userId and blogId parameters on every call. The hosted MCP uses OAuth. The older local PyPI server reads METRICOOL_USER_TOKEN and METRICOOL_USER_ID and needs API access.",
      "pricing": "freemium",
      "pricingNotes": "Free plan for 1 brand with 20 scheduled posts, 30 days of analytics and the MCP, no LinkedIn or X. Starter $25 a month for 5 brands or $45 for 10 ($20 and $36 billed yearly). REST API only on Advanced, $67 a month for 15 brands, $107 for 25, $210 for 50 ($53, $85 and $159 billed yearly). X accounts $10 a month each on top. Euro prices differ (https://metricool.com/pricing/).",
      "priceSummary": "$25 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 or per-call payment in the API docs, help centre or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": 424,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://app.metricool.com/resources/apidocs/index.html",
      "llmsTxt": "https://help.metricool.com/llms.txt",
      "openapi": "https://app.metricool.com/api/swagger.json",
      "capabilities": [
        "social.post",
        "social.schedule",
        "social.analytics",
        "social.media-upload"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "mcp",
        "openapi",
        "llms-txt",
        "python",
        "closed-source"
      ],
      "lastRelease": "2025-10-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 38.3,
        "grade": "E",
        "agentReady": false,
        "rank": 921,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 14,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 39,
          "maintenance": 6,
          "payments": 30,
          "reliability": 35,
          "schema": 56,
          "security": 48,
          "transparency": 59
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-10-01"
        },
        "negative": -2,
        "negativeNotes": [
          "2026-10-01. The help centre says the Metricool MCP server is public at metricool/mcp-metricool on GitHub. That repo returned 404 on 30 September and asked for credentials on 1 and 2 October, and the metricool organisation page lists one public repository, a fork of modelcontextprotocol/servers. The open-source claim doesn't hold for readers. -2 (https://help.metricool.com/faqs-about-the-metricool-mcp-1i3w0, https://github.com/metricool)"
        ],
        "verdict": "Hosted MCP with OAuth and separate mcp:read and mcp:write scopes, on every plan including Free. REST API only on Advanced ($67 a month) and Custom.",
        "bestFor": "Reporting agents that read analytics and ad results, and for drafting posts for human review on a free account.",
        "strengths": [
          "Hosted MCP with OAuth and separate mcp:read and mcp:write scopes, on every plan including Free",
          "Six hosted MCP tools per the help centre, four that read and two that write",
          "OpenAPI spec covering 553 paths, per the 30 September check",
          "Analytics across organic networks and Meta, Google and TikTok ad accounts, with all data on EU servers per the privacy policy",
          "The REST token can be regenerated in settings, which cuts off the old one at once"
        ],
        "weaknesses": [
          "REST API only on Advanced ($67 a month) and Custom",
          "No published rate limits, 429 guidance or API changelog",
          "Three values on every REST call (the X-Mc-Auth token, userId and blogId)",
          "PyPI MCP package still at 1.1.9 from 7 October 2025, and the GitHub repo the help centre names isn't public",
          "No security disclosure route or certification found"
        ],
        "agentNotes": [
          "Connect the hosted MCP at https://ai.metricool.com/mcp with OAuth, and ask only for mcp:read when the job is reporting",
          "Call admin/simpleProfiles with your userId to list brands and their blogId values",
          "Normalise media through `actions/normalize/image/url` first, or the post goes out without it",
          "Give publicationDate a dateTime and an IANA timezone, in the future",
          "Back off on your own, since no rate limits or Retry-After are documented"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 38.3
          }
        ],
        "editorialScores": {
          "ergonomics": 39,
          "maintenance": 6,
          "payments": 30,
          "reliability": 35,
          "schema": 56,
          "security": 48,
          "transparency": 47
        },
        "provenanceScore": 71
      },
      "connect": {
        "http": "curl \"https://app.metricool.com/api/admin/simpleProfiles?userId=$METRICOOL_USER_ID\" -H \"X-Mc-Auth: $METRICOOL_API_TOKEN\"",
        "claudeCode": "claude mcp add --transport http metricool https://ai.metricool.com/mcp",
        "config": {
          "mcpServers": {
            "metricool": {
              "type": "http",
              "url": "https://ai.metricool.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/social.post",
        "tool": "https://letme.dev/metricool"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "Starter",
          "unit": "month",
          "usd": 25,
          "note": "5 brands, no REST API. $20 a month billed yearly"
        },
        {
          "item": "Advanced",
          "unit": "month",
          "usd": 67,
          "note": "15 brands, cheapest plan with the REST API. $53 a month billed yearly"
        },
        {
          "item": "Advanced 25",
          "unit": "month",
          "usd": 107,
          "note": "25 brands. $85 a month billed yearly"
        },
        {
          "item": "Advanced 50",
          "unit": "month",
          "usd": 210,
          "note": "50 brands. $159 a month billed yearly"
        }
      ],
      "provenance": {
        "legalEntity": "METRICOOL SOFTWARE, SL",
        "domain": "metricool.com",
        "domainRegistered": "2015-04-04",
        "endpointOnVendorDomain": true,
        "terms": "https://metricool.com/legal-terms/",
        "privacy": "https://metricool.com/privacy-policy/",
        "statusPage": "https://status.metricool.com/",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The terms name METRICOOL SOFTWARE, SL of Madrid, NIF B87527115."
        ],
        "score": 71
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/metricool.json",
      "live": {
        "slug": "metricool",
        "probe": {
          "target": "https://app.metricool.com/api",
          "method": "get",
          "lastAt": "2026-10-10T04:40:56.049160411Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 62,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.96,
          "p50ms24h": 67,
          "p95ms24h": 192,
          "samples24h": 248,
          "samples30d": 2484,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 271
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 48,
              "ok": 48
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.metricool.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:50:48.206895536Z"
        },
        "versions": [
          {
            "registry": "pypi",
            "name": "mcp-metricool",
            "version": "1.1.9",
            "released": "2025-10-07",
            "seenAt": "2026-10-09T17:05:16.620791371Z"
          }
        ],
        "pypiWeekly": 471,
        "securityTxt": {
          "url": "https://metricool.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:39:28.786743739Z"
        },
        "llmsTxt": {
          "url": "https://help.metricool.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:02:17.893548167Z"
        },
        "domain": {
          "domain": "metricool.com",
          "registered": "2015-04-04",
          "source": "https://rdap.verisign.com/com/v1/domain/metricool.com",
          "checkedAt": "2026-10-04T13:09:19.936087655Z"
        },
        "pages": [
          {
            "url": "https://metricool.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:42:03.870705022Z",
            "changedAt": "2026-10-09T18:42:03.870705022Z",
            "fingerprint": "f0879ef663d8"
          },
          {
            "url": "https://metricool.com/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:42:05.672499338Z",
            "changedAt": "2026-10-09T18:42:05.672499338Z",
            "fingerprint": "951672c81eca"
          },
          {
            "url": "https://metricool.com/legal-terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:42:01.523775667Z",
            "changedAt": "2026-10-09T18:42:01.523775667Z",
            "fingerprint": "54627c461693"
          }
        ],
        "updatedAt": "2026-10-10T04:40:56.049160411Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "BUNDLE SP. Z O.O.",
        "b": "Metricool",
        "name": "Vendor"
      },
      {
        "a": "https://api.bundle.social/api/v1",
        "b": "https://app.metricool.com/api",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, stdio",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "$0.015 per transaction",
        "b": "not published",
        "name": "Price for social posting"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary hosted service under bundle.social's terms of service. The TypeScript SDK, the CLI and the MCP server on GitHub are MIT",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "68",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-06",
        "b": "2025-10-07",
        "name": "Last release"
      },
      {
        "a": "2026-07-14",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-07-02",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "2 stars, 4.1k npm/wk",
        "b": "424 PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "2.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "bundle.social scores 60.1 (C) on agent readiness against Metricool API + MCP's 38.3 (E), and leads in 6 of 7 scored categories. Metricool API + MCP leads on security \u0026 auth.",
        "question": "Which is better for AI agents, bundle.social or Metricool API + MCP?"
      },
      {
        "answer": "bundle.social needs an API key. Metricool API + MCP takes an API key or an OAuth sign-in.",
        "question": "Do bundle.social and Metricool API + MCP need an API key?"
      },
      {
        "answer": "Yes. bundle.social has a hosted endpoint at https://api.bundle.social/api/v1 and Metricool API + MCP at https://app.metricool.com/api.",
        "question": "Can an agent call bundle.social and Metricool API + MCP without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 63 against 35",
          "Schema \u0026 documentation, 86 against 56",
          "Agent ergonomics, 66 against 39",
          "Payments \u0026 pricing, 35 against 30",
          "Maintenance \u0026 community, 78 against 6",
          "Transparency \u0026 trust, 65 against 59"
        ],
        "also": [
          "Runs on your own machine",
          "Free to start without a card"
        ],
        "goodFor": "A SaaS product or agent that manages many accounts for many customers, since paid plans do not charge per connected account and teams separate tenants.",
        "slug": "bundle-social",
        "watchFor": "API keys are organisation-wide with no scopes or read-only mode found, so one key reaches every team and connected account"
      },
      {
        "aheadOn": [
          "Security \u0026 auth, 48 against 34"
        ],
        "also": null,
        "goodFor": "Reporting agents that read analytics and ad results, and for drafting posts for human review on a free account.",
        "slug": "metricool",
        "watchFor": "REST API only on Advanced ($67 a month) and Custom"
      }
    ],
    "job": {
      "capability": "social.post",
      "name": "Social posting"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/ayrshare-vs-bundle-social.json",
        "title": "Ayrshare API + MCP vs bundle.social",
        "url": "https://www.anchorterminal.com/compare/ayrshare-vs-bundle-social"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ayrshare-vs-metricool.json",
        "title": "Ayrshare API + MCP vs Metricool API + MCP",
        "url": "https://www.anchorterminal.com/compare/ayrshare-vs-metricool"
      },
      {
        "json": "https://www.anchorterminal.com/compare/blotato-vs-bundle-social.json",
        "title": "Blotato vs bundle.social",
        "url": "https://www.anchorterminal.com/compare/blotato-vs-bundle-social"
      },
      {
        "json": "https://www.anchorterminal.com/compare/blotato-vs-metricool.json",
        "title": "Blotato vs Metricool API + MCP",
        "url": "https://www.anchorterminal.com/compare/blotato-vs-metricool"
      },
      {
        "json": "https://www.anchorterminal.com/compare/buffer-vs-bundle-social.json",
        "title": "Buffer API + MCP vs bundle.social",
        "url": "https://www.anchorterminal.com/compare/buffer-vs-bundle-social"
      },
      {
        "json": "https://www.anchorterminal.com/compare/buffer-vs-metricool.json",
        "title": "Buffer API + MCP vs Metricool API + MCP",
        "url": "https://www.anchorterminal.com/compare/buffer-vs-metricool"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bundle-social-vs-late.json",
        "title": "bundle.social vs Zernio (formerly Late) API + MCP",
        "url": "https://www.anchorterminal.com/compare/bundle-social-vs-late"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bundle-social-vs-mixpost.json",
        "title": "bundle.social vs Mixpost API + MCP",
        "url": "https://www.anchorterminal.com/compare/bundle-social-vs-mixpost"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bundle-social-vs-oneup.json",
        "title": "bundle.social vs OneUp API + MCP",
        "url": "https://www.anchorterminal.com/compare/bundle-social-vs-oneup"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bundle-social-vs-post-bridge.json",
        "title": "bundle.social vs Post Bridge API + MCP",
        "url": "https://www.anchorterminal.com/compare/bundle-social-vs-post-bridge"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bundle-social-vs-postiz.json",
        "title": "bundle.social vs Postiz API + MCP",
        "url": "https://www.anchorterminal.com/compare/bundle-social-vs-postiz"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bundle-social-vs-publer.json",
        "title": "bundle.social vs Publer API + MCP",
        "url": "https://www.anchorterminal.com/compare/bundle-social-vs-publer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bundle-social-vs-typefully.json",
        "title": "bundle.social vs Typefully",
        "url": "https://www.anchorterminal.com/compare/bundle-social-vs-typefully"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bundle-social-vs-upload-post.json",
        "title": "bundle.social vs Upload-Post API + MCP",
        "url": "https://www.anchorterminal.com/compare/bundle-social-vs-upload-post"
      },
      {
        "json": "https://www.anchorterminal.com/compare/late-vs-metricool.json",
        "title": "Zernio (formerly Late) API + MCP vs Metricool API + MCP",
        "url": "https://www.anchorterminal.com/compare/late-vs-metricool"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metricool-vs-mixpost.json",
        "title": "Metricool API + MCP vs Mixpost API + MCP",
        "url": "https://www.anchorterminal.com/compare/metricool-vs-mixpost"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metricool-vs-oneup.json",
        "title": "Metricool API + MCP vs OneUp API + MCP",
        "url": "https://www.anchorterminal.com/compare/metricool-vs-oneup"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metricool-vs-post-bridge.json",
        "title": "Metricool API + MCP vs Post Bridge API + MCP",
        "url": "https://www.anchorterminal.com/compare/metricool-vs-post-bridge"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metricool-vs-postiz.json",
        "title": "Metricool API + MCP vs Postiz API + MCP",
        "url": "https://www.anchorterminal.com/compare/metricool-vs-postiz"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metricool-vs-publer.json",
        "title": "Metricool API + MCP vs Publer API + MCP",
        "url": "https://www.anchorterminal.com/compare/metricool-vs-publer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metricool-vs-typefully.json",
        "title": "Metricool API + MCP vs Typefully",
        "url": "https://www.anchorterminal.com/compare/metricool-vs-typefully"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metricool-vs-upload-post.json",
        "title": "Metricool API + MCP vs Upload-Post API + MCP",
        "url": "https://www.anchorterminal.com/compare/metricool-vs-upload-post"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bundle-social-vs-sprout-social.json",
        "title": "bundle.social vs Sprout Social API",
        "url": "https://www.anchorterminal.com/compare/bundle-social-vs-sprout-social"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bundle-social-vs-x-mcp.json",
        "title": "bundle.social vs X MCP",
        "url": "https://www.anchorterminal.com/compare/bundle-social-vs-x-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metricool-vs-sprout-social.json",
        "title": "Metricool API + MCP vs Sprout Social API",
        "url": "https://www.anchorterminal.com/compare/metricool-vs-sprout-social"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metricool-vs-x-mcp.json",
        "title": "Metricool API + MCP vs X MCP",
        "url": "https://www.anchorterminal.com/compare/metricool-vs-x-mcp"
      }
    ],
    "scores": [
      {
        "bundle-social": 63,
        "by": 28,
        "edge": "bundle-social",
        "key": "reliability",
        "metricool": 35,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "bundle-social": 86,
        "by": 30,
        "edge": "bundle-social",
        "key": "schema",
        "metricool": 56,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "bundle-social": 66,
        "by": 27,
        "edge": "bundle-social",
        "key": "ergonomics",
        "metricool": 39,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "bundle-social": 34,
        "by": 14,
        "edge": "metricool",
        "key": "security",
        "metricool": 48,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "bundle-social": 35,
        "by": 5,
        "edge": "bundle-social",
        "key": "payments",
        "metricool": 30,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "bundle-social": 78,
        "by": 72,
        "edge": "bundle-social",
        "key": "maintenance",
        "metricool": 6,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "bundle-social": 65,
        "by": 6,
        "edge": "bundle-social",
        "key": "transparency",
        "metricool": 59,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "bundle.social scores 60.1 (C) on agent readiness against Metricool API + MCP's 38.3 (E), and leads in 6 of 7 scored categories. Metricool API + MCP leads on security \u0026 auth. Both do social posting.",
    "verdicts": {
      "bundle-social": "The REST API has a public OpenAPI 3.0 description of 194 operations, Markdown docs and published rate limits, and the free plan needs no card. Organisation API keys carry no scopes, there is no idempotency key, and the status page shows one API outage of 4 hours 3 minutes on 31 August 2026.",
      "metricool": "Hosted MCP with OAuth and separate mcp:read and mcp:write scopes, on every plan including Free. REST API only on Advanced ($67 a month) and Custom."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/bundle-social-vs-metricool",
    "json": "https://www.anchorterminal.com/compare/bundle-social-vs-metricool.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/bundle-social-vs-metricool.md",
    "slim": "https://www.anchorterminal.com/compare/bundle-social-vs-metricool.min.md"
  },
  "markdown": "bundle.social scores 60.1 (C) on agent readiness against Metricool API + MCP's 38.3 (E), and leads in 6 of 7 scored categories. Metricool API + MCP leads on security \u0026 auth. Both do social posting.\n\n- bundle.social: grade C, 60.1/100, rank #530 of 950. Markdown https://www.anchorterminal.com/tools/bundle-social.md · JSON https://www.anchorterminal.com/api/v1/tools/bundle-social.json\n- Metricool API + MCP: grade E, 38.3/100, rank #921 of 950. Markdown https://www.anchorterminal.com/tools/metricool.md · JSON https://www.anchorterminal.com/api/v1/tools/metricool.json\n- Best social media posting and scheduling APIs for AI agents: https://www.anchorterminal.com/best/social-media/index.md\n- All 103 social comparisons: https://www.anchorterminal.com/compare/social-media/index.md\n\n## Which one, for what\n\n### bundle.social (C)\n\nGood for: A SaaS product or agent that manages many accounts for many customers, since paid plans do not charge per connected account and teams separate tenants.\n\nAhead on:\n- Reliability, 63 against 35\n- Schema \u0026 documentation, 86 against 56\n- Agent ergonomics, 66 against 39\n- Payments \u0026 pricing, 35 against 30\n- Maintenance \u0026 community, 78 against 6\n- Transparency \u0026 trust, 65 against 59\n\nAlso in its favour:\n- Runs on your own machine\n- Free to start without a card\n\nWatch for: API keys are organisation-wide with no scopes or read-only mode found, so one key reaches every team and connected account\n\n### Metricool API + MCP (E)\n\nGood for: Reporting agents that read analytics and ad results, and for drafting posts for human review on a free account.\n\nAhead on:\n- Security \u0026 auth, 48 against 34\n\nWatch for: REST API only on Advanced ($67 a month) and Custom\n\n\n## Score by category\n\n| Category | Weight | bundle.social | Metricool API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 63 | 35 | bundle.social +28 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 86 | 56 | bundle.social +30 |\n| Agent ergonomics | 13% (16.2 this run) | 66 | 39 | bundle.social +27 |\n| Security \u0026 auth | 14% (17.5 this run) | 34 | 48 | Metricool API + MCP +14 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 30 | bundle.social +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 78 | 6 | bundle.social +72 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 65 | 59 | bundle.social +6 |\n| Negative events | ≤15 | 0 | -2 | |\n| **Total** | | **60.1 · C** | **38.3 · E** | |\n\n## Facts side by side\n\n| Fact | bundle.social | Metricool API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | BUNDLE SP. Z O.O. | Metricool |\n| Hosted endpoint | `https://api.bundle.social/api/v1` | `https://app.metricool.com/api` |\n| Transports | HTTP, stdio | HTTP, Streamable HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| Price for social posting | $0.015 per transaction | not published |\n| x402 | no | no |\n| Licence | Proprietary hosted service under bundle.social's terms of service. The TypeScript SDK, the CLI and the MCP server on GitHub are MIT | none |\n| Tools exposed | 68 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-06 | 2025-10-07 |\n| Terms last updated | 2026-07-14 | no date given |\n| Privacy policy last updated | 2026-07-02 | no date given |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | yes | yes |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 2 stars, 4.1k npm/wk | 424 PyPI/wk |\n| Agent reviews | none | 2.5/5 (2) |\n\n## Verdicts\n\n**bundle.social.** The REST API has a public OpenAPI 3.0 description of 194 operations, Markdown docs and published rate limits, and the free plan needs no card. Organisation API keys carry no scopes, there is no idempotency key, and the status page shows one API outage of 4 hours 3 minutes on 31 August 2026.\n\n**Metricool API + MCP.** Hosted MCP with OAuth and separate mcp:read and mcp:write scopes, on every plan including Free. REST API only on Advanced ($67 a month) and Custom.\n\n## Before you call either\n\n### bundle.social\n\n1. Send the key in the `x-api-key` header to `https://api.bundle.social/api/v1`. A missing key returns 401 and a bad key 403\n2. Pass `teamId` on most calls. Set `BUNDLESOCIAL_TEAM_ID` for the MCP server or CLI when the organisation has more than one team\n3. Set a `referenceKey` on each post and look it up with the reference-key endpoint before retrying a create, because there is no idempotency key\n4. Check `GET /api/v1/organization/usage/daily-limits` before bulk scheduling. Failed and deleted posts still count against the monthly quota\n5. A person must complete each network's OAuth consent in a browser. Keep prepaid credit for X, where a post costs $0.015 or $0.20 with a link\n\n### Metricool API + MCP\n\n1. Connect the hosted MCP at https://ai.metricool.com/mcp with OAuth, and ask only for mcp:read when the job is reporting\n2. Call admin/simpleProfiles with your userId to list brands and their blogId values\n3. Normalise media through `actions/normalize/image/url` first, or the post goes out without it\n4. Give publicationDate a dateTime and an IANA timezone, in the future\n5. Back off on your own, since no rate limits or Retry-After are documented\n\n## Questions\n\n### Which is better for AI agents, bundle.social or Metricool API + MCP?\n\nbundle.social scores 60.1 (C) on agent readiness against Metricool API + MCP's 38.3 (E), and leads in 6 of 7 scored categories. Metricool API + MCP leads on security \u0026 auth.\n\n### Do bundle.social and Metricool API + MCP need an API key?\n\nbundle.social needs an API key. Metricool API + MCP takes an API key or an OAuth sign-in.\n\n### Can an agent call bundle.social and Metricool API + MCP without installing anything?\n\nYes. bundle.social has a hosted endpoint at https://api.bundle.social/api/v1 and Metricool API + MCP at https://app.metricool.com/api.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/bundle-social-vs-metricool.json, and with the fewest tokens: https://www.anchorterminal.com/compare/bundle-social-vs-metricool.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"bundle-social\", \"b\": \"metricool\"}`. From a terminal: `anchor compare bundle-social metricool`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/bundle-social.json and https://www.anchorterminal.com/api/v1/tools/metricool.json\n\n## Other comparisons with bundle.social or Metricool API + MCP\n\n- [Ayrshare API + MCP vs bundle.social](https://www.anchorterminal.com/compare/ayrshare-vs-bundle-social.md)\n- [Ayrshare API + MCP vs Metricool API + MCP](https://www.anchorterminal.com/compare/ayrshare-vs-metricool.md)\n- [Blotato vs bundle.social](https://www.anchorterminal.com/compare/blotato-vs-bundle-social.md)\n- [Blotato vs Metricool API + MCP](https://www.anchorterminal.com/compare/blotato-vs-metricool.md)\n- [Buffer API + MCP vs bundle.social](https://www.anchorterminal.com/compare/buffer-vs-bundle-social.md)\n- [Buffer API + MCP vs Metricool API + MCP](https://www.anchorterminal.com/compare/buffer-vs-metricool.md)\n- [bundle.social vs Zernio (formerly Late) API + MCP](https://www.anchorterminal.com/compare/bundle-social-vs-late.md)\n- [bundle.social vs Mixpost API + MCP](https://www.anchorterminal.com/compare/bundle-social-vs-mixpost.md)\n- [bundle.social vs OneUp API + MCP](https://www.anchorterminal.com/compare/bundle-social-vs-oneup.md)\n- [bundle.social vs Post Bridge API + MCP](https://www.anchorterminal.com/compare/bundle-social-vs-post-bridge.md)\n- [bundle.social vs Postiz API + MCP](https://www.anchorterminal.com/compare/bundle-social-vs-postiz.md)\n- [bundle.social vs Publer API + MCP](https://www.anchorterminal.com/compare/bundle-social-vs-publer.md)\n- [bundle.social vs Typefully](https://www.anchorterminal.com/compare/bundle-social-vs-typefully.md)\n- [bundle.social vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/bundle-social-vs-upload-post.md)\n- [Zernio (formerly Late) API + MCP vs Metricool API + MCP](https://www.anchorterminal.com/compare/late-vs-metricool.md)\n- [Metricool API + MCP vs Mixpost API + MCP](https://www.anchorterminal.com/compare/metricool-vs-mixpost.md)\n- [Metricool API + MCP vs OneUp API + MCP](https://www.anchorterminal.com/compare/metricool-vs-oneup.md)\n- [Metricool API + MCP vs Post Bridge API + MCP](https://www.anchorterminal.com/compare/metricool-vs-post-bridge.md)\n- [Metricool API + MCP vs Postiz API + MCP](https://www.anchorterminal.com/compare/metricool-vs-postiz.md)\n- [Metricool API + MCP vs Publer API + MCP](https://www.anchorterminal.com/compare/metricool-vs-publer.md)\n- [Metricool API + MCP vs Typefully](https://www.anchorterminal.com/compare/metricool-vs-typefully.md)\n- [Metricool API + MCP vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/metricool-vs-upload-post.md)\n- [bundle.social vs Sprout Social API](https://www.anchorterminal.com/compare/bundle-social-vs-sprout-social.md)\n- [bundle.social vs X MCP](https://www.anchorterminal.com/compare/bundle-social-vs-x-mcp.md)\n- [Metricool API + MCP vs Sprout Social API](https://www.anchorterminal.com/compare/metricool-vs-sprout-social.md)\n- [Metricool API + MCP vs X MCP](https://www.anchorterminal.com/compare/metricool-vs-x-mcp.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "bundle.social vs Metricool API + MCP",
        "url": ""
      }
    ],
    "description": "bundle.social scores 60.1 (C) to Metricool's 38.3 (E) for social posting. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "bundle.social C 60.1",
      "Metricool API + MCP E 38.3",
      "scores"
    ],
    "h1": "bundle.social vs Metricool API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-bundle-social-vs-metricool.png",
    "path": "/compare/bundle-social-vs-metricool",
    "published": "2026-10-01",
    "section": "tools",
    "title": "bundle.social vs Metricool for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/bundle-social-vs-metricool"
  },
  "tokens": {
    "markdown": 2600,
    "slim": 680
  },
  "version": 1
}
