API

Read and create contracts, and list reminders, with an API key. Keys are created in Settings and work on Professional and Enterprise plans.

Authentication

Send the key on every request. The full key is shown once when you create or rotate it.

Authorization: Bearer ct_your_key
Content-Type: application/json

Base URL: https://docrenewal.com

List contracts

GET /api/v1/contracts

curl https://docrenewal.com/api/v1/contracts \
  -H "Authorization: Bearer ct_your_key"

Returns { contracts: [...] }.

Get one contract

GET /api/v1/contracts/:id

Returns the contract, or 404 when it is not on your account.

Create a contract

POST /api/v1/contracts

Required fields are title, vendor, cost, category, startDate, and endDate. Dates use YYYY-MM-DD. billingFrequency can be monthly, quarterly, yearly, or one-time. cancellationDeadline is optional and stores the last date to cancel before renewal. autoRenew, notes, and documentUrl are optional. Status is set from the end date: active, expiring within 30 days, or expired.

curl https://docrenewal.com/api/v1/contracts \
  -H "Authorization: Bearer ct_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Office lease",
    "vendor": "Acme Realty",
    "cost": "1200.00",
    "category": "Facilities",
    "startDate": "2026-01-01",
    "endDate": "2026-12-31",
    "cancellationDeadline": "2026-12-01",
    "billingFrequency": "monthly",
    "autoRenew": false
  }'

A successful create returns 201 and the contract. Reminders are created from your default template.

List reminders

GET /api/v1/reminders

curl https://docrenewal.com/api/v1/reminders \
  -H "Authorization: Bearer ct_your_key"

Returns { reminders: [...] }.

Errors

  • 401 means the key is missing, revoked, or wrong.
  • 403 means the plan does not include API access, or the contract limit is reached.
  • 400 means a required field is missing or invalid.
  • 404 means that contract was not found.