Can an AI agent use Copper (copper.com)?
As of 2 Oct 2026, an AI agent can't reliably get into Copper on its own, but once it is in it does 56% of the core work.
- Find: Some docs for agents: llms.txt.
- Access: Can't sign up.
- Use: 56% of the work.
- Pay: Reaches the checkout: Stopped at the card form.
- Leave: Nothing to cancel: Can't delete its account.
To reach L3 · Does the work: let an agent sign up on its own.
Our drives since 11 Oct 2026 stopped at sign-up: our agent followed this robots.txt rule until 15 Oct 2026, and the next drive goes past it. The level is from the drive of 2 Oct 2026.
With an account set up by a person: not measured yet.
What the levels meanDriven 2 Oct 2026New level in the latest driveRules of 15 Oct 2026Claim this page
Written by our agents from this drive. How we write.
Who gets in
- Agents on a serverCan't get in on their own.
- Signed agentsThe sign-up page opens.
- Agents in a person's browserNot measured yet.
Sign-up page checked 15 Oct 2026. Signed agents: the ones Cloudflare verifies. Where agents come from
What an agent can do in Copper (copper.com).
On its own
- Create and update contacts and companies, then find and remove them later
- Move a sales deal through stages and mark it won or lost
- Create and complete follow-up tasks tied to a deal
5 more
- Log calls and notes and read a combined activity timeline
- Add custom fields and tags to records and filter by them
- Set up a task that automatically fires when a deal is marked won
- Set a deal's currency
- Turn notifications on or off for record changes
What it can't, and why
- Sign up for an account on its ownthe sign-up page only offers 'Continue with Google'
- Get an API key without a browserkeys can only be generated from a settings page
- Send or sync email through the productemail features require a connected Gmail account
4 more
- Move a delivery project through its stagesthe documented project feature only has open/closed, not stages
- Pull a sales reportno reporting endpoint exists, only a dashboard in the app
- Create a lead-capture web formthe form builder did not respond to automated use, and there's no API for it
- Delete the accountno delete option exists in settings or via the API
Can an AI agent sign up for Copper on its own?
No. Sign-up: blocked. Every visible sign-up (www.copper.com/signup, app.copper.com/users/sign_up) offers only 'Continue with Google' ('Copper only works with Gmail & Google Workspace'). An agent without a Google account cannot start the trial through the UI. No CAPTCHA seen.
Does Copper (copper.com) have an MCP server, and can an agent connect to it?
No. The drive found no MCP server for Copper.
A new agent can't get in on its own: in the drive of 2 Oct 2026, our agent stopped at sign up (it was blocked).
What the drive found
API–OpenAPI–MCP–CLI–SDKllms.txtWebhooks–SandboxHow does an AI agent get a Copper (copper.com) API key?
In the drive of 2 Oct 2026, our agent got its Copper API key in a browser, without a person. Settings > Integrations > API Keys > Generate API Key (UI only; onboarding wizard must be skipped first). No API to mint keys; OAuth apps need Copper's approval.
Can an AI agent delete its Copper account?
Not applicable: our agent used Copper without an account.
Can an AI agent pay for Copper?
Reaches the checkout: stopped at the card form.
No card needed to start.
What would let agents pay on their own
- Accept x402 or MPP on your API. 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.Step-by-step guide
- List your plans on Stripe Projects. Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev).Step-by-step guide
No 402/x402/MPP/L402, no UCP or agent-registration metadata, not in x402 Bazaar or mpp.dev. Buying is an in-app card form (#/purchase/purchase-plan/activate: card number, CVC, expiry, billing address, authorize checkbox) that an agent with a card could fill on its own; 3DS behaviour unknown since we entered no card. No billing API. Trial: 14-day Business plan without a card.
From the drive of 2 Oct 2026.
For the team behind Copper.
Where agents stop in Copper (copper.com) today, and the fixes that get them further, highest impact first.
The fixes, highest impact first
- Show the email sign-up form you already supportStep-by-step guide
- Let agents mint API keys after sign-upStep-by-step guide
- Publish an OpenAPI file and llms.txt API linksStep-by-step guide
3 more fixes
- Document the MCP endpoint with OAuth discovery Step-by-step guide
- Expose pipeline-based projects in the API
- Add a self-serve delete-account path
- Claim it free and reply next to the result.
- A Drive, $49: your private report, with where agents stop, the evidence and the fixes that move your level.
- Fixed something? Order a Drive ($49) any time, or the Monthly drive ($29/month).
Details
Your API, MCP server or CLI is the product? An Audit ($299) also checks every documented route, MCP tool and CLI command against your docs. Compare plans.
Already claimed it? Open it in your dashboard.
Rather not be driven? Block AgentDrivesAgent in robots.txt or write to us. We stop driving it ourselves; this page stays, with its date.
Embed the badge on your site
Behind the level.
The part scores and the measures behind them.
Part scores and the measures · level history
Part scores
Agent-ready setup
- llms.txt: found
- OpenAPI: not found
- MCP server: not found
- CLI: not found
Not measured in this drive: Holds up, Docs match (part of an Audit).
The measures
- Work done56
- Reliability100
- Crash test–
Level history
- 1 Oct 2026L4Runs on its own
- 2 Oct 2026new driveL1Needs a person
Not in this history: our drives since 11 Oct 2026, stopped at sign-up by a robots.txt rule our agent followed until 15 Oct 2026.
For agents and builders.
The drive as data, every checkpoint and all 29 attempts.
How an agent connects · 7 tips
/api/tools/copper.json/tools/copper.mdMCP get_tool {"slug":"copper"}
- Use the REST API with three headers: X-PW-AccessToken, X-PW-Application: developer_api, X-PW-UserEmail.
- Search endpoints lag a few seconds behind writes; read by id (GET /x/{id}, fetch_by_email) to verify.
- A new account has no pipeline until the first opportunity is created; POST /opportunities without pipeline_id creates a default one.
- Custom field data types are String, Text, Dropdown, Date, Checkbox, Float, URL, Percentage, Currency, MultiSelect ('Number' gives 422).
- Leads are off by default (403 'Feature not enabled').
- Automations exist only in the UI; build them in the browser and drive them via the API.
- In the web app every hash-route modal must be driven in one browser session; custom dropdowns are plain <li> lists.
Every checkpoint, in detail · 9 checkpoints
- DocsHeadlessdeveloper.copper.com: full REST reference (people, companies, leads, opportunities, projects, tasks, activities, custom fields, related items, tags, webhooks, file upload). llms.txt exists but is marketing text. No OpenAPI file found.
- Sign upBlockedEvery visible sign-up (www.copper.com/signup, app.copper.com/users/sign_up) offers only 'Continue with Google' ('Copper only works with Gmail & Google Workspace'). An agent without a Google account cannot start the trial through the UI. No CAPTCHA seen.
- VerifyIn a browserReached via the internal email sign-up: confirmation mail from notifier@copper.com arrived in ~5 s (read headless); the link opens a 'Set your password' form, filled in the browser.
- KeyIn a browserSettings > Integrations > API Keys > Generate API Key (UI only; onboarding wizard must be skipped first). No API to mint keys; OAuth apps need Copper's approval.
- First callHeadlessGET /developer_api/v1/account 200 with X-PW-AccessToken, X-PW-Application, X-PW-UserEmail headers
- First actionHeadlessPOST /companies and /people 200, read back with GET
- PayIn a browserNo 402/x402/MPP/L402, no UCP or agent-registration metadata, not in x402 Bazaar or mpp.dev. Buying is an in-app card form (#/purchase/purchase-plan/activate: card number, CVC, expiry, billing address, authorize checkbox) that an agent with a card could fill on its own; 3DS behaviour unknown since we entered no card. No billing API. Trial: 14-day Business plan without a card.
- CancelNot neededNothing to cancel: our agent started no paid plan.
- DeleteBlockedNo delete-account control in Settings and no API; help center only covers deleting users and records. All records we created were deleted via API; the trial workspace remains until it expires.
The attempt log · 29 attempts
| Capability | Route | Result | Evidence |
|---|---|---|---|
| find docs: Find developer docs, llms.txt, discovery files | api | done ✓ | developer.copper.com 200 (REST API docs); www.copper.com/llms.txt 200 (marketing summary, mentions REST API+OAuth); no .well-known oauth/ucp, no SKILL.md/auth.md; x402./mpp./agents. subdomains do not resolve |
| sign up: Start the 14-day free trial (no card) via the public sign-up page | browser | blocked ✓ | www.copper.com/signup and app.copper.com/users/sign_up only offer 'Continue with Google' (Google OAuth); page text: 'Copper only works with Gmail & Google Workspace.' No email/password form rendered. We hold no Google account. |
| verify email: Confirm email from the agent's inbox and set the password | browser | done ✓ | 'Confirm Your Email Address' from notifier@copper.com arrived in ~5s; link -> /users/confirmation?confirmation_token=•••• -> 'Set your password' form; after submit landed in app.copper.com/companies/621205/app#/welcome with '14 days left in your Business plan trial' |
| get API key: Generate an API key | browser | done ✓ | Settings > Integrations > API Keys > 'Generate API Key' showed a 32-hex key in the table |
| first API call: GET /account and /users/me | api | done ✓ | GET /developer_api/v1/account 200 {id:621205,name:"AgentDrives Test's Company"}; /users/me 200 id 1427486 |
| Add and manage a contact (person or company): Create company + person linked to it, update title, read back, search, delete a temp person | api | done ✓ | POST /companies 200 id 77690226; POST /people 200 id 185824919 company_id 77690226; PUT title -> GET shows 'Head of Buying', company_name 'AgentDrives Demo Co'; DELETE /people/185824921 -> {is_deleted:true}, GET -> 404 |
| first real action: Create a company via API | api | done ✓ | POST /companies 200 id 77690226, read back via GET /people/185824919 company_name |
| Create and track a sales opportunity through pipeline stages: Create opportunity 'AgentDrives pilot' in stage Lead, move to Proposal | api | done ✓ | POST /opportunities 200 id 39272158 stage 5217782; PUT pipeline_stage_id 5217783; GET shows 5217783; activity feed shows system 'Stage Change' on the opportunity |
| Mark a deal as won/lost: Mark pilot Won and demo deal Lost | api | done ✓ | PUT status Won -> GET status 'Won'; PUT /opportunities/39272157 status Lost -> 'Lost'; POST /opportunities/search status_ids [1] returns 'AgentDrives pilot' |
| Convert a closed deal into a delivery project: Turn won deal into a project | api | partial ✓ | No convert endpoint. Workaround: POST /projects 200 id 1673298 then POST /opportunities/39272158/related {project} -> added:true; GET related/projects lists it |
| Manage a project through its pipeline (create, move stage, close): Create project, close it | api | partial ✓ | POST /projects 200 id 1673298 status Open; PUT status Completed -> 200 status 'Completed' |
| Assign and complete a task or follow-up: Create a high-priority task on the deal assigned to me, complete it | api | done ✓ | POST /tasks 200 id 60397516 related opportunity 39272158 assignee 1427486; PUT status Completed; GET status 'Completed'; feed shows system Status Change on task |
| Add custom fields to a record type: Create Float field 'Agent score' on person+opportunity and set it | api | done ✓ | POST /custom_field_definitions 200 id 770759; PUT /people/185824919 custom_fields value 42 -> returned value 42.0 |
| Tag, label and filter records: Tag Dana 'vip' and filter people by tag | api | done ✓ | PUT tags ['agentdrives','vip'] 200; POST /people/search {tags:['vip']} returned 'Dana Demo' (empty on first try ~seconds after write) |
| View a unified activity feed across contacts/deals/projects: Log a phone call on person and a note on deal; read the feed | api | done ✓ | POST /activities 200 ids 13475828083, 13475828116; POST /activities/search lists both plus system events for task, project, opportunity |
| Log calls and SMS automatically via the mobile app: Log a phone call activity | api | partial ✓ | Phone Call activity type 2401715 logged via POST /activities; automatic mobile logging not testable headless |
| Invite and collaborate with teammates on shared records: List users | api | partial ✓ | POST /users/search 200 returns 1 user; no documented API to invite users |
| Set multi-currency on opportunities: Set deal currency to EUR | api | done ✓ | PUT monetary_unit EUR 200 -> monetary_unit 'EUR' (converted_unit USD) |
| Build a custom report on pipeline/revenue/activity: Fetch a report via API | api | failed ✓ | GET /reports/activities, /report/activities, /reports/opportunities -> 404 not_found; developer.copper.com has no reports section |
| Send and sync email through Gmail inside Copper: Send/sync an email | none | blocked | Email send/sync requires connecting a Google account (Gmail); our identity is an email-only account with no Google account. API has no send-email endpoint. |
| Subscribe to record-change webhooks: Create, list, delete a webhook on opportunity update | api | done ✓ | POST /webhooks 200 id 561159; GET lists it; DELETE 200; GET [] |
| Capture a lead from an embedded website contact form: Create a 'Create or update people' web form in Forms and submit it | browser | failed ✓ | Forms page renders, but clicking the 'Create or update people' card (by text, ancestor element, and coordinates) did nothing; Playwright click timed out after 20s (element not actionable); no popup, no navigation. No documented forms API. |
| buy the product: Probe agent payment rails and the purchase path (no payment made) | browser | blocked ✓ | No 402/x402/MPP/L402: unauthenticated API -> 401 {error:'authentication error'}; x402./mpp./agents.copper.com do not resolve; no /.well-known/ucp or oauth metadata; not listed in x402 Bazaar or mpp.dev. Purchase = in-app page #/purchase/purchase-plan/activate with card number/CVC/expiry/billing address form + authorize checkbox; no billing API documented. |
| Automate a stage-triggered email or task (pipeline/workflow automation): Task automation: when a pipeline record's status changes to Won, create task 'Kick off delivery project'; then win a deal via API | browser | done ✓ | Automations > Task Automations > Add new (Pipeline record / Status is changed to / Won) saved -> list shows 'Pipeline records (1)'. PUT /opportunities/39272229 status Won via API -> GET /opportunities/39272229/related/tasks returns task 60397657; GET /tasks/60397657 name 'Kick off delivery project' |
| Send a bulk/mass email to a filtered list of contacts: Select people in the People list and open the bulk 'Email' action (to our own inbox only) | browser | failed | People list: selecting Dana Demo shows toolbar 'Edit | Email | Export'; our scripted click landed on a column header instead and the composer never opened in 4 attempts. No documented API for bulk email. |
| delete created records: Delete every record created via API | api | done ✓ | [('/tasks/60397516', 200), ('/tasks/60397657', 200), ('/opportunities/39272158', 200), ('/opportunities/39272157', 200), ('/opportunities/39272229', 200), ('/projects/1673298', 200), ('/activities/13475828083', 200), ('/activities/13475828116', 200), ('/people/185824919', 200), ('/companies/77690226', 200), ('/custom_field_definitions/770759', 200)]; GETs after -> 404 |
| cancel plan: Find how to cancel | none | skipped | No paid plan started (14-day trial, no card) so nothing to cancel. Help article 'Cancel Subscription': Settings > Billing > 'Request Cancellation' (account owner) sets cancel at next renewal, or billing support via chat/support@copper.com (up to 24h). No billing API documented. |
| delete account: Delete the account and its data | browser | blocked ✓ | Settings menus (Google Sync, Manage Your Data: Import/Export, Personal Preferences, Users, Customization, Integrations: API Keys, Security: SSO, Billing & Upgrade) show no delete-account control; help center search 'delete account' only covers deleting users/records; no API endpoint. All records created were deleted via API (see cleanup). |
| Create and track a sales opportunity through pipeline stages | api | done ✓ | POST /opportunities pipeline 1161227 stage 5217779 -> id 39272254; PUT stage 5217780; GET pipeline_stage_id 5217780; deleted |
Also in CRM.
AttioL4Gets in on its ownCopper vs Attio
TwentyL4Gets in on its ownCopper vs Twenty
PipedriveL3Gets in on its ownCopper vs Pipedrive
SalesforceL2Gets in on its ownCopper vs Salesforce