State of Sales Comp APIs 2026
Here is a five-minute test for any commission platform: ask to see a plan change made through the API. Not a payout report. Not a data import. An actual change to an actual tier, from code. We ran that test on all 14 vendors in the category, using nothing but their public developer docs. Thirteen fail it.
Why care? Because comp changes are not rare events. New pricing, a mid-quarter SPIF, a territory move, a quota reset: at a growing B2B SaaS that is a change every few weeks. On 13 of these platforms, each one is a ticket into a UI, untested until payroll runs it. The same test explains this year's parade of AI-agent announcements: every incumbent agent is read-only, so the agent your vendor demos can describe your comp plan and change none of it. You still do the work.
Everything below is checkable: the CSV carries the source URL for every row.
Disclosure, since we are grading our own homework: CompCode wrote this report and sits in row one of the table. Same method for all 14 rows, no aggregate score, and any vendor can get a wrong cell fixed by sending a source to hello@compcode.ai.
What we found
- One vendor of 14 lets you change a plan through an API. For the other 13, a plan change is a human clicking through the vendor's UI. No diff, no test, no script.
- Four vendors ship or announce an MCP server. Every incumbent one is read-only. "Do you have an MCP server" has stopped being a useful question. "Can your agent change a tier" still is.
- Seven publish an OpenAPI spec. No spec, no codegen, no MCP wrapper, no agent tools. Not even from a third party.
- One has a dry-run simulation API. Everyone else tests comp changes in production, on real paychecks.
- Five serve a valid llms.txt. The rest 404 or serve HTML at the path.
How we scored it
Six columns, all checkable from public developer docs without talking to sales: plan CRUD, MCP scope, OpenAPI, versioning, simulation, and llms.txt. We checked llms.txt by HTTP status and content type rather than taking the vendor's word for it. Where there is no public answer, the cell says "n/d", never a guess.
We scored everything twice: a first pass on May 24 and a full re-verification against primary sources on August 13. Deliberately out of scope: pricing, implementation time, integration counts. This is about the API layer and nothing else. Spot a wrong cell? Send the source to hello@compcode.ai and we will fix the row and the CSV, dated.
The scorecard, all 14 vendors
"n/d" means we found no public answer. Bold cells changed between the May and August passes. You will notice there is no total score per vendor: the six columns answer different questions, and adding them up would only manufacture a winner. One footnote: Everstage's row is carried from our May pass; their site was unreachable when we re-verified on August 13.
| Vendor | Plan API | MCP | OpenAPI | Versioning | Simulate API | llms.txt |
|---|---|---|---|---|---|---|
| CompCode | yes | yes (29 tools, writes plans) | yes | immutable ledger | yes | yes |
| CaptivateIQ | no (read-only) | "coming soon" | yes | activity log | no | yes |
| Performio | no (Metadata + Errand + Extract) | announced (Oct 2025), read-scoped | yes | activity log | no | no |
| QuotaPath | no (Deals + Payouts) | no | partial | activity log | no | no |
| Xactly Incent | no (Connect = data only) | announced (May 2026) | yes (Connect) | activity log | no | no |
| Qobra | no (4 reporting endpoints) | no | yes | activity log | no | yes |
| Everstage | no (data + payout export) | no | yes | activity log | no | no |
| Visdum | no (CRM sync only) | no | n/d | activity log | no | yes |
| Salesforce Spiff | no (3 read APIs) | platform-level only | yes (managed) | activity log | no | no |
| Sales Cookie | no (REST API in Business+ only) | no (3rd-party wrapper only) | n/d | activity log | no | no |
| Variabl (ex-ZenCentiv) | no (data exports) | no | n/d | n/d | no | yes |
| Palette HQ | no (no public API docs) | no | n/d | activity log | no | no |
| Forma.ai | no (no public API at all) | no | no | n/d | no | no |
| NetSuite Incentive | no (not exposed for customization) | no | partial (SuiteScript) | activity log | no | no |
Only one vendor has a plan-configuration API
CompCode documents create, update, and delete for plans, rules, and tiers. Nobody else does. The other 13 commission APIs read results out or push deals in, and the plan logic itself gets configured by a human inside the vendor's UI. Every tier change, every accelerator, every mid-year adjustment: click, click, Save.
CaptivateIQ makes the pattern easy to see. Their developer portal lists more than 80 endpoints, and exactly two touch commission plans: List and Get. QuotaPath exposes deals in and payouts out. Spiff has three APIs, all read or ingest. Performio has four, none of which modify a plan. Forma.ai told GetApp it has no public API at all. If treating plan logic as configuration is a new idea, the commission-as-code primer covers what changes when it behaves like code.
Every AI agent in this category is read-only
Four of 14 vendors now ship or announce an MCP server, and this column moved faster than any other in the audit. The verified August state is below. The pattern in it matters more than the count.
| Vendor | MCP status | Scope | Source |
|---|---|---|---|
| CompCode | Shipped, on npm, 29 tools | Full API surface including plan/rule/tier writes | npm @compcode/mcp |
| Performio | Announced Oct 23, 2025 | Inspect plans, chain import-calculate-fetch. Plan modification not among announced capabilities. | Performio |
| Xactly | Announced May 2026 | "Cross ecosystem Agentic collaboration"; scope and GA date not disclosed | Xactly press room |
| CaptivateIQ | "Coming Soon" | "Secure, governed access to your live compensation and planning data" | captivateiq.com/ai-agents |
| Salesforce (Spiff) | Platform-level, GA April 2026 | Org-wide Salesforce MCP, not a Spiff commissions surface | Salesforce developer blog |
| Sales Cookie | Third-party wrapper only | A viaSocket connector, not vendor-shipped. Not counted. | viasocket.com |
| All others | None found |
Every incumbent server is read-scoped. An MCP server on top of a read-only API inherits the ceiling: the agent can summarize your comp plan beautifully and change none of it. So skip "do you have an MCP server" in the RFP; by next quarter everyone will say yes. Ask "can your agent change a tier". Today one can, and only because the API underneath it writes.
Half the category has no machine-readable spec
Seven of 14 publish an OpenAPI spec: CaptivateIQ, Xactly, Performio, Everstage, Qobra, Spiff, and CompCode. QuotaPath and NetSuite publish partial surfaces. The other five publish nothing. This matters more than it looks: every agent toolchain consumes OpenAPI as its input, so a vendor without a spec cannot be wrapped into an agent tool even by a motivated third party.
Version history through the API: one vendor
Commission platforms keep audit trails, and the enterprise ones can reconstruct plan state for a dispute. What none of the 13 incumbents documents is an endpoint for it: version history you can fetch, diff, and roll back from code. CompCode exposes it at GET /v1/plans/:id/history. For automation this is the safety net: an agent that changes plans needs the before-state and a way back.
Everyone simulates in the UI. One vendor simulates through the API.
Most platforms can model a plan change somewhere in their UI; Spiff's Commission Estimator is the visible example. What no incumbent documents is a simulation API: an endpoint that replays real deals through a draft plan and returns the result to code. That difference decides whether a comp change can be regression-tested in CI, or checked by an agent, before it ships.
CompCode's is POST /v1/commissions/simulate. It replays your closed deals through the draft plan and returns per-rule results without writing to the ledger. UI modeling helps a human eyeball a change. An API dry run lets automation prove one.
Five vendors have docs an agent can actually read
Five of 14 serve a valid llms.txt: CaptivateIQ, Qobra, Visdum, Variabl, and CompCode. CaptivateIQ's is the best in the audit and indexes every documented endpoint. The other nine 404 or serve an HTML page at the path, which is worse than a 404 because a crawler logs a 200 and moves on. We checked by HTTP status and content type because vendor claims and reality disagreed more than once.
What to do with this
Run the test from the top of this page, in three parts: ask for the OpenAPI spec, ask for one plan-write endpoint, and ask the demoed agent to change a tier. Each part maps to a column above, and the three together take about five minutes. They separate a programmable platform from a reporting feed with marketing attached. The commission API guide has the longer version of the checklist.
If you already ship comp logic the way you ship code, CompCode's free tier is the proof of concept: ten reps, the full REST API, one claude mcp add away. And the CSV is CC-BY with a source per row; if your rerun disagrees with a cell, we will run the correction with your name on it.