API v2 migration
Migrate to Crove API v2
Legacy API endpoints retired on 19 June 2026. Old integration paths return 410 Gone with no shim. This guide gets your API calls, no-code connectors, and webhooks onto v2.
Recommended next step for Direct REST API: Move to the v2 base URL, send X-Api-Key, replace retired paths, and update webhook code.
Open API guidePaste your error
Local decoder only. It recognizes 410, 403 quota_required, 308, and 401 migration failures.
What changed at a glance
Base URL
https://api.crove.app/api/external/v2Use v2 directly; do not rely on v1 redirects.
Auth
X-Api-Key: <key>API keys are unscoped. One key works across v2.
Legacy API
410 GoneNo compatibility shim for retired integration paths.
Webhook events
recipient.submittedrecipient.signed also maps here.
Your checklist
Migration checklist
0 of 5 complete for this path.
- Find every old endpoint or connector step
Search for /api/integrations/external, /template-webhooks, and /api/external/v1.
- Set the base URL to v2
Use https://api.crove.app/api/external/v2 directly.
- Send X-Api-Key
A Crove API key is unscoped and works across the v2 API.
- Confirm plan entitlements
403 quota_required means API or WEBHOOKS is missing from the plan.
- Update common task calls
Use the v2 create, update, send, submit, export, list, and webhook recipes.
Old to new endpoint map
| Legacy | Status | v2 equivalent | What changed |
|---|---|---|---|
| /api/integrations/external/* | 410 Gone | /api/external/v2/* | The old integration surface is retired with no compatibility shim. API reference |
| /api/integrations/template-webhooks/* | 410 Gone | /api/external/v2/webhooks* | Webhook registration moved to the v2 webhooks endpoints. API reference |
| /api/external/v1/* | 308 -> v2 | /api/external/v2/* | The redirect works, but clients should repoint directly to v2. API reference |
| /api/integrations/esahayak/documents/create/ | Live | No migration | This eSahayak endpoint is still live and unchanged. API reference |
/api/external/v2/*
The old integration surface is retired with no compatibility shim.
/api/integrations/template-webhooks/*
/api/external/v2/webhooks*
Webhook registration moved to the v2 webhooks endpoints.
/api/external/v2/*
The redirect works, but clients should repoint directly to v2.
Webhook event renames
| Legacy event | Canonical event | Note |
|---|---|---|
| document.response.submitted | recipient.submitted | Use for submitted recipient responses. |
| recipient.signed | recipient.submitted | Do not map this to document.completed. |
Canonical set
recipient.submitteddocument.completedexport.completeddocument.openedWebhook signature formula
Crove sends X-Crove-Signature: t=<unix>,v1=<hex>. Verify v1 = HMAC-SHA256(secret, "<t>.<raw_body>") and dedupe deliveries on payload id.
const signed = `${timestamp}.${rawBody}`;
const expected = hmacSha256Hex(webhookSecret, signed);
if (expected !== receivedV1) throw new Error("Invalid Crove signature");Cutover timeline
2026-06-04
API v2 published
The public v2 surface shipped at /api/external/v2 with the Scalar reference.
2026-06-19
Legacy integration API retired
Old /api/integrations/external and /template-webhooks paths began returning 410 Gone.
2026-06-19
v1 redirects to v2
/api/external/v1 redirects with 308, but integrations should repoint directly to v2.
Now
Connector recovery
Reconnect no-code tools, update webhook events, and verify signatures with the v2 scheme.