Base path: /api/subscriptions Authentication: session cookie, except the bank callback.

A subscription loads credit automatically every period — more practical than buying packs if you use JetScrape regularly.

GET /api/subscriptions/plans

Lists the plans. No session required.

curl https://api.jetscrape.com/api/subscriptions/plans
{
  "success": true,
  "plans": [
    {
      "id": "plan_pro",
      "name": "Pro",
      "price": 99.99,
      "currency": "TRY",
      "credits_per_month": 10000,
      "interval": "monthly"
    }
  ]
}

POST /api/subscriptions/subscribe

curl -X POST https://api.jetscrape.com/api/subscriptions/subscribe \
  -H "Content-Type: application/json" \
  -b cookies.txt \
  -d '{
    "plan_id": "plan_pro",
    "card_holder": "JOHN DOE",
    "card_number": "4111111111111111",
    "card_exp_month": "12",
    "card_exp_year": "2026",
    "cvv": "123"
  }'

Activated straight away:

{ "success": true, "subscription_activated": true, "order_id": "ord_sub_abc123" }

3D Secure required:

{
  "success": true,
  "subscription_activated": false,
  "order_id": "ord_sub_abc123",
  "html_3d": "<html>...3D Secure form...</html>"
}

When subscription_activated is false, render html_3d; the subscription activates once verification completes.

GET /api/subscriptions/current

curl https://api.jetscrape.com/api/subscriptions/current -b cookies.txt
{
  "success": true,
  "subscription": {
    "id": "sub_abc123",
    "plan_id": "plan_pro",
    "status": "active",
    "current_period_end": "2025-07-08T00:00:00.000Z"
  },
  "plan": { "id": "plan_pro", "name": "Pro", "credits_per_month": 10000 },
  "stored_card": { "last4": "1111", "brand": "Visa" }
}

With no subscription:

{ "success": true, "subscription": null }

stored_card is absent when no card is on file. Handle all three shapes in your UI: no subscription, a subscription with a stored card, and a subscription without one.

POST /api/subscriptions/change-plan

curl -X POST https://api.jetscrape.com/api/subscriptions/change-plan \
  -H "Content-Type: application/json" \
  -b cookies.txt \
  -d '{ "new_plan_id": "plan_enterprise" }'

POST /api/subscriptions/cancel

curl -X POST https://api.jetscrape.com/api/subscriptions/cancel -b cookies.txt
{ "success": true, "cancelledAt": "2025-06-08T11:00:00.000Z" }

POST /api/subscriptions/reactivate

curl -X POST https://api.jetscrape.com/api/subscriptions/reactivate -b cookies.txt

GET /api/subscriptions/charges

curl "https://api.jetscrape.com/api/subscriptions/charges?page=1&limit=10" -b cookies.txt

Pack or subscription?

  • Irregular, unpredictable usage — credit packs.
  • A similar volume every month — a subscription.
  • One large one-off job — a credit pack.
  • Continuous production workloads — a subscription plus balance monitoring.

Last updated: September 22, 2026