curl --request GET \
--url https://api.example.com/api/v1/contracts/{
"contracts": [
{}
],
"limit": 123,
"offset": 123,
"total": 123
}List contracts with optional filtering and pagination
curl --request GET \
--url https://api.example.com/api/v1/contracts/{
"contracts": [
{}
],
"limit": 123,
"offset": 123,
"total": 123
}pending: Awaiting signaturesconfirmed: All parties have signedactive: Contract is in effectcompleted: Contract has been fulfilledcancelled: Contract was cancelledcontract_id: Unique contract identifierstatus: Current contract statuscreated_at: Creation timestampexpires_at: Expiration timestamp (if applicable)total_amount: Contract amountcurrency: Currency codeparties: List of contract partiescontract_hash: Cryptographic hash# List all contracts with default pagination
curl -X GET https://api.voicepact.com/api/v1/contracts/ \
-H "Content-Type: application/json"
# Filter by status
curl -X GET "https://api.voicepact.com/api/v1/contracts/?status=confirmed&limit=20" \
-H "Content-Type: application/json"
# Filter by phone number
curl -X GET "https://api.voicepact.com/api/v1/contracts/?phone_number=%2B254712345678" \
-H "Content-Type: application/json"
# Pagination example
curl -X GET "https://api.voicepact.com/api/v1/contracts/?limit=10&offset=20" \
-H "Content-Type: application/json"
{
"contracts": [
{
"contract_id": "AGRI-2026-001235",
"status": "confirmed",
"created_at": "2026-03-06T14:20:00Z",
"expires_at": "2026-04-06T14:20:00Z",
"total_amount": 35000,
"currency": "KES",
"parties": [
{
"phone_number": "+254712345678",
"role": "buyer",
"name": "John Kamau"
},
{
"phone_number": "+254798765432",
"role": "seller",
"name": "Peter Mwangi"
}
],
"contract_hash": "b8e9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9"
},
{
"contract_id": "AGRI-2026-001234",
"status": "pending",
"created_at": "2026-03-06T10:30:00Z",
"expires_at": null,
"total_amount": 25000,
"currency": "KES",
"parties": [
{
"phone_number": "+254712345678",
"role": "buyer",
"name": "John Kamau"
},
{
"phone_number": "+254787654321",
"role": "seller",
"name": "Mary Wanjiru"
}
],
"contract_hash": "a7f8d9e2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0"
}
],
"limit": 50,
"offset": 0,
"total": 2
}
{
"detail": "Failed to list contracts"
}
total field represents the number of contracts returned in the current response, not the total count in the database