List Sessions
Query signing sessions for your organisation with filtering, sorting, and pagination. Useful for dashboards, reporting, and polling for status changes.
Endpoint
GET https://api.airsign.com.au/api/v1/Sessions
Headers
| Name | Value | Required | Description |
|---|
| Authorization | Bearer {access_token} | Yes | Bearer token obtained from authentication |
Query Parameters
| Parameter | Type | Required | Description |
|---|
| status | string | No | Filter by status. Comma-separated for multiple: pending,completed. Values: draft, pending, inProgress, completed, cancelled, expired |
| name | string | No | Search sessions by name (substring match) |
| recipientEmail | string | No | Filter sessions that include this recipient email |
| createdAfter | string | No | ISO 8601 datetime. Only return sessions created after this date |
| createdBefore | string | No | ISO 8601 datetime. Only return sessions created before this date |
| updatedAfter | string | No | ISO 8601 datetime. Only return sessions updated after this date. Ideal for polling |
| updatedBefore | string | No | ISO 8601 datetime. Only return sessions updated before this date |
| sortBy | string | No | Sort field. Values: createdAt, updatedAt (default), completedDate, name |
| sortOrder | string | No | Sort direction. Values: asc, desc (default) |
| limit | integer | No | Number of results per page. Default: 50, max: 100 |
| offset | integer | No | Number of results to skip for pagination. Default: 0 |
Example Request
curl --location 'https://api.airsign.com.au/api/v1/Sessions?status=completed&updatedAfter=2025-01-01T00:00:00Z&limit=10' \
--header 'Authorization: Bearer {access_token}'
Response
Status: 200 OK
{
"sessions": [
{
"sessionId": "{uuid}",
"name": "Employment Contract - John Doe",
"status": "completed",
"selfSignOnly": false,
"createdAt": "2025-06-15T10:30:00.000Z",
"updatedAt": "2025-06-16T14:22:00.000Z",
"completedDate": "2025-06-16T14:22:00.000Z",
"expiryDate": "2025-07-15T10:30:00.000Z",
"recipients": [
{
"recipientId": "{uuid}",
"name": "John Doe",
"email": "[email protected]",
"status": "completed",
"recipientType": "toCompleteEmail",
"signingOrder": 1
}
]
}
],
"pagination": {
"total": 42,
"limit": 10,
"offset": 0,
"hasMore": true
}
}
Response Fields
| Field | Type | Description |
|---|
| sessions | array | Array of session objects |
| sessions[].sessionId | string | Unique session identifier |
| sessions[].name | string | Session name |
| sessions[].status | string | Current status of the session |
| sessions[].recipients | array | Recipients with their current signing status |
| pagination.total | integer | Total number of matching sessions |
| pagination.hasMore | boolean | Whether there are more results beyond this page |
Rate Limiting
This endpoint is rate limited to 60 requests per hour per organisation. Rate limit headers are included in every response:
| Header | Description |
|---|
| X-RateLimit-Limit | Maximum requests allowed per window |
| X-RateLimit-Remaining | Requests remaining in the current window |
| X-RateLimit-Reset | Unix timestamp when the window resets |
| Retry-After | Seconds until you can retry (only on 429 responses) |