Revenue Recovery

Read the settings

curl https://api.subscriby.net/v1/projects/7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13/retention \
  -H "Authorization: Bearer sbt_..."

The grace window with the ladder it implies in words, the digest switch, the cancellation question, the three offers with the coupons they carry, and the two nurture windows: checkout_stall_hours (how long a checkout may stay open with no settled charge before the hourly sweep counts it as stalled and the stalled-checkout sequences start; 1 to 24, 1 by default) and trial_notice_days (how many days before a trial without a card ends its trial-ending sequences start; 1 to 14, 3 by default; a shorter trial enrols at its start). The row is created with the defaults on the first read, so a project never answers 404 here.

Two fields that are easy to misread

offers_available is the owner's plan, not a setting. It is true on Growth and with the Revenue Recovery Addon. The three offer fields are stored whatever it says; the cancellation screen reads them only while it is true.

ladder is derived from grace_days. It is the sentence the dashboard and the bot show for the window, in the token holder's language; write grace_days and read ladder back.

get/v1/projects/{project}/retention

Request

  • Base URL: https://api.subscriby.net
  • URL: https://api.subscriby.net/v1/projects/{project}/retention
  • Auth: HTTP bearer

Path parameters

projectstring uuid required

The project, resolved by the route binder.

Response

The settings with the ladder in words and whether the offers are available.

Example response

{
  "data": {
    "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",
    "grace_days": 7,
    "ladder": "A failed renewal keeps access for 7 days: a notice at the failure, a reminder on day 3, a final warning on the last day, then access pauses until a charge settles.",
    "digest_enabled": true,
    "cancel_feedback_enabled": true,
    "checkout_stall_hours": 1,
    "trial_notice_days": 3,
    "offers_available": true,
    "offer_pause_enabled": true,
    "offer_discount_coupon": {
      "id": "3b7c9d1e-5f24-4a86-9c0b-2d4e6f8a1b3c",
      "code": "STAY20"
    },
    "updated_at": "2026-10-12T09:00:00+00:00"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.