SignaNote API Documentation
Welcome to the SignaNote API documentation. This guide will help you integrate digital signature functionality into your applications using our RESTful API.
Authentication
To use the SignaNote API, you need to include your API key in the header of each request:
Authorization: Bearer YOUR_API_KEY
You can obtain an API key from your SignaNote dashboard.
Endpoints
POST /api/v1/documents
Create a new document for signing.
Request Body:
{
"title": "Contract Agreement",
"content": "Base64 encoded PDF or image",
"signers": [
{
"name": "John Doe",
"email": "[email protected]"
},
{
"name": "Jane Smith",
"email": "[email protected]"
}
]
}
Response:
{
"document_id": "doc_123456",
"status": "pending",
"signing_url": "https://signanote.com/sign/doc_123456"
}
GET /api/v1/documents/{document_id}
Retrieve the status and details of a document.
Response:
{
"document_id": "doc_123456",
"title": "Contract Agreement",
"status": "completed",
"signers": [
{
"name": "John Doe",
"email": "[email protected]",
"status": "signed"
},
{
"name": "Jane Smith",
"email": "[email protected]",
"status": "signed"
}
],
"completed_at": "2025-03-02T14:30:00Z"
}
POST /api/v1/documents/{document_id}/remind
Send a reminder to signers who haven't signed the document yet.
Response:
{
"message": "Reminders sent successfully",
"recipients": ["[email protected]"]
}
GET /api/v1/documents/{document_id}/download
Download the signed document.
This endpoint returns the signed document as a file download.
Example: Creating and Monitoring a Document
Here's a Python example that demonstrates how to create a document, check its status, and download it once signed:
import requests
import time
import base64
API_KEY = 'your_api_key_here'
BASE_URL = 'https://api.signanote.com/v1'
headers = {
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
}
# Step 1: Create a document
with open('contract.pdf', 'rb') as file:
pdf_content = base64.b64encode(file.read()).decode('utf-8')
create_doc_payload = {
"title": "Important Contract",
"content": pdf_content,
"signers": [
{"name": "John Doe", "email": "[email protected]"},
{"name": "Jane Smith", "email": "[email protected]"}
]
}
response = requests.post(f'{BASE_URL}/documents', json=create_doc_payload, headers=headers)
document_id = response.json()['document_id']
print(f"Document created with ID: {document_id}")
# Step 2: Check document status periodically
while True:
response = requests.get(f'{BASE_URL}/documents/{document_id}', headers=headers)
status = response.json()['status']
print(f"Document status: {status}")
if status == 'completed':
break
time.sleep(60) # Wait for 60 seconds before checking again
# Step 3: Download the signed document
response = requests.get(f'{BASE_URL}/documents/{document_id}/download', headers=headers)
with open('signed_contract.pdf', 'wb') as file:
file.write(response.content)
print("Signed document downloaded successfully!")
Rate Limiting
The SignaNote API is rate limited to ensure fair usage. The current limits are:
- 100 requests per minute
- 5000 requests per day
If you exceed these limits, you'll receive a 429 Too Many Requests response.
Support
If you need help with the API or have any questions, please contact our developer support team at [email protected].