Skip to main content

Check-ins API

Base URL: https://api.torvussecurity.com/v1

Manage vault check-ins for inactivity policies.


Complete Check-in

POST /vaults/{vault_id}/checkin

Complete a check-in to reset the inactivity timer.

Example Request

curl -X POST https://api.torvussecurity.com/v1/vaults/vault_abc123/checkin \
-H "Authorization: Bearer your_api_key" \
-H "Content-Type: application/json"

Success Response (200 OK)

{
"vault_id": "vault_abc123",
"checkin_completed_at": "2025-10-08T17:00:00Z",
"next_checkin_due": "2025-11-08T17:00:00Z",
"policy": {
"type": "inactivity",
"frequency": "monthly",
"grace_period_days": 14
},
"status": "on_time"
}

Error Responses

Status CodeErrorDescription
400Bad RequestVault doesn't have inactivity policy
401UnauthorizedMissing or invalid API key
403ForbiddenNo permission to check in
422Unprocessable EntityVault already released

Get Check-in Status

GET /vaults/{vault_id}/checkin-status

Get current check-in status and history.

Example Request

curl -X GET https://api.torvussecurity.com/v1/vaults/vault_abc123/checkin-status \
-H "Authorization: Bearer your_api_key"

Success Response (200 OK)

{
"vault_id": "vault_abc123",
"policy": {
"type": "inactivity",
"frequency": "monthly",
"grace_period_days": 14
},
"current_status": {
"last_checkin": "2025-10-08T17:00:00Z",
"next_checkin_due": "2025-11-08T17:00:00Z",
"days_until_due": 30,
"grace_period_active": false,
"overdue": false
},
"statistics": {
"total_checkins": 12,
"missed_checkins": 0,
"average_checkin_interval_days": 30,
"on_time_percentage": 100
}
}

Get Check-in History

GET /vaults/{vault_id}/checkin-history

Retrieve check-in history.

Query Parameters

ParameterTypeRequiredDescription
limitintegerNoNumber of records (default: 50, max: 200)
offsetintegerNoPagination offset

Example Request

curl -X GET "https://api.torvussecurity.com/v1/vaults/vault_abc123/checkin-history?limit=10" \
-H "Authorization: Bearer your_api_key"

Success Response (200 OK)

{
"vault_id": "vault_abc123",
"checkins": [
{
"id": "checkin_abc123",
"completed_at": "2025-10-08T17:00:00Z",
"due_at": "2025-11-08T17:00:00Z",
"method": "api",
"status": "on_time",
"ip_address": "192.168.1.1"
},
{
"id": "checkin_xyz789",
"completed_at": "2025-09-08T16:30:00Z",
"due_at": "2025-10-08T16:30:00Z",
"method": "web",
"status": "on_time",
"ip_address": "192.168.1.1"
}
],
"pagination": {
"limit": 10,
"offset": 0,
"total": 12
}
}

Bulk Check-in

POST /checkins/bulk

Complete check-ins for multiple vaults at once.

Request Body

{
"vault_ids": ["vault_abc123", "vault_xyz789", "vault_def456"]
}

Example Request

curl -X POST https://api.torvussecurity.com/v1/checkins/bulk \
-H "Authorization: Bearer your_api_key" \
-H "Content-Type: application/json" \
-d '{
"vault_ids": ["vault_abc123", "vault_xyz789"]
}'

Success Response (200 OK)

{
"completed": 2,
"failed": 0,
"results": [
{
"vault_id": "vault_abc123",
"status": "success",
"completed_at": "2025-10-08T17:05:00Z",
"next_due": "2025-11-08T17:05:00Z"
},
{
"vault_id": "vault_xyz789",
"status": "success",
"completed_at": "2025-10-08T17:05:00Z",
"next_due": "2025-11-08T17:05:00Z"
}
]
}

Get Upcoming Check-ins

GET /checkins/upcoming

Get all vaults with upcoming check-ins.

Query Parameters

ParameterTypeRequiredDescription
daysintegerNoLook ahead days (default: 7, max: 30)

Example Request

curl -X GET "https://api.torvussecurity.com/v1/checkins/upcoming?days=7" \
-H "Authorization: Bearer your_api_key"

Success Response (200 OK)

{
"upcoming_checkins": [
{
"vault_id": "vault_abc123",
"vault_name": "Digital Legacy",
"due_at": "2025-10-12T10:00:00Z",
"days_until_due": 4,
"policy": {
"type": "inactivity",
"frequency": "monthly"
}
},
{
"vault_id": "vault_xyz789",
"vault_name": "Business Continuity",
"due_at": "2025-10-15T14:00:00Z",
"days_until_due": 7,
"policy": {
"type": "inactivity",
"frequency": "weekly"
}
}
],
"total": 2
}

Rate Limits

EndpointRate Limit
POST /vaults/{id}/checkin100/minute
GET /vaults/{id}/checkin-status200/minute
GET /vaults/{id}/checkin-history100/minute
POST /checkins/bulk10/minute
GET /checkins/upcoming100/minute

Last Updated: October 8, 2025