Cadence
API Reference

Plans

List active pricing plans for your tenant.

GET /plans/list

Retrieve a paginated list of active pricing plans for your tenant.

Base URL

https://cadence-api.pleasurebyplease.com

Request

GET https://cadence-api.pleasurebyplease.com/plans/list

Headers

  • X-Api-Key: {your-api-key}
  • X-Api-Secret: {your-api-secret}

Query Parameters

NameTypeRequiredDescriptionExample
pagenumberNoPage number (default: 1)1
pageSizenumberNoItems per page, max 100 (default: 10)10
productReferencestringNoFilter by product reference code

Response

FieldTypeDescription
status"success"Operation result
dataPlan[]Array of plan objects
data[].idstringInternal plan UUID
data[].segnoIdstringInternal Cadence plan identifier
data[].referenceCodestringUnique plan reference code
data[].lookup_keystring | nullStable lookup key for plan retrieval
data[].namestringPlan display name
data[].pricestringPrice amount
data[].currencyCodestringCurrency code (TRY, USD, EUR)
data[].paymentIntervalstringBilling interval (MONTHLY, WEEKLY, etc.)
data[].paymentIntervalCountnumberInterval multiplier
data[].trialPeriodDaysnumberTrial period in days
data[].unitstring | nullUnit count for bundled plans
data[].productReferencestring | nullProduct reference code (iyzico)
data[].planTypestringPlan type derived from product: PHYSICAL (with shipping) or DIGITAL
data[].shippingPricestring | nullShipping cost for physical plans (included in total price)
data[].gracePeriodDaysnumber | nullGrace period days after payment failure
totalnumberTotal number of plans
pagenumberCurrent page
pageSizenumberItems per page
totalPagesnumberTotal number of pages

Example Request

cURL

curl -X GET \
  "https://cadence-api.pleasurebyplease.com/plans/list?page=1&pageSize=10" \
  -H "X-Api-Key: {your-api-key}" \
  -H "X-Api-Secret: {your-api-secret}"

TypeScript

const response = await fetch(
  'https://cadence-api.pleasurebyplease.com/plans/list?page=1&pageSize=10',
  {
    headers: {
      'X-Api-Key': '{your-api-key}',
      'X-Api-Secret': '{your-api-secret}',
    },
  }
);

const data: PlansListResponse = await response.json();
console.log(data.data); // Plan[]

Node.js

const response = await fetch(
  'https://cadence-api.pleasurebyplease.com/plans/list?page=1&pageSize=10',
  {
    headers: {
      'X-Api-Key': '{your-api-key}',
      'X-Api-Secret': '{your-api-secret}',
    },
  }
);

const data = await response.json();
console.log(data);

PHP

<?php
$ch = curl_init();

curl_setopt_array($ch, [
    CURLOPT_URL => 'https://cadence-api.pleasurebyplease.com/plans/list?page=1&pageSize=10',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'X-Api-Key: {your-api-key}',
        'X-Api-Secret: {your-api-secret}'
    ]
]);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
print_r($data['data']);

Go

package main

import (
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    req, _ := http.NewRequest("GET", 
        "https://cadence-api.pleasurebyplease.com/plans/list?page=1&pageSize=10", nil)
    req.Header.Set("X-Api-Key", "{your-api-key}")
    req.Header.Set("X-Api-Secret", "{your-api-secret}")

    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}

Ruby

require 'net/http'
require 'json'

uri = URI('https://cadence-api.pleasurebyplease.com/plans/list?page=1&pageSize=10')
request = Net::HTTP::Get.new(uri)
request['X-Api-Key'] = '{your-api-key}'
request['X-Api-Secret'] = '{your-api-secret}'

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end

data = JSON.parse(response.body)
puts data['data']

Python

import requests

response = requests.get(
    'https://cadence-api.pleasurebyplease.com/plans/list',
    params={'page': 1, 'pageSize': 10},
    headers={
        'X-Api-Key': '{your-api-key}',
        'X-Api-Secret': '{your-api-secret}'
    }
)

data = response.json()
print(data['data'])

Example Response

{
  "status": "success",
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "segnoId": "plan_id_8r2n3k1p",
      "referenceCode": "plan_abc123",
      "lookup_key": "pro-plan",
      "name": "Pro Plan",
      "price": "99.00",
      "currencyCode": "TRY",
      "paymentInterval": "MONTHLY",
      "paymentIntervalCount": 1,
      "trialPeriodDays": 14,
      "unit": "1",
      "productReference": "prod_xyz",
      "planType": "DIGITAL",
      "shippingPrice": null,
      "gracePeriodDays": 7
    },
    {
      "id": "660e8400-e29b-41d4-a716-446655440001",
      "segnoId": "plan_id_7b4x6d9m",
      "referenceCode": "plan_xyz789",
      "lookup_key": "physical-box",
      "name": "Physical Box",
      "price": "149.00",
      "currencyCode": "TRY",
      "paymentInterval": "MONTHLY",
      "paymentIntervalCount": 1,
      "trialPeriodDays": 0,
      "unit": "1",
      "productReference": "prod_abc",
      "planType": "PHYSICAL",
      "shippingPrice": "20.00",
      "gracePeriodDays": null
    }
  ],
  "total": 2,
  "page": 1,
  "pageSize": 10,
  "totalPages": 1
}

On this page