Products Catalog - export
Unlock detailed insights into your product catalog with the products catalog export.
Overview
Required plan
This feature or setting is available to all customers on any Recurly subscription plan.
Definition
The "Products Catalog" export provides comprehensive details of all product offerings, add-ons and items, whether active or inactive.
Filters
Versions Filter
- The Versions filter allows you to select the version that is most appropriate for your needs. This is based on the version changelog at the bottom of this page.
Product Type Filter
The Product type filter allows you to select existing plan, add on, setup fee, or item
- Plan: Recurring billing products that define the billing frequency and the product's base price, allowing businesses to create a revenue model that provides consistent income.
- Add-on: Additional features, services, or products that customers can purchase alongside their subscription plan.
- Setup fee: One time initial fee.
- Item: Collection of the sellable units of a business. This can include standalone products, services, or even add-ons
Export On Filters
- Created: Product created within the chosen timeframe.
- Modified: Product altered in the specified period.
Time range filters
- The Time range filter (dropdown) allows you to view data within a specific period such as last month, year to date or a custom date range. The Start Date and End Date will automatically update based on the value selected in the Time range filter. You can also choose "Between..." in the dropdown, which will allow you to enter a customized date range.
Exports table
To help you identify and organize information effectively, the export provides a structured table that contains the following columns:
Note: The unique identifier for each record is the combination of product_id, plan_id, and add_on_id. If an item type is configured as an add-on, it can be associated with multiple plans; in such cases, the same product_id is reused across those plans.
| Column Name | Example | Description | Data type (max size) |
|---|---|---|---|
| product_id: | e28zov4fw0v2 | The api_id of the product (this matches item_api_id) | string |
| plan_id | p47mx1taq9b5 | The api_id of the plan | string |
| add_on_id | k91trm8xe2c7 | The api_id of the add_on | string |
| item_code | item123 | The Item Code maps to the user-specified unique ID of the item that was sold on this adjustment. | string |
| product_type | plan, add_on, setup_fee, item | The type of product. | string |
| product_code | pink_sweater | The unique Recurly identifier of the saved product used to create the product. | string |
| external_sku | PS1234 | The optional external SKU of the saved item used to create this add-on. | string |
| product_name | Pink Sweater | The name of the saved product. This is also the name displayed on the invoice. | string |
| product_description | Sweater, color pink | The description of the product. | string |
| plan_code | Gold | If the product is associated with a plan or is a plan this is the code of the plan. | string |
| plan_name | Gold Plan | If the product is associated with a plan or is a plan this is the name of the plan. | string |
| plan_interval_unit | months, weeks, days, years | The interval type at which that plan is billed. | string |
| plan_interval_length | 30 | The length of the interval type at which the plan is billed at. | int64 |
| plan_total_billing_cycles | 12 | The total number of bill cycles that the plan will bill for 1 term. | int64 |
| plan_trial_interval_unit | months, weeks, days, years | The interval type that indicates the duration of the trial. | string |
| plan_trial_interval_length | 12 | The length of the interval type that sets the duration of the trial. | int64 |
| trial_requires_billing_info | false | Indicates if the trial requires billing info. | boolean |
| recurring | true/false | Indicates if this charge will be recurring. | boolean |
| optional | true/false | Indicates if this is required as part of a plan. | boolean |
| tax_exempt | true/false | Indicates if the product is tax exempt. | boolean |
| tax_code | P0000000, physical | Tax code is a field associated with the product that we send to Avalara for tax calculations. If you are using Recurly's EU VAT feature, you can use values of 'unknown', 'physical', or 'digital'. If you have your own Avalara AvaTax account configured, you can use Avalara tax codes to assign custom tax rules. | string |
| general_ledger_liability_code | default_liability | Revenue Recognition general ledger liability code | string |
| general_ledger_revenue_code | default_revenue | Revenue Recognition general ledger revenue code | string |
| performance_obligation_name | Over Time (Daily) | Revenue Recognition performance obligation assigned to the product. | string |
| accounting_code | jr_accounting_code | Optional accounting_code assigned to the product. | string |
| default_quantity | 1 | Default quantity assigned to the product (default is 1) | int64 |
| pricing_model | fixed | This is the method the product is billed. Values include fixed, usage, tiered, ramp, volume, stairstep, percentage | string |
| currencies | [{"currency":"EUR","price_details":[{"unit_amount_in_cents":1000}]},{"currency":"USD","price_details":[{"unit_amount_in_cents":1000}]}] | Json object of the currencies and associated prices | string |
| custom_fields | {"item": "so_custom_field"} | Json object of any custom fields that are assigned to the product | string |
| state | active, inactive | If the product is available in Recurly the state will be “active”, if the product has been deleted and is no longer available in Recurly then the state will be “inactive”. It is possible for subscribers to have “inactive” products on their subscription | string |
| created_at | 2025-11-12 08:23:34 UTC | Timestamp when the product was created | timestamp |
| modified_at | 2025-11-12 08:23:34 UTC | Timestamp when the product was last modified | timestamp |
| deleted_at | 2025-11-12 08:23:34 UTC | Timestamp when the product was deleted | timestamp |
Version changelog
Updated about 2 hours ago
