{
  "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-10T01:37:47.123339914Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 66,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 125,
          "p95ms24h": 336,
          "samples24h": 102,
          "samples30d": 102,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 17,
              "ok": 17
            }
          ]
        },
        "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-10T01:37:47.123339914Z"
      }
    },
    "answer": "bundle.social scores 60.1 (C) on agent readiness against Typefully's 49.1 (D), and leads in 5 of 7 scored categories.",
    "b": {
      "slug": "typefully",
      "name": "Typefully",
      "vendor": "Typefully Inc.",
      "vendorUrl": "https://typefully.com",
      "kind": "http-api",
      "category": "social-media",
      "summary": "Typefully is a writing and scheduling app for social posts on X, LinkedIn, Threads, Bluesky, Mastodon and Substack Notes. Its REST API v2 and hosted MCP server create, schedule and publish drafts for the account's own connected profiles.",
      "url": "https://www.anchorterminal.com/tools/typefully",
      "markdownUrl": "https://www.anchorterminal.com/tools/typefully.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/typefully.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/typefully.json",
      "repo": "https://github.com/typefully/agent-skills",
      "license": "Proprietary service under Typefully's Terms of Service. The Agent Skill and its CLI script in typefully/agent-skills are MIT",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.typefully.com",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Self-serve. A signed-in user creates an API key in Settings, API and sends it as `Authorization: Bearer`. A key carries the permissions of the user who created it, and access to each social set (read, write or publish) decides which operations work. The hosted MCP server accepts OAuth (authorisation code grant with PKCE S256, dynamic client registration, a revocation endpoint, one scope `full_access`) or the API key as a Bearer header. API v1 keys do not work with v2.",
      "pricing": "freemium",
      "pricingNotes": "A free plan and paid plans billed monthly or yearly. The pricing page draws its figures by script and they were not read on 2026-10-08. The page's own scripts name free, creator and team plans and a per-social-set billing model. The vendor's undated blog post gives a paid plan at $12.50 a month and a 14-day trial. The API, MCP server and webhooks were announced as available to all users on 17 December 2025, and draft creation can answer 402 when an account needs a paid plan.",
      "priceSummary": "Freemium",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API reference, the OpenAPI document, llms.txt or the AI agents page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://typefully.com/docs/api",
      "llmsTxt": "https://typefully.com/llms.txt",
      "openapi": "https://api.typefully.com/v2/openapi.json",
      "registryName": "com.typefully/mcp",
      "capabilities": [
        "social.post",
        "social.schedule",
        "social.media-upload"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "mcp",
        "oauth",
        "openapi",
        "llms-txt",
        "webhooks",
        "agent-skill"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 49.1,
        "grade": "D",
        "agentReady": false,
        "rank": 802,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 10,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 62,
          "maintenance": 82,
          "payments": 30,
          "reliability": 27,
          "schema": 83,
          "security": 38,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -3,
        "negativeNotes": [
          "2026-07-09. The vendor's own agent-skills changelog records that the API's tightened request schemas began rejecting platform-specific fields on the wrong platform with HTTP 422, which broke `drafts:update` in the vendor's CLI until it was patched the same day. No notice was found in the product changelog. Fixed on the client side and documented there, so -3 (https://github.com/typefully/agent-skills/blob/main/skills/typefully/CHANGELOG.md)"
        ],
        "verdict": "A public OpenAPI 3.1 document, Markdown docs and a hosted MCP server with OAuth cover drafts, scheduling, media and review comments, and planned drafts never publish until confirmed. Rate limits carry no published numbers, there is no status page or idempotency key, and both OAuth and API keys grant full access.",
        "bestFor": "An agent that drafts and schedules posts for one person's or one team's own accounts, with a human reviewing drafts and comments in the Typefully editor.",
        "strengths": [
          "OpenAPI 3.1 document for 24 operations and seven webhook events, with the same reference served as Markdown and indexed in `llms.txt`",
          "Hosted MCP server at `https://mcp.typefully.com/mcp` with OAuth, PKCE and dynamic client registration, listed in the official MCP registry as `com.typefully/mcp`",
          "A draft can be saved, planned, scheduled or published, and a planned draft never publishes until `publish_at` confirms it",
          "Errors return a code, a message and field-level details with the path of the failing field",
          "Draft Activity records who changed a draft and whether the change came through MCP or the API"
        ],
        "weaknesses": [
          "Rate limits are described by response headers only. No request numbers are published, and no `Retry-After` header is documented",
          "No status page, incident history or SLA was found. The terms supply the service as is",
          "No idempotency key on draft creation, so a retried `publish_at: \"now\"` call can post twice",
          "OAuth has one scope, `full_access`, and an API key carries every permission of the user who created it",
          "The terms say accounts must be registered by a human and forbid processes that run while the user is not logged in"
        ],
        "agentNotes": [
          "Call `GET /v2/social-sets` first. Every draft, media, tag and queue path needs a `social_set_id`",
          "Use `plan_at` or omit both dates to leave a draft unpublished. `publish_at: \"now\"` posts at once and is asynchronous",
          "Do not retry a failed publish blindly. Read the draft's `status` and `publish_state` first, because no idempotency key exists",
          "Read `X-RateLimit-User-Remaining` and `X-RateLimit-SocialSet-Remaining` on each response, and wait until the `Reset` timestamp after a 429",
          "Send the key only as `Authorization: Bearer`. The legacy MCP URL with `?TYPEFULLY_API_KEY=` still works and puts the key in logs"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 49.1
          }
        ],
        "editorialScores": {
          "ergonomics": 62,
          "maintenance": 82,
          "payments": 30,
          "reliability": 27,
          "schema": 83,
          "security": 38,
          "transparency": 55
        },
        "provenanceScore": 72
      },
      "connect": {
        "install": "npx skills add typefully/agent-skills",
        "http": "curl https://api.typefully.com/v2/me -H \"Authorization: Bearer $TYPEFULLY_API_KEY\"",
        "claudeCode": "claude mcp add typefully --transport http --url \"https://mcp.typefully.com/mcp\"",
        "config": {
          "mcpServers": {
            "typefully": {
              "serverUrl": "https://mcp.typefully.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/social.post",
        "tool": "https://letme.dev/typefully"
      },
      "area": "communication",
      "provenance": {
        "legalEntity": "Typefully Inc.",
        "domain": "typefully.com",
        "domainRegistered": "2016-06-06",
        "endpointOnVendorDomain": true,
        "terms": "https://support.typefully.com/en/articles/8718440-terms-of-service",
        "privacy": "https://support.typefully.com/en/articles/8718444-privacy-policy",
        "statusPage": "",
        "changelog": "https://typefully.com/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "typefully.com/terms and typefully.com/privacy redirect to the two help centre articles named here. The terms are dated 23 February 2026 and name Typefully Inc. No separate API terms or DPA were found.",
          "The privacy policy names Typefully Inc., says the service is operated in the United States and defines the Services to include any related APIs. It gives no postal address.",
          "No status page was found. status.typefully.com did not complete a TLS connection, and the API catalogue's status link points at the API root. The MCP server answers a health check at https://mcp.typefully.com/health.",
          "typefully.com/.well-known/security.txt returns 404.",
          "RDAP for typefully.com gives a registration date of 2016-06-06.",
          "The changelog is the product changelog. API changes appear in it as dated entries, with no separate API changelog."
        ],
        "score": 72
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/typefully.json",
      "live": {
        "slug": "typefully",
        "probe": {
          "target": "https://api.typefully.com",
          "method": "get",
          "lastAt": "2026-10-10T01:38:11.44002731Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 226,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 239,
          "p95ms24h": 345,
          "samples24h": 186,
          "samples30d": 186,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 169,
              "ok": 169
            },
            {
              "date": "2026-10-10",
              "probes": 17,
              "ok": 17
            }
          ]
        },
        "githubStars": 60,
        "securityTxt": {
          "url": "https://typefully.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:40:03.144421806Z"
        },
        "llmsTxt": {
          "url": "https://typefully.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:02:56.039959643Z"
        },
        "pages": [
          {
            "url": "https://typefully.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:46:54.367273463Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f5c84ed8e973"
          },
          {
            "url": "https://support.typefully.com/en/articles/8718444-privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:46:29.536861803Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a978c1b690a4"
          },
          {
            "url": "https://support.typefully.com/en/articles/8718440-terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:46:26.948980313Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "87c4b899e99b"
          }
        ],
        "updatedAt": "2026-10-10T01:38:11.44002731Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "BUNDLE SP. Z O.O.",
        "b": "Typefully Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://api.bundle.social/api/v1",
        "b": "https://api.typefully.com",
        "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": "Proprietary service under Typefully's Terms of Service. The Agent Skill and its CLI script in typefully/agent-skills are MIT",
        "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": "not listed",
        "b": "com.typefully/mcp",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-06",
        "b": "2026-10-01",
        "name": "Last release"
      },
      {
        "a": "2026-07-14",
        "b": "2026-02-23",
        "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": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "bundle.social scores 60.1 (C) on agent readiness against Typefully's 49.1 (D), and leads in 5 of 7 scored categories.",
        "question": "Which is better for AI agents, bundle.social or Typefully?"
      },
      {
        "answer": "bundle.social needs an API key. Typefully takes an API key or an OAuth sign-in.",
        "question": "Do bundle.social and Typefully need an API key?"
      },
      {
        "answer": "Yes. bundle.social has a hosted endpoint at https://api.bundle.social/api/v1 and Typefully at https://api.typefully.com.",
        "question": "Can an agent call bundle.social and Typefully without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 63 against 27",
          "Payments \u0026 pricing, 35 against 30"
        ],
        "also": [
          "Runs on your own machine",
          "Free to start without a card",
          "No incidents deducted, where Typefully loses 3 points for them"
        ],
        "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": null,
        "also": null,
        "goodFor": "An agent that drafts and schedules posts for one person's or one team's own accounts, with a human reviewing drafts and comments in the Typefully editor.",
        "slug": "typefully",
        "watchFor": "Rate limits are described by response headers only. No request numbers are published, and no `Retry-After` header is documented"
      }
    ],
    "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-typefully.json",
        "title": "Ayrshare API + MCP vs Typefully",
        "url": "https://www.anchorterminal.com/compare/ayrshare-vs-typefully"
      },
      {
        "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-typefully.json",
        "title": "Blotato vs Typefully",
        "url": "https://www.anchorterminal.com/compare/blotato-vs-typefully"
      },
      {
        "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-typefully.json",
        "title": "Buffer API + MCP vs Typefully",
        "url": "https://www.anchorterminal.com/compare/buffer-vs-typefully"
      },
      {
        "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-metricool.json",
        "title": "bundle.social vs Metricool API + MCP",
        "url": "https://www.anchorterminal.com/compare/bundle-social-vs-metricool"
      },
      {
        "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-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-typefully.json",
        "title": "Zernio (formerly Late) API + MCP vs Typefully",
        "url": "https://www.anchorterminal.com/compare/late-vs-typefully"
      },
      {
        "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/mixpost-vs-typefully.json",
        "title": "Mixpost API + MCP vs Typefully",
        "url": "https://www.anchorterminal.com/compare/mixpost-vs-typefully"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oneup-vs-typefully.json",
        "title": "OneUp API + MCP vs Typefully",
        "url": "https://www.anchorterminal.com/compare/oneup-vs-typefully"
      },
      {
        "json": "https://www.anchorterminal.com/compare/post-bridge-vs-typefully.json",
        "title": "Post Bridge API + MCP vs Typefully",
        "url": "https://www.anchorterminal.com/compare/post-bridge-vs-typefully"
      },
      {
        "json": "https://www.anchorterminal.com/compare/postiz-vs-typefully.json",
        "title": "Postiz API + MCP vs Typefully",
        "url": "https://www.anchorterminal.com/compare/postiz-vs-typefully"
      },
      {
        "json": "https://www.anchorterminal.com/compare/publer-vs-typefully.json",
        "title": "Publer API + MCP vs Typefully",
        "url": "https://www.anchorterminal.com/compare/publer-vs-typefully"
      },
      {
        "json": "https://www.anchorterminal.com/compare/typefully-vs-upload-post.json",
        "title": "Typefully vs Upload-Post API + MCP",
        "url": "https://www.anchorterminal.com/compare/typefully-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"
      }
    ],
    "scores": [
      {
        "bundle-social": 63,
        "by": 36,
        "edge": "bundle-social",
        "key": "reliability",
        "name": "Reliability",
        "typefully": 27,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "bundle-social": 86,
        "by": 3,
        "edge": "bundle-social",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "typefully": 83,
        "weight": 13
      },
      {
        "bundle-social": 66,
        "by": 4,
        "edge": "bundle-social",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "typefully": 62,
        "weight": 13
      },
      {
        "bundle-social": 34,
        "by": 4,
        "edge": "typefully",
        "key": "security",
        "name": "Security \u0026 auth",
        "typefully": 38,
        "weight": 14
      },
      {
        "bundle-social": 35,
        "by": 5,
        "edge": "bundle-social",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "typefully": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "bundle-social": 78,
        "by": 4,
        "edge": "typefully",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "typefully": 82,
        "weight": 7
      },
      {
        "bundle-social": 65,
        "by": 1,
        "edge": "bundle-social",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "typefully": 64,
        "weight": 7
      }
    ],
    "summary": "bundle.social scores 60.1 (C) on agent readiness against Typefully's 49.1 (D), and leads in 5 of 7 scored categories. 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.",
      "typefully": "A public OpenAPI 3.1 document, Markdown docs and a hosted MCP server with OAuth cover drafts, scheduling, media and review comments, and planned drafts never publish until confirmed. Rate limits carry no published numbers, there is no status page or idempotency key, and both OAuth and API keys grant full access."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/bundle-social-vs-typefully",
    "json": "https://www.anchorterminal.com/compare/bundle-social-vs-typefully.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/bundle-social-vs-typefully.md",
    "slim": "https://www.anchorterminal.com/compare/bundle-social-vs-typefully.min.md"
  },
  "markdown": "bundle.social scores 60.1 (C) on agent readiness against Typefully's 49.1 (D), and leads in 5 of 7 scored categories. 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- Typefully: grade D, 49.1/100, rank #802 of 950. Markdown https://www.anchorterminal.com/tools/typefully.md · JSON https://www.anchorterminal.com/api/v1/tools/typefully.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 27\n- Payments \u0026 pricing, 35 against 30\n\nAlso in its favour:\n- Runs on your own machine\n- Free to start without a card\n- No incidents deducted, where Typefully loses 3 points for them\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### Typefully (D)\n\nGood for: An agent that drafts and schedules posts for one person's or one team's own accounts, with a human reviewing drafts and comments in the Typefully editor.\n\nWatch for: Rate limits are described by response headers only. No request numbers are published, and no `Retry-After` header is documented\n\n\n## Score by category\n\n| Category | Weight | bundle.social | Typefully | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 63 | 27 | bundle.social +36 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 86 | 83 | bundle.social +3 |\n| Agent ergonomics | 13% (16.2 this run) | 66 | 62 | bundle.social +4 |\n| Security \u0026 auth | 14% (17.5 this run) | 34 | 38 | Typefully +4 |\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 | 82 | Typefully +4 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 65 | 64 | bundle.social +1 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **60.1 · C** | **49.1 · D** | |\n\n## Facts side by side\n\n| Fact | bundle.social | Typefully |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | BUNDLE SP. Z O.O. | Typefully Inc. |\n| Hosted endpoint | `https://api.bundle.social/api/v1` | `https://api.typefully.com` |\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 | Proprietary service under Typefully's Terms of Service. The Agent Skill and its CLI script in typefully/agent-skills are MIT |\n| Tools exposed | 68 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `com.typefully/mcp` |\n| Last release | 2026-10-06 | 2026-10-01 |\n| Terms last updated | 2026-07-14 | 2026-02-23 |\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 | none |\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**Typefully.** A public OpenAPI 3.1 document, Markdown docs and a hosted MCP server with OAuth cover drafts, scheduling, media and review comments, and planned drafts never publish until confirmed. Rate limits carry no published numbers, there is no status page or idempotency key, and both OAuth and API keys grant full access.\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### Typefully\n\n1. Call `GET /v2/social-sets` first. Every draft, media, tag and queue path needs a `social_set_id`\n2. Use `plan_at` or omit both dates to leave a draft unpublished. `publish_at: \"now\"` posts at once and is asynchronous\n3. Do not retry a failed publish blindly. Read the draft's `status` and `publish_state` first, because no idempotency key exists\n4. Read `X-RateLimit-User-Remaining` and `X-RateLimit-SocialSet-Remaining` on each response, and wait until the `Reset` timestamp after a 429\n5. Send the key only as `Authorization: Bearer`. The legacy MCP URL with `?TYPEFULLY_API_KEY=` still works and puts the key in logs\n\n## Questions\n\n### Which is better for AI agents, bundle.social or Typefully?\n\nbundle.social scores 60.1 (C) on agent readiness against Typefully's 49.1 (D), and leads in 5 of 7 scored categories.\n\n### Do bundle.social and Typefully need an API key?\n\nbundle.social needs an API key. Typefully takes an API key or an OAuth sign-in.\n\n### Can an agent call bundle.social and Typefully without installing anything?\n\nYes. bundle.social has a hosted endpoint at https://api.bundle.social/api/v1 and Typefully at https://api.typefully.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/bundle-social-vs-typefully.json, and with the fewest tokens: https://www.anchorterminal.com/compare/bundle-social-vs-typefully.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"bundle-social\", \"b\": \"typefully\"}`. From a terminal: `anchor compare bundle-social typefully`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/bundle-social.json and https://www.anchorterminal.com/api/v1/tools/typefully.json\n\n## Other comparisons with bundle.social or Typefully\n\n- [Ayrshare API + MCP vs bundle.social](https://www.anchorterminal.com/compare/ayrshare-vs-bundle-social.md)\n- [Ayrshare API + MCP vs Typefully](https://www.anchorterminal.com/compare/ayrshare-vs-typefully.md)\n- [Blotato vs bundle.social](https://www.anchorterminal.com/compare/blotato-vs-bundle-social.md)\n- [Blotato vs Typefully](https://www.anchorterminal.com/compare/blotato-vs-typefully.md)\n- [Buffer API + MCP vs bundle.social](https://www.anchorterminal.com/compare/buffer-vs-bundle-social.md)\n- [Buffer API + MCP vs Typefully](https://www.anchorterminal.com/compare/buffer-vs-typefully.md)\n- [bundle.social vs Zernio (formerly Late) API + MCP](https://www.anchorterminal.com/compare/bundle-social-vs-late.md)\n- [bundle.social vs Metricool API + MCP](https://www.anchorterminal.com/compare/bundle-social-vs-metricool.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 Upload-Post API + MCP](https://www.anchorterminal.com/compare/bundle-social-vs-upload-post.md)\n- [Zernio (formerly Late) API + MCP vs Typefully](https://www.anchorterminal.com/compare/late-vs-typefully.md)\n- [Metricool API + MCP vs Typefully](https://www.anchorterminal.com/compare/metricool-vs-typefully.md)\n- [Mixpost API + MCP vs Typefully](https://www.anchorterminal.com/compare/mixpost-vs-typefully.md)\n- [OneUp API + MCP vs Typefully](https://www.anchorterminal.com/compare/oneup-vs-typefully.md)\n- [Post Bridge API + MCP vs Typefully](https://www.anchorterminal.com/compare/post-bridge-vs-typefully.md)\n- [Postiz API + MCP vs Typefully](https://www.anchorterminal.com/compare/postiz-vs-typefully.md)\n- [Publer API + MCP vs Typefully](https://www.anchorterminal.com/compare/publer-vs-typefully.md)\n- [Typefully vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/typefully-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",
  "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 Typefully",
        "url": ""
      }
    ],
    "description": "bundle.social scores 60.1 (C) to Typefully's 49.1 (D) for social posting. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "bundle.social C 60.1",
      "Typefully D 49.1",
      "scores"
    ],
    "h1": "bundle.social vs Typefully",
    "image": "https://www.anchorterminal.com/assets/og/compare-bundle-social-vs-typefully.png",
    "path": "/compare/bundle-social-vs-typefully",
    "published": "2026-10-01",
    "section": "tools",
    "title": "bundle.social vs Typefully for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/bundle-social-vs-typefully"
  },
  "tokens": {
    "markdown": 2550,
    "slim": 680
  },
  "version": 1
}
