API Reference

v2.0

Build powerful integrations with our RESTful API. Create contracts, manage signatures, and automate workflows programmatically.

Base URL

https://api.baseflow.com/v2
API Operational

Authentication

All API requests require authentication via API key or OAuth token.

API Key Authentication

Include your API key in the Authorization header with every request.

curl -X GET "https://api.baseflow.com/v2/contracts" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

OAuth 2.0

For user-authorized integrations, use OAuth 2.0 with authorization code flow.

Authorization URL/oauth/authorize
Token URL/oauth/token

Endpoints

Core API endpoints for managing contracts and signatures

Contracts

GET/contracts
List all contracts
POST/contracts
Create a contract
GET/contracts/:id
Get a contract
PATCH/contracts/:id
Update a contract
DELETE/contracts/:id
Delete a contract
POST/contracts/:id/send
Send for signature

Templates

GET/templates
List all templates
POST/templates
Create a template
GET/templates/:id
Get a template
POST/templates/:id/use
Create contract from template

Signers

GET/contracts/:id/signers
List signers
POST/contracts/:id/signers
Add a signer
POST/contracts/:id/signers/:sid/remind
Send reminder

Team

GET/team/members
List team members
POST/team/invitations
Invite a member
DELETE/team/members/:id
Remove a member

Webhooks

GET/webhooks
List webhooks
POST/webhooks
Create a webhook
DELETE/webhooks/:id
Delete a webhook

Webhooks

Receive real-time notifications when events occur

Configure Webhooks
EventDescription
contract.createdA new contract was created
contract.sentA contract was sent for signature
contract.viewedA signer viewed the contract
contract.signedA signer completed their signature
contract.completedAll signers have signed
contract.declinedA signer declined to sign
contract.expiredA contract has expired

Example Payload

{
  "event": "contract.signed",
  "timestamp": "2026-02-01T10:30:00Z",
  "data": {
    "contract_id": "con_abc123",
    "signer_id": "sig_xyz789",
    "signer_email": "[email protected]",
    "signed_at": "2026-02-01T10:29:58Z"
  }
}

Official SDKs

Get started quickly with our official client libraries

Quick Example (Node.js)

import Baseflow from '@baseflow/sdk';

const client = new Baseflow('YOUR_API_KEY');

// Create a contract from template
const contract = await client.contracts.create({
  template_id: 'tmpl_abc123',
  name: 'Service Agreement - Acme Corp',
  signers: [
    { email: '[email protected]', name: 'John Doe', role: 'client' },
    { email: '[email protected]', name: 'Jane Smith', role: 'provider' }
  ],
  fields: {
    client_name: 'Acme Corporation',
    project_scope: 'Website redesign',
    total_amount: 15000
  }
});

// Send for signature
await client.contracts.send(contract.id);

console.log('Contract sent:', contract.id);

Rate Limits

API rate limits vary by plan

PlanRequests/MinuteRequests/Day
Starter6010,000
Professional12050,000
Business300200,000
EnterpriseCustomUnlimited

Ready to start building?

Get your API key and start integrating Baseflow into your application.