---
title: "List Contracts"
method: GET
path: "/rr/api/v1/contracts"
tags: ["Revenue Recognition"]
---

# List Contracts

`GET /rr/api/v1/contracts`

Retrieve a list of contracts with optional filtering and sorting.

        Supports including soft-deleted records for audit and recovery purposes.
        When include_deleted=true, returns ONLY deleted records instead of active records.
        Deleted records contain minimal data: 'id', 'is_deleted=true', 'deleted_at' timestamp,
        and 'last_modified_at'. When 'false' or omitted, returns ONLY active records.
        This provides clean separation between active and deleted data.

        When download=true, triggers an async workflow that generates a ZIP file with
        contracts_summary.csv and contracts_detail.csv, uploads to S3, and sends an email
        with the download link.

## Query parameters

- `include_deleted` boolean
- `last_modified_at__gte` string
- `last_modified_at__lte` string
- `limit` integer
- `offset` integer

## Response `200`

- PaginatedContractList
  - `count` integer, required
  - `next` string, uri, nullable
  - `previous` string, uri, nullable
  - `results` Contract[], required
    - `id` integer, required
    - `entity_name` string, required
    - `client_name` string, required
    - `client_terms` string, required
    - `department_name` string, required
    - `parent_department_name` string, required
    - `parent_department` integer, required
    - `tags` string
    - `total_revenue` number, double, required
    - `total_mrr` number, double, required
    - `total_deferred_revenue` number, double, required
    - `currency` string
    - `entity_currency` string
    - `attachments` File[], required
      - `id` integer, required
      - `customer` integer, required
      - `created_at` string, date-time, required
      - `created_by` integer, nullable, required
      - `created_by_name` string, required
      - `created_by_email` string, required
      - `last_modified_at` string, date-time, required
      - `name` string, required
      - `url` string, required
      - `s3_content_type` string, nullable
      - `s3_content_length` integer, nullable
      - `s3_path` string, required
      - `object_id` integer, nullable
      - `app` string, required
      - `model` string, required
      - `is_deleted` boolean, required
      - `deleted_at` string, date-time, nullable, required
    - `prepaid_commits` NestedContractPrepaidCommit[]
      - `entity` integer, nullable
      - `product` integer, nullable
      - `name` string, required
      - `description` string
      - `currency` string, nullable
      - `exchange_rate` number, double, nullable
      - `exchange_rate_book` number, double, nullable
      - `total_value` number, double, required
      - `discount_percentage` number, double
      - `rate` number, double, nullable
      - `start_date` string, date, required
      - `expiration_date` string, date, nullable
      - `priority` integer
      - `subledger` integer, nullable
      - `overage_invoice_cadence` 'monthly' | 'quarterly' | 'biannual' | 'annual' | 'one_time' | 'custom' — * `monthly` - Monthly * `quarterly` - Quarterly * `biannual` - Bi Annualy * `annual` - Annual * `one_time` - One Time * `custom` - Custom
      - `auto_send_overage_invoices` boolean
      - `overage_invoice_start_month` string, date, nullable
      - `department` integer, nullable
      - `tags` integer[]
    - `contract_end_date` string, date, nullable — Fixed end date for standard contracts. Leave null for evergreen contracts (is_evergreen=true).
    - `is_evergreen` boolean — Set true for evergreen contracts (no fixed end date). Evergreen contracts cannot also be auto-renew. Auto-renew is a legacy method to extend contracts.
    - `auto_send_invoices` boolean — When true, generated invoices are automatically sent on their invoice date.
    - `skip_evergreen_invoice_generation` boolean — For Evergreen contracts only. Set at contract creation; existing contracts cannot change this setting. False means current behavior. True skips only Campfire's auto-generated evergreen invoices; revenue transactions still generate; existing invoices are not cleaned up.
    - `auto_apply_customer_stripe_config_to_invoices` boolean — Evergreen contracts only. When true, evergreen-generated invoices inherit stripe_connection and use_stripe_auto_bill from the contract customer.
    - `last_modified_at` string, date-time, required
    - `is_deleted` string, required
    - `deleted_at` string, required
    - `usage_tiers` string
    - `has_invoices` boolean, required
    - `has_journal_entries` boolean, required
    - `has_credit_memos` boolean, required
    - `effective_end_date` string, date, required — Rolling horizon end date for active evergreen contracts. It will be auto-generated by Campfire backend. Null for standard contracts.
    - `working_end_date` string, date, required — Canonical end date used by the system. Equals contract_end_date for standard or terminated contracts, and effective_end_date for active evergreen contracts.
    - `evergreen_locked_date` string, date, nullable, required — Inclusive lock date for evergreen contracts based on paid invoices and close books date. Dates on or before this value are immutable. Null for non-evergreen contracts, or when no financial locking events exist.
    - `search_vector` string, nullable, required
    - `search_text` string, nullable, required
    - `billing_frequency` 'monthly' | 'quarterly' | 'biannual' | 'annual' | 'one_time' | 'custom' — * `monthly` - Monthly * `quarterly` - Quarterly * `biannual` - Bi Annualy * `annual` - Annual * `one_time` - One Time * `custom` - Custom
    - `deal_name` string, nullable
    - `deal_id` string, nullable
    - `consultant` string, nullable
    - `closed_date` string, date, nullable
    - `total_contract_value` number, double, nullable
    - `contract_start_date` string, date, nullable
    - `exchange_rate` number, double, nullable
    - `exchange_rate_book` number, double, nullable
    - `crm_link` string, nullable
    - `contract_link` string, nullable
    - `status` 'ACTIVE' | 'PENDING' | 'COMPLETED' | 'DELETED' — * `ACTIVE` - Active * `PENDING` - Pending * `COMPLETED` - Completed * `DELETED` - Deleted
    - `source` 'SALESFORCE' | 'HUBSPOT' | 'STRIPE' | 'MANUAL' — * `SALESFORCE` - Salesforce * `HUBSPOT` - Hubspot * `STRIPE` - Stripe * `MANUAL` - Manual
    - `source_deal_data` unknown
    - `created_at` string, date-time, required
    - `auto_renew` boolean
    - `auto_renew_duration` integer, nullable
    - `auto_renew_invoice` boolean
    - `tag_ids` integer[]
    - `tag_group_ids` integer[]
    - `minimum_monthly_commitment_amount` number, double, nullable — Minimum monthly commitment amount (allowance threshold)
    - `minimum_monthly_commitment_quantity` number, double, nullable — Minimum monthly commitment quantity (allowance threshold in units)
    - `purchase_order_number` string, nullable
    - `customer` integer, required
    - `entity` integer, nullable
    - `client` integer, nullable
    - `department` integer, nullable
    - `journal_entries` integer[]

---

[API](https://skmtc.net/campfire/apis/campfire-developer-apis.md) · [All operations](https://skmtc.net/campfire/apis/campfire-developer-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/campfire/campfire-developer-apis/versions/6945ebc3180e/schema)
