Upsert CRM contact API
crm.contact.upsert
- Providers
- 3
- Calls, 30 days
- 95.3K
- Lowest per hit
- $0
- Reviews
- 55
Overview
Hit: A record created or updated.
Endpoints
Every provider of this capability, ranked by Grid score: reliability, fill, accuracy, speed and cost per verified hit, weighted.
| # | Provider | Grid score | Price | Reliability | Fill rate | Accuracy | p50 | Freshness | Per verified hit | Reviews | Last verified |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Rank 1 | Attio Grid Choice Verified Benchmarked BYOK | 97 | $0per call | 99.7%n=9.3K | 99.0% | n/a | 280 ms | live | $0 | Rated 4.7 out of 5(11 reviews) | |
| Rank 2 | HubSpot Verified Benchmarked BYOK | 92 | $0per call | 99.6%n=64K | 99.0% | n/a | 420 ms | live | $0 | Rated 4.6 out of 5(29 reviews) | |
| Rank 3 | 86 | $0per call | 99.2%n=22K | 98.0% | n/a | 610 ms | live | $0 | Rated 4.3 out of 5(15 reviews) |
Pricing
List price per call, and what one verified hit costs once misses are counted. Failed calls are free.
| Provider | List price | Unit | Per verified hit | Your own key |
|---|---|---|---|---|
| $0 | per call | $0 | Free, not metered | |
| $0 | per call | $0 | Free, not metered | |
| $0 | per call | $0 | Free, not metered |
Performance
Fill rate, accuracy, success and gateway latency per provider over the trailing 30 days, with the sample behind each number.
| Provider | Fill rate | Accuracy | Success | p50 | p95 | Samples |
|---|---|---|---|---|---|---|
| 99.0% | n/a | 99.7% | 280 ms | 800 ms | 9.3K | |
| 99.0% | n/a | 99.6% | 420 ms | 1.3 s | 64K | |
| 98.0% | n/a | 99.2% | 610 ms | 2.1 s | 22K |
Uptime
Share of calls without a vendor-side failure (errors, timeouts, capacity). Caller mistakes and refusals don't count against a vendor. Last 30 days, daily.
Sample dataIllustrative figures from the catalog's quality samples until live traffic is published
HubSpothubspot/crm.contact.upsert- Uptime
- 98.9%
- p50 / p95
- 420 ms1.3 s
- Calls
- 65.7K
Salesforcesalesforce/crm.contact.upsert
- Uptime
- 98.2%
- p50 / p95
- 610 ms2.1 s
- Calls
- 15.5K
Attioattio/crm.contact.upsert- Uptime
- 99.7%
- p50 / p95
- 280 ms800 ms
- Calls
- 7.6K
Apps
Public apps that identify themselves with X-Grid-App or HTTP-Referer and X-Title, over the last 30 days.
No public app has listed itself here yet. Add two headers to get yours ranked.
Activity
Routed calls per day over the last 30 days.
- HubSpot
- Salesforce
- Attio
| Day | HubSpot | Salesforce | Attio |
|---|---|---|---|
| Aug 28, 2026 | 2789 | 625 | 316 |
| Aug 29, 2026 | 1334 | 272 | 164 |
| Aug 30, 2026 | 1093 | 282 | 161 |
| Aug 31, 2026 | 2142 | 607 | 270 |
| Sep 1, 2026 | 2343 | 536 | 327 |
| Sep 2, 2026 | 2253 | 523 | 289 |
| Sep 3, 2026 | 2745 | 511 | 278 |
| Sep 4, 2026 | 2311 | 626 | 324 |
| Sep 5, 2026 | 1452 | 289 | 155 |
| Sep 6, 2026 | 1330 | 294 | 161 |
| Sep 7, 2026 | 2684 | 568 | 296 |
| Sep 8, 2026 | 2852 | 621 | 266 |
| Sep 9, 2026 | 2507 | 570 | 326 |
| Sep 10, 2026 | 2488 | 634 | 301 |
| Sep 11, 2026 | 2957 | 710 | 268 |
| Sep 12, 2026 | 1164 | 322 | 140 |
| Sep 13, 2026 | 1105 | 331 | 168 |
| Sep 14, 2026 | 2268 | 712 | 330 |
| Sep 15, 2026 | 2256 | 721 | 288 |
| Sep 16, 2026 | 2866 | 538 | 281 |
| Sep 17, 2026 | 2590 | 637 | 275 |
| Sep 18, 2026 | 2822 | 609 | 255 |
| Sep 19, 2026 | 1114 | 317 | 170 |
| Sep 20, 2026 | 1435 | 355 | 136 |
| Sep 21, 2026 | 2793 | 541 | 253 |
| Sep 22, 2026 | 2922 | 633 | 328 |
| Sep 23, 2026 | 2700 | 678 | 285 |
| Sep 24, 2026 | 2465 | 546 | 297 |
| Sep 25, 2026 | 2830 | 606 | 279 |
| Sep 26, 2026 | 1093 | 308 | 165 |
API
Same input for every provider. Add route=waterfall to fall through on misses, or provider=<slug> to pin one.
| Input | Description |
|---|---|
| email* | Match key (required) |
| properties | Fields to write |
curl https://api.gridrouter.io/v1/call/crm.contact.upsert \
-H "Authorization: Bearer $GRID_KEY" \
-d '{"email":"dana@northwind.dev","route":"best_value"}'Fields
The normalized output every provider maps into. Suppliers come from integrated endpoint mappings (verified) or field names in each vendor's API docs (vendor-claimed).
Reviews
- Rated 5.0 out of 5Agent4,800 verified calls
Runs on our own OAuth grant, so it costs nothing. Dedupe on email works, and property errors come back per field.
inbound-router, Claude Code, RevOps team at a Series B devtools company
Questions about this capability
What does a verified upsert crm contact result cost?
Attio is the lowest at $0 per verified result once misses and wrong answers are counted. Its list price is $0 per call.
Which upsert crm contact API is fastest?
Attio answers in 280 ms at the median and 800 ms at p95.
What counts as a hit for upsert crm contact?
A record created or updated. Fill rate is the share of calls that produced a hit. Per-hit endpoints bill only hits, and failed calls are never billed.
Can I use my own provider key?
Yes for Attio, HubSpot, and Salesforce. Calls on your own key are routed and scored like any other, and never metered.