{
 "slug": "dropbox",
 "name": "Dropbox",
 "url": "https://dropbox.com",
 "domain": "dropbox.com",
 "category": "file-storage",
 "category_name": "File storage",
 "tested_at": "2026-10-12",
 "run": "20261012T092133Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261006T014531Z",
   "date": "2026-10-06",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 2,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "start"
   }
  },
  {
   "run": "20261012T092133Z",
   "date": "2026-10-12",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 3,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "obey"
   }
  }
 ],
 "level": 1,
 "level_name": "Needs a person",
 "level_selfhost": null,
 "entry": "closed",
 "door": {
  "passed": 0,
  "tries": 2,
  "self_start": false
 },
 "badges": [],
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "at": "signup"
  },
  {
   "key": "work",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Payment not reached",
   "value": "unreached",
   "route": "card_checkout"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account"
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Find",
   "state": "part",
   "text": "Some docs agents can read: llms.txt and an MCP server",
   "have": [
    "llms_txt",
    "mcp"
   ]
  },
  {
   "key": "access",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "at": "signup",
   "stage": "in"
  },
  {
   "key": "use",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured",
   "stage": "work"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Payment not reached",
   "value": "unreached",
   "route": "card_checkout",
   "stage": "pay"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account",
   "stage": "leave"
  }
 ],
 "access": [
  {
   "key": "person",
   "label": "A person sets it up",
   "routes": [],
   "minutes": null,
   "core": null
  }
 ],
 "minutes": null,
 "next": {
  "to": 2,
  "text": "Next: let an agent sign up on its own"
 },
 "stop": "signup",
 "core": null,
 "scores": {
  "coverage": null,
  "reliability": null,
  "resilience": null,
  "setup": 75,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": null,
  "docs_match": null,
  "setup": 75,
  "security": null,
  "standards": [
   {
    "standard": "MCP client registration",
    "state": "behind",
    "behind": null,
    "value": "dcr"
   }
  ]
 },
 "reliability_method": null,
 "resilience": null,
 "stress": [],
 "surface_audit": null,
 "coverage_core": null,
 "after_wall": null,
 "coverage_source": "reported",
 "driver": {
  "version": 3,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": false,
  "prompt_sha": "076cd4c65a1a",
  "kb_version": "3+overlay-1353601952",
  "identity": "e8a92f24a9a8"
 },
 "methodology": 15,
 "rules_date": "2026-10-15",
 "engine": {
  "runner": "omp",
  "model": "claude-opus-5-5",
  "driver": 3,
  "signed": true,
  "inbox": [
   "agentdrives.com"
  ],
  "robots": "obey"
 },
 "same_level_drives": 2,
 "drives": 2,
 "works_assisted": null,
 "freshness": "fresh",
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": {
  "rung": "signup",
  "vendor": "Arkose Labs (FunCaptcha)",
  "visible": true,
  "type": "challenge",
  "human": "",
  "how": "Let signed agents (valid Web Bot Auth signature) skip the bot check on sign-up, or offer a documented sign-up API with email verification.",
  "signed": true
 },
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "captcha"
  },
  "signed": {
   "state": "page",
   "kind": "signup",
   "at": "2026-10-13"
  },
  "browser": {
   "state": "captcha",
   "measured": false
  },
  "our_key": "pending",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "HTTP API reference and /llms.txt fetched headless; no OpenAPI, no markdown pages"
  },
  "signup": {
   "status": "human",
   "note": "No API sign-up; web form shows an Arkose Labs puzzle after 'Agree and sign up'.",
   "via": ""
  },
  "verify": {
   "status": "",
   "note": "not reached: sign-up stopped at the Arkose puzzle",
   "reached": false
  },
  "credentials": {
   "status": "",
   "note": "DCR at /oauth2/register gave a client id headless (201), but a token needs a signed-in user at /oauth2/authorize or the App Console; no account",
   "via": "",
   "reached": false
  },
  "first_call": {
   "status": "",
   "note": "no token; unauthenticated list_folder answers 400 'Invalid authorization value'",
   "reached": false
  },
  "first_action": {
   "status": "",
   "note": "not reached: no token",
   "reached": false
  },
  "pay": {
   "status": "",
   "grade": "P2",
   "rails": [
    "hosted checkout: card, PayPal, IBAN direct debit (Adyen)"
   ],
   "rail_ids": [
    "adyen"
   ],
   "first_party": true,
   "rail_scope": "none",
   "trial_path": "card trial",
   "note": "No 402/x402/MPP/UCP/registry listing; we paid nothing. Free Basic plan (2 GB); the 30-day Standard trial checkout asks for payment details (card, PayPal or IBAN). No billing API in the HTTP API docs.",
   "reached": false
  },
  "cancel": {
   "status": "",
   "note": "not tested: no plan or trial was started; trial page says 'Cancel anytime'",
   "docs_grade": "",
   "reached": false
  },
  "delete": {
   "status": "",
   "note": "no account was created (sign-up wall); robots.txt disallows /account*",
   "account": false,
   "reached": false
  }
 },
 "routes": [],
 "checkout": null,
 "docs": null,
 "claims": null,
 "pay_options": {
  "checked": "2026-10-12",
  "source": "probe",
  "options": [],
  "agentic": [],
  "paid": null,
  "exercised": null,
  "detected_grade": null,
  "trial": {
   "no_card": null,
   "card_required": null,
   "free_plan": null
  },
  "owner_fixes": [
   {
    "title": "Accept x402 or MPP on your API",
    "how": "Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card."
   },
   {
    "title": "List your plans on Stripe Projects",
    "how": "Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev)."
   },
   {
    "title": "Let a trial start without a card",
    "how": "An agent can try the product before anyone hands it a card; take the card when it buys."
   }
  ]
 },
 "surfaces": {
  "api": true,
  "openapi": false,
  "cli": false,
  "mcp": "official",
  "llms_txt": true,
  "sandbox": false
 },
 "surface_notes": {
  "api": "HTTP RPC API at api.dropboxapi.com/2, public reference",
  "mcp": "official remote server, OAuth via DCR",
  "openapi": "none published"
 },
 "can_do": [
  "Read Dropbox's API docs and llms.txt without an account",
  "Register an OAuth client for the MCP server headless (DCR)"
 ],
 "cannot_do": [
  {
   "what": "Create an account",
   "why": "Arkose Labs puzzle on the web sign-up form; no API sign-up"
  },
  {
   "what": "Any file, sharing, restore or search action",
   "why": "needs an account and a token"
  },
  {
   "what": "Start a trial",
   "why": "the trial checkout asks for a card, PayPal or IBAN"
  }
 ],
 "blockers": [
  "Arkose Labs puzzle on the sign-up form"
 ],
 "tips_for_owner": [
  "Let verified agents sign up without a puzzle",
  "Publish a device authorization endpoint",
  "Support CIMD for MCP client registration",
  "Offer a trial without a card",
  "Serve markdown docs and an OpenAPI file"
 ],
 "tips_for_agents": [
  "Have a human create the account: sign-up shows an Arkose puzzle",
  "For MCP use DCR at https://www.dropbox.com/oauth2/register with a public client and PKCE; it assigns fixed localhost/127.0.0.1 redirect URIs",
  "robots.txt disallows /home* and /account*: a robots-respecting browser agent cannot use the web file browser or settings"
 ],
 "selfhost": null,
 "summary": "Dropbox's only sign-up is a web form that shows an Arkose Labs puzzle, so an agent cannot get an account on its own and no capability could be tried. Without an account the agent surface is good: public API docs, llms.txt, an official MCP server with valid PRM, and headless OAuth client registration via DCR. Paid trials ask for a card, PayPal or IBAN.",
 "wall": "Arkose puzzle on the sign-up form",
 "plan_scope": "",
 "robots_stop": null,
 "robots": null,
 "plain": {
  "summary": "Dropbox lets anyone read its developer docs and set up part of an API connection without an account, but creating an actual Dropbox account requires solving a picture puzzle that only a person can do. Because no account could be made, the agent could not try any of Dropbox's real features like uploading or sharing files.",
  "can_do": [
   "Read Dropbox's help pages and developer docs without signing up",
   "Start registering an app for API access without logging in"
  ],
  "cannot_do": [
   {
    "what": "Create a Dropbox account",
    "why": "a picture puzzle appears that only a human can solve"
   },
   {
    "what": "Upload, share, or manage any files",
    "why": "this needs a working account, which couldn't be created"
   },
   {
    "what": "Start a free trial of the paid plan",
    "why": "it requires entering a card or bank payment detail"
   }
  ]
 },
 "plan_gated": [],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "group": "Storage",
   "capability": "Upload a file or folder",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /2/files/upload",
    "mcp": null,
    "cli": null,
    "ui": "Upload button / drag-and-drop in Dropbox web, desktop app sync folder"
   },
   "check": "POST /2/files/get_metadata on the path returns the new file with a content_hash",
   "source": "https://www.dropbox.com/features/share (FAQ: How do I upload a file to Dropbox?); https://www.dropbox.com/developers/documentation/http/documentation"
  },
  {
   "id": "cap-02",
   "group": "Storage",
   "capability": "Sync files across devices",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /2/files/list_folder/continue (longpoll)",
    "mcp": null,
    "cli": null,
    "ui": "Desktop/mobile app automatic sync"
   },
   "check": "Edit on device A, GET /2/files/download on device B shows updated content_hash",
   "source": "https://www.dropbox.com/ (\"Organize\": cloud storage that keeps everyone in sync)"
  },
  {
   "id": "cap-03",
   "group": "Storage",
   "capability": "Preview a file in-browser (175+ file types)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dropbox web file preview pane"
   },
   "check": "Open file in web UI; renders without download",
   "source": "https://www.dropbox.com/ (\"Organize\": previews for 175+ file types)"
  },
  {
   "id": "cap-04",
   "group": "Storage",
   "capability": "Restore deleted files or previous versions",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /2/files/restore, POST /2/files/list_revisions",
    "mcp": null,
    "cli": null,
    "ui": "File version history / Deleted files view"
   },
   "check": "POST /2/files/restore with a prior rev; GET /2/files/get_metadata shows restored content",
   "source": "https://www.dropbox.com/plans (Restore deleted files: 30/180/365-day history by plan)"
  },
  {
   "id": "cap-05",
   "group": "Sharing",
   "capability": "Create a shared link to a file or folder",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /2/sharing/create_shared_link_with_settings",
    "mcp": null,
    "cli": null,
    "ui": "Share icon on file/folder in Dropbox web/desktop/mobile"
   },
   "check": "GET /2/sharing/get_shared_link_metadata on the returned url resolves to the file",
   "source": "https://www.dropbox.com/features/share (Share links to files; FAQ: How do I share a Dropbox file with a link?)"
  },
  {
   "id": "cap-06",
   "group": "Sharing",
   "capability": "Share a folder with specific people and set edit/view permissions",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /2/sharing/share_folder, POST /2/sharing/add_folder_member, POST /2/sharing/update_folder_member",
    "mcp": null,
    "cli": null,
    "ui": "Share dialog on a folder, permission dropdown"
   },
   "check": "GET /2/sharing/list_folder_members shows invited member with access_type editor/viewer",
   "source": "https://www.dropbox.com/features/share (Manage folder permissions, Granular folder permissions)"
  },
  {
   "id": "cap-07",
   "group": "Sharing",
   "capability": "Password-protect a shared link",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /2/sharing/create_shared_link_with_settings (link_password)",
    "mcp": null,
    "cli": null,
    "ui": "Link settings > Add password"
   },
   "check": "Fetching the link without the password is rejected; correct password succeeds",
   "source": "https://www.dropbox.com/features/share (password protected links); https://www.dropbox.com/features/share/password-protection"
  },
  {
   "id": "cap-08",
   "group": "Sharing",
   "capability": "Set a link expiration date",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /2/sharing/create_shared_link_with_settings (expires)",
    "mcp": null,
    "cli": null,
    "ui": "Link settings > Set expiration"
   },
   "check": "GET /2/sharing/get_shared_link_metadata shows expires timestamp; link inactive after it",
   "source": "https://www.dropbox.com/features/share (link expiration dates)"
  },
  {
   "id": "cap-09",
   "group": "Sharing",
   "capability": "Disable downloads on a shared link",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Link settings toggle"
   },
   "check": "Link visitors see view-only preview; download button absent",
   "source": "https://www.dropbox.com/features/share (disable downloads)"
  },
  {
   "id": "cap-10",
   "group": "Sharing",
   "capability": "Transfer large files (up to 250GB) via Dropbox Transfer",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dropbox Transfer upload page"
   },
   "check": "Recipient link opens a transfer page with download, not shared-folder access",
   "source": "https://www.dropbox.com/ (Share: large file transfers up to 250GB); https://www.dropbox.com/features/share/file-transfer"
  },
  {
   "id": "cap-11",
   "group": "Collaboration",
   "capability": "Get real-time notifications when a shared file changes",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Notification bell / email notification"
   },
   "check": "Edit a shared file as collaborator A; collaborator B receives change notification",
   "source": "https://www.dropbox.com/features/share (Get real-time updates on changes to shared files)"
  },
  {
   "id": "cap-12",
   "group": "Collaboration",
   "capability": "Create a group and invite members to shared folders",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /2/team/groups/create",
    "mcp": null,
    "cli": null,
    "ui": "Admin console > Groups"
   },
   "check": "GET /2/team/groups/members/list returns added members; group appears as folder member",
   "source": "https://www.dropbox.com/features/share (Groups: create a group, add members, invite to shared folders)"
  },
  {
   "id": "cap-13",
   "group": "Collaboration",
   "capability": "Add folder descriptions and to-dos in a shared workspace",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Shared folder workspace panel"
   },
   "check": "Open shared folder; description/to-do persists after reload for other members",
   "source": "https://www.dropbox.com/features/share (Shared folders: folder descriptions and assigning to-dos)"
  },
  {
   "id": "cap-14",
   "group": "Collaboration",
   "capability": "Find files, facts, and messages with unified search (Dash)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dropbox Dash / Home search bar"
   },
   "check": "Search query returns matching file/content across connected apps",
   "source": "https://www.dropbox.com/ (\"Find\": Find it fast, every time)"
  },
  {
   "id": "cap-15",
   "group": "Documents",
   "capability": "Edit a PDF",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "PDF editor in Dropbox web file viewer"
   },
   "check": "Open PDF, add text/annotation, save; reopening shows the edit persisted",
   "source": "https://www.dropbox.com/plans (Edit PDFs and get signatures)"
  },
  {
   "id": "cap-16",
   "group": "Documents",
   "capability": "Request and collect an electronic signature (Dropbox Sign)",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v3/signature_request/send (Dropbox Sign API)",
    "mcp": null,
    "cli": null,
    "ui": "sign.dropbox.com send flow / Dropbox PDF 'Get signatures'"
   },
   "check": "GET /v3/signature_request/{id} shows status_code 'signed' after all signers complete",
   "source": "https://sign.dropbox.com/ (Send agreements with Dropbox Sign; Choose your file > Prep for signature > Send > Save)"
  },
  {
   "id": "cap-17",
   "group": "Documents",
   "capability": "Automatically save signed documents back to storage",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dropbox Sign completion settings"
   },
   "check": "Signed PDF appears in configured Dropbox/Google Drive/OneDrive folder after completion",
   "source": "https://sign.dropbox.com/ (Save documents automatically)"
  },
  {
   "id": "cap-18",
   "group": "Documents",
   "capability": "Scan a document to Dropbox via mobile app",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dropbox mobile app > Scan"
   },
   "check": "Scanned PDF appears in Dropbox account after capture",
   "source": "https://www.dropbox.com/plans (Document scanning feature row)"
  },
  {
   "id": "cap-19",
   "group": "Security",
   "capability": "Back up a computer or external drive to the cloud",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Desktop app Backup settings"
   },
   "check": "Enable backup for a folder; files appear in dropbox.com Backups section",
   "source": "https://www.dropbox.com/plans (Backup: automatically back up computers and connected external drives)"
  },
  {
   "id": "cap-20",
   "group": "Security",
   "capability": "Detect and recover from ransomware attacks",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Admin console security alerts"
   },
   "check": "Simulated mass-encryption triggers alert; rewind restores affected files",
   "source": "https://www.dropbox.com/plans (Ransomware detection and recovery, Advanced plan)"
  },
  {
   "id": "cap-21",
   "group": "Security",
   "capability": "Enable multi-factor authentication on the account",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Account Settings > Security > Two-step verification"
   },
   "check": "Login prompts for 6-digit code after password when enabled",
   "source": "https://www.dropbox.com/plans (Multi-factor authentication feature row)"
  },
  {
   "id": "cap-22",
   "group": "Security",
   "capability": "Remotely wipe Dropbox data from a lost or stolen device",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /2/team/devices/revoke_device_session (team API)",
    "mcp": null,
    "cli": null,
    "ui": "Admin console > Devices > Unlink & wipe"
   },
   "check": "GET /2/team/devices/list_members_devices no longer lists the device after wipe",
   "source": "https://www.dropbox.com/plans (Remote device wipe feature row)"
  },
  {
   "id": "cap-23",
   "group": "Security",
   "capability": "Add a visible watermark to a shared file",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "File preview > Watermark toggle"
   },
   "check": "Downloaded/previewed file shows watermark overlay",
   "source": "https://www.dropbox.com/plans (Watermarking feature row, Standard+)"
  },
  {
   "id": "cap-24",
   "group": "Security",
   "capability": "Classify and track sensitive/confidential content",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Admin console > Data classification"
   },
   "check": "File tagged with sensitive data type appears in classification report",
   "source": "https://www.dropbox.com/plans (Data classification feature row, Advanced plan)"
  },
  {
   "id": "cap-25",
   "group": "AI",
   "capability": "Connect Dropbox content to ChatGPT, Claude, Gemini, and other AI tools",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": "Dropbox MCP connector (via Claude/ChatGPT app connectors)",
    "cli": null,
    "ui": "App Integrations page connect flow"
   },
   "check": "Query the AI tool referencing a Dropbox file; response cites retrieved Dropbox content",
   "source": "https://www.dropbox.com/ (AI integrations: Bring Dropbox content into your favorite AI tools)"
  },
  {
   "id": "cap-26",
   "group": "AI",
   "capability": "Get AI-generated file summaries",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dropbox home/file preview AI summary panel"
   },
   "check": "Open a document; AI summary panel renders a generated summary",
   "source": "https://www.dropbox.com/ (\"Organize\": built-in AI summaries (coming soon))"
  },
  {
   "id": "cap-27",
   "group": "Admin",
   "capability": "Set tiered admin roles and permissions for the team",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": "POST /2/team/members/set_admin_permissions",
    "mcp": null,
    "cli": null,
    "ui": "Admin console > Members > Role"
   },
   "check": "GET /2/team/members/list shows member's role field updated",
   "source": "https://www.dropbox.com/plans (Tiered-admin management, Admin control)"
  },
  {
   "id": "cap-28",
   "group": "Admin",
   "capability": "Manage team sharing policies and approve device connections",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": "POST /2/team/policies/* (team API)",
    "mcp": null,
    "cli": null,
    "ui": "Admin console > Settings > Sharing / Devices"
   },
   "check": "Policy change in admin console reflected in GET /2/team/policies",
   "source": "https://www.dropbox.com/plans (Manage team sharing; Device approvals)"
  },
  {
   "id": "cap-29",
   "group": "Admin",
   "capability": "Transfer account content from one user to another",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Admin console > Members > Transfer files"
   },
   "check": "Source member removed, destination member's storage usage increases accordingly",
   "source": "https://www.dropbox.com/plans (Account transfer tool feature row)"
  },
  {
   "id": "cap-30",
   "group": "Admin",
   "capability": "Enable single sign-on (SSO) for the team",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Admin console > Authentication > SSO"
   },
   "check": "Team member login redirects to configured identity provider",
   "source": "https://www.dropbox.com/plans (Single sign-on, Advanced plan)"
  },
  {
   "id": "cap-31",
   "group": "Admin",
   "capability": "Track compliance (e.g. HIPAA) for stored content",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Admin console > Compliance"
   },
   "check": "Compliance report in admin console shows tracked status for account",
   "source": "https://www.dropbox.com/plans (Enable HIPAA compliance, Compliance tracking)"
  },
  {
   "id": "cap-32",
   "group": "Admin",
   "capability": "Brand shared files and links with custom logo/colors",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Admin console > Branding"
   },
   "check": "Shared link preview page shows uploaded team logo/colors",
   "source": "https://www.dropbox.com/plans (Brand your files to share)"
  }
 ],
 "attempts": [
  {
   "t": "01:06",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "MCP version",
   "task": "POST server/discover to https://mcp.dropbox.com/mcp",
   "result": "partial",
   "evidence": "HTTP 401 text/plain \"missing bearer token\"; WWW-Authenticate: Bearer resource_metadata=\"https://mcp.dropbox.com/.well-known/oauth-protected-resource/mcp\"",
   "notes": "auth required before discover; retry with token once in",
   "quality": {
    "error_legibility": "clear"
   }
  },
  {
   "t": "01:06",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "MCP auth metadata",
   "task": "GET PRM and AS metadata",
   "result": "done",
   "evidence": "PRM 200 application/json: resource https://mcp.dropbox.com/mcp, authorization_servers [https://www.dropbox.com], scopes files.*, sharing.*, file_requests.*, account_info.read. AS metadata https://www.dropbox.com/.well-known/oauth-authorization-server 200 JSON: registration_endpoint https://www.dropbox.com/oauth2/register (DCR), no client_id_metadata_document_supported, grant_types include device_code but no device_authorization_endpoint, code_challenge_methods plain,S256",
   "notes": "client registration: DCR only (no CIMD)"
  },
  {
   "t": "01:06",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "Cards",
   "task": "server card, AI catalog, A2A cards, ucp, auth.md, SKILL.md",
   "result": "done",
   "evidence": "https://mcp.dropbox.com/mcp/server-card 429 (no body); www.dropbox.com/.well-known/ai-catalog.json 404, agent-card.json 404, agent.json 404, mcp/server-card.json 404, ucp 404, /auth.md 404, /SKILL.md 404 (all text/html)",
   "notes": "no cards"
  },
  {
   "t": "01:06",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "robots.txt and aipref",
   "task": "GET https://www.dropbox.com/robots.txt",
   "result": "done",
   "evidence": "200, 39 lines; User-agent * group disallows /home*, /account*, /sharing/*, /s/, /scl/, /preview/, /recover*, /downgrade* etc.; no Content-Usage or Content-signal lines; /register and /developers/apps not disallowed",
   "notes": "/home* (the web file browser) and /account* (settings incl. delete) are disallowed for our agent"
  },
  {
   "t": "01:06",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "llms.txt and markdown",
   "task": "GET /llms.txt; Accept: text/markdown on developers docs; .md URL",
   "result": "done",
   "evidence": "https://www.dropbox.com/llms.txt 200 text/plain 209 KB, H1 \"# Dropbox\", links marketing+developers pages. Accept: text/markdown on /developers/documentation/http/documentation -> text/html, Vary: Accept-Encoding only; .md URL 404",
   "notes": "markdown: none"
  },
  {
   "t": "03:42",
   "cap": "docs",
   "capability": "Find docs",
   "task": "Read API docs and llms.txt",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "https://www.dropbox.com/developers/documentation/http/documentation 200 text/html (HTTP API reference); /llms.txt 200 lists developers pages; no OpenAPI (api.dropbox.com/openapi.json 404 per pay_probe)",
   "notes": "docs public, readable headless; no markdown variant"
  },
  {
   "t": "03:42",
   "cap": "signup",
   "capability": "Sign up headless",
   "task": "Find a documented API/CLI sign-up",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No sign-up endpoint in the HTTP API docs; AS metadata has no agent_auth block; /auth.md 404",
   "notes": "web form only"
  },
  {
   "t": "03:42",
   "cap": "signup",
   "capability": "Sign up in browser",
   "task": "Register at https://www.dropbox.com/register with the agent's inbox",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "Email -> name/password form accepted; first click on \"Agree and sign up\" refused a password without a digit (clear inline rule); after \"Agree and sign up\" the page showed an Arkose Labs puzzle: \"Protecting your account. Please solve this puzzle so we know you are a real person. Start Puzzle\" (screenshot browser/shots/006.png). pw captcha flags all false (Arkose not detected by our snapshot)",
   "notes": "visible puzzle (Arkose Labs FunCaptcha); asking a human via handoff"
  },
  {
   "t": "04:43",
   "cap": "pay",
   "capability": "Pay: public probes",
   "task": "402 challenges, registries, well-knowns, checkout and trial",
   "route": "browser",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "pay_probe.json: no 402 challenges on dropbox.com/api.dropbox.com, x402./mpp./agents. subdomains do not resolve, no mpp/Stripe Projects/Bazaar listing, /.well-known/ucp 404, MCP has no payment tools visible (401). pay_tx.json: refused, no 402 asking for USDC. /plans: \"Basic Free 2 GB to store and share your files\"; trial link /checkout?key=[redacted] shows \"Try free for 30 days ... No charge until 11/11/2026 ... Payment details ... Credit card. We accept visa, mastercard, amex, discover / Paypal / Account holder name, IBAN\" (Adyen direct debit) -> card trial",
   "notes": "free Basic plan; paid trial needs a payment method; no billing API in the HTTP API docs; hosted checkout (Adyen/Braintree/PayPal in page source). We paid nothing."
  },
  {
   "t": "04:43",
   "cap": "credentials",
   "capability": "OAuth client registration (DCR)",
   "task": "POST https://www.dropbox.com/oauth2/register (from AS metadata)",
   "route": "api",
   "documented": true,
   "result": "partial",
   "verified": true,
   "key": "create",
   "evidence": "201 application/json {client_id: [redacted], token_endpoint_auth_method: none, redirect_uris: their fixed localhost/127.0.0.1 list (our :8765 URI replaced)}",
   "notes": "client registered headless, but a token still needs a signed-in user at /oauth2/authorize: no account (sign-up wall). AS lists grant device_code but no device_authorization_endpoint."
  },
  {
   "t": "04:43",
   "cap": "credentials",
   "capability": "Scoped API key",
   "task": "Create an access token",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "key": "create",
   "evidence": "Tokens come from the App Console (/developers/apps, web) or the OAuth code flow; both need a signed-in account; sign-up stopped at the Arkose puzzle",
   "notes": "not reached"
  },
  {
   "t": "04:43",
   "cap": "first_call",
   "capability": "First API call",
   "task": "POST https://api.dropboxapi.com/2/files/list_folder without token",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "400 text/plain: Error in call to API function \"files/list_folder\": Invalid authorization value in HTTP header/URL parameter",
   "notes": "no token: sign-up wall",
   "quality": {
    "error_legibility": "clear"
   }
  },
  {
   "t": "04:43",
   "cap": "verify",
   "capability": "Verify email",
   "task": "Verification mail",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "sign-up not completed (Arkose puzzle); no account",
   "notes": "not reached"
  },
  {
   "t": "04:44",
   "cap": "first_action",
   "capability": "Create a file",
   "task": "Upload a file",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "no token",
   "notes": "not reached"
  },
  {
   "t": "04:56",
   "cap": "cancel",
   "capability": "Cancel plan",
   "task": "Cancel a started plan",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "no plan or trial was started (trial needs a payment method; no account)",
   "notes": "not tested: no plan or trial was started; trial page says \"Cancel anytime\" and \"We’ll remind you a week before your trial ends\""
  },
  {
   "t": "04:56",
   "cap": "delete",
   "capability": "Delete account",
   "task": "Delete the account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "no account was created (sign-up stopped at the Arkose puzzle); robots.txt disallows /account* where account settings live",
   "notes": "not reached"
  },
  {
   "t": "04:56",
   "cap": "discovery",
   "capability": "Inbox",
   "task": "Check inbox for any Dropbox mail",
   "route": "none",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "inbox read the agent's inbox: \"No mail\" (expected: sign-up never completed)"
  }
 ],
 "stale": false,
 "icon": "/logos/dropbox.png",
 "monitored": false,
 "verdict": "A person has to sign up: L1 · Needs a person. Sign-up stops first: the web form shows an Arkose Labs puzzle after \"Agree and sign up,\" so our agent never reached verification, a key, or a first call. Even without an account, Dropbox's agent surface holds up: public API docs, an llms.txt file, an official MCP server, and headless OAuth client registration through DCR all worked. The Standard trial checkout asks for a card, PayPal, or IBAN; no account was ever created, so cancelling and deleting were never tested.",
 "page": "https://agentdrives.com/tools/dropbox?via=api"
}