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.
Request
- Base URL: https://api.subscriby.net
- URL: https://api.subscriby.net/v1/projects/{project}/retention
- Auth: HTTP bearer
Path parameters
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.