Crove Docs
Crove Docs
Crove Documentation

Getting Started

IntroductionQuick StartKey Concepts

Templates

Templates OverviewTemplate EditorVariablesExpressionsForm Builder

Documents

Documents OverviewCreating DocumentsFilling DocumentsE-SignaturesPDF Generation

API Reference

API OverviewAuthenticationTemplates APIDocuments APIRate Limits

Webhooks

Webhooks OverviewOutgoing WebhooksIncoming WebhooksWebhook Events

Integrations

Integrations OverviewZapier IntegrationAPI Keys

Account & Billing

Account OverviewTeam ManagementBilling & PlansWorkspace Settings

Documents API

Create, manage, and download documents via the Crove REST API.

Documents API

Create documents from templates, manage their lifecycle, send invitations, and download PDFs.

List documents

Retrieve all documents in your workspace.

GET /api/external/v1/documents

Response

{
  "data": [
    {
      "id": "doc_abc123",
      "name": "Contract - Acme Corp",
      "templateId": "tmpl_xyz789",
      "completed": false,
      "sent": true,
      "createdAt": "2026-02-10T09:00:00Z",
      "updatedAt": "2026-02-15T14:30:00Z"
    }
  ]
}

Example

curl -X GET https://crove.app/api/external/v1/documents \
  -H "Authorization: Bearer YOUR_API_KEY"

Get document

Retrieve details of a specific document including response data.

GET /api/external/v1/documents/{id}

Path parameters

ParameterTypeDescription
idstringDocument ID

Response

{
  "data": {
    "id": "doc_abc123",
    "name": "Contract - Acme Corp",
    "templateId": "tmpl_xyz789",
    "completed": false,
    "sent": true,
    "responseData": {
      "clientName": "Acme Corporation",
      "contractAmount": 50000,
      "startDate": "2026-03-01"
    },
    "respondents": [
      {
        "id": "resp_001",
        "email": "john@acme.com",
        "role": "Client",
        "submitted": true,
        "submittedAt": "2026-02-12T10:15:00Z"
      }
    ],
    "createdAt": "2026-02-10T09:00:00Z",
    "updatedAt": "2026-02-15T14:30:00Z"
  }
}

Example

curl -X GET https://crove.app/api/external/v1/documents/doc_abc123 \
  -H "Authorization: Bearer YOUR_API_KEY"

Create document

Create a new document from a template. You can optionally pre-fill variable values.

POST /api/external/v1/documents

Request body

FieldTypeRequiredDescription
templateIdstringYesID of the template to use
namestringNoDocument name (auto-generated from template if omitted)
dataobjectNoPre-fill variable values as key-value pairs

Request example

{
  "templateId": "tmpl_xyz789",
  "name": "Contract - Acme Corp - March 2026",
  "data": {
    "clientName": "Acme Corporation",
    "clientEmail": "john@acme.com",
    "contractAmount": 50000,
    "startDate": "2026-03-01",
    "paymentTerms": "Net 30"
  }
}

Response

{
  "data": {
    "id": "doc_new456",
    "name": "Contract - Acme Corp - March 2026",
    "templateId": "tmpl_xyz789",
    "completed": false,
    "sent": false,
    "createdAt": "2026-02-18T10:00:00Z"
  }
}

Example

curl -X POST https://crove.app/api/external/v1/documents \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "templateId": "tmpl_xyz789",
    "name": "Contract - Acme Corp",
    "data": {
      "clientName": "Acme Corporation",
      "contractAmount": 50000
    }
  }'

Update document

Update a document's properties or response data.

PATCH /api/external/v1/documents/{id}

Path parameters

ParameterTypeDescription
idstringDocument ID

Request body

FieldTypeRequiredDescription
namestringNoNew document name
dataobjectNoUpdate variable values

Example

curl -X PATCH https://crove.app/api/external/v1/documents/doc_abc123 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Contract - Acme Corp (Revised)"}'

Delete document

Permanently delete a document.

DELETE /api/external/v1/documents/{id}

Path parameters

ParameterTypeDescription
idstringDocument ID

Example

curl -X DELETE https://crove.app/api/external/v1/documents/doc_abc123 \
  -H "Authorization: Bearer YOUR_API_KEY"

Download PDF

Download the completed document as a PDF file.

GET /api/external/v1/documents/{id}/pdf

Path parameters

ParameterTypeDescription
idstringDocument ID

Response

Returns the PDF file as binary data with Content-Type: application/pdf.

Example

curl -X GET https://crove.app/api/external/v1/documents/doc_abc123/pdf \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -o document.pdf

The PDF is generated on-demand if it doesn't already exist. For large documents, the first request may take a few seconds.


Send invitations

Send email invitations to recipients for a document.

POST /api/external/v1/documents/{id}/send

Path parameters

ParameterTypeDescription
idstringDocument ID

Request body

FieldTypeRequiredDescription
recipientsarrayYesList of recipients
recipients[].emailstringYesRecipient email address
recipients[].rolestringNoRole name from the template
recipients[].messagestringNoCustom message in the invitation email

Request example

{
  "recipients": [
    {
      "email": "john@acme.com",
      "role": "Client",
      "message": "Please review and sign the attached contract."
    },
    {
      "email": "jane@acme.com",
      "role": "Witness"
    }
  ]
}

Response

{
  "data": {
    "success": true,
    "message": "Invitations sent",
    "invitationsSent": 2
  }
}

Example

curl -X POST https://crove.app/api/external/v1/documents/doc_abc123/send \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "recipients": [
      {
        "email": "john@acme.com",
        "role": "Client",
        "message": "Please review and sign."
      }
    ]
  }'

Common workflows

Create and send in one flow

# Step 1: Create document with pre-filled data
RESPONSE=$(curl -s -X POST https://crove.app/api/external/v1/documents \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "templateId": "tmpl_xyz789",
    "name": "Contract - New Client",
    "data": {"clientName": "New Client Inc."}
  }')

# Step 2: Extract document ID
DOC_ID=$(echo $RESPONSE | jq -r '.data.id')

# Step 3: Send for signing
curl -X POST "https://crove.app/api/external/v1/documents/$DOC_ID/send" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "recipients": [{"email": "client@example.com", "role": "Client"}]
  }'

Templates API

Create, list, update, and delete templates via the Crove REST API.

Rate Limits

Understand API rate limits and quotas for the Crove REST API.

On this page

Documents APIList documentsResponseExampleGet documentPath parametersResponseExampleCreate documentRequest bodyRequest exampleResponseExampleUpdate documentPath parametersRequest bodyExampleDelete documentPath parametersExampleDownload PDFPath parametersResponseExampleSend invitationsPath parametersRequest bodyRequest exampleResponseExampleCommon workflowsCreate and send in one flow