MENU navbar-image

Introduction

This documentation aims to provide all the information you need to work with our API.

<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>

Authenticating requests

To authenticate requests, include an Authorization header in the form "Basic {credentials}". The value of {credentials} should be your username/id and your password, joined with a colon (:), and then base64-encoded.

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

Machine endpoints authenticate using HTTP Basic Auth. Send base64-encoded username:password.

Admin Audit Log

List audit log entries.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/audit-log" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/audit-log"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/audit-log

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Display a specified audit log entry.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/audit-log/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/audit-log/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/audit-log/{auditLogId}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

auditLogId   string     

Example: architecto

Admin Auth

GET /api/v1/auth/admin/google/redirect

requires authentication

Create OAuth transaction record and return Google authorization URL.

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/v1/auth/admin/google/redirect" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/auth/admin/google/redirect"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-store, private
content-type: application/json
x-request-id: 8b936163-e730-41df-8fb6-3e7b1255be95
access-control-allow-origin: *
 

{
    "authorization_url": "https://accounts.google.com/o/oauth2/auth?client_id=123908846344-o0v7e9tsmt8r72ce57rbui4qibc30rpt.apps.googleusercontent.com&redirect_uri=https%3A%2F%2Fslick.dev.prm-lfmd.com%2Fapi%2Fv1%2Fauth%2Fadmin%2Fgoogle%2Fcallback&scope=openid+profile+email&response_type=code&state=LZ43GPq0ZQcxtFayr1hywLSloNtG6UsijEHNmi7c&nonce=eHvwZAe9VexH4SZlsHW18j4AfFC4M4gfWejqwS2S&hd=lifemd.com"
}
 

Request      

GET api/v1/auth/admin/google/redirect

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/v1/auth/admin/google/callback

requires authentication

Validate state, consume transaction, exchange code for identity, validate claims, bind google_subject, issue one-time login code via cookie.

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/v1/auth/admin/google/callback" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/auth/admin/google/callback"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (400):

Show headers
cache-control: no-store, private
content-type: application/json
x-request-id: a12c1e3e-3031-459a-83a4-7b24ba856f60
access-control-allow-origin: *
 

{
    "error": "Missing state parameter"
}
 

Request      

GET api/v1/auth/admin/google/callback

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

POST /api/v1/auth/admin/google/exchange

requires authentication

Read login code from cookie, atomically consume it, re-check admin is_active, issue Sanctum token.

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/v1/auth/admin/google/exchange" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/auth/admin/google/exchange"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/auth/admin/google/exchange

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/v1/auth/admin/me

requires authentication

Return authenticated admin profile.

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/v1/auth/admin/me" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/auth/admin/me"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/v1/auth/admin/me

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

POST /api/v1/auth/admin/logout

requires authentication

Revoke the current Sanctum token.

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/v1/auth/admin/logout" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/auth/admin/logout"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/auth/admin/logout

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Admin Billing Models

Paginated list of billing models.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/billing-models" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/billing-models"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-request-id: 172eea89-23f3-4b3d-a932-3eab76c182b7
x-ratelimit-limit: 60
x-ratelimit-remaining: 51
access-control-allow-origin: *
 

{
    "success": true,
    "message": "Billing models retrieved successfully",
    "data": [
        {
            "billing_model_id": 47,
            "name": "1 Month",
            "bill_by_type_id": 5,
            "bill_by_type_label": "Bill By Relative Date",
            "interval_day": 1,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "dates": [],
            "created_at": "2025-10-01T05:41:07+00:00",
            "updated_at": "2025-11-25T23:46:41+00:00"
        },
        {
            "billing_model_id": 14,
            "name": "1 Month",
            "bill_by_type_id": 5,
            "bill_by_type_label": "Bill By Relative Date",
            "interval_day": 1,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "dates": [],
            "created_at": "2025-10-01T05:41:07+00:00",
            "updated_at": "2025-11-25T23:46:27+00:00"
        },
        {
            "billing_model_id": 4,
            "name": "1 Month Subscription (32 Day Cycle)",
            "bill_by_type_id": 1,
            "bill_by_type_label": "Bill By Cycle",
            "interval_day": 0,
            "interval_week": 0,
            "preserve_quantity": 1,
            "bill_by_days": 32,
            "expire_cycles": 0,
            "buffer_days": 0,
            "dates": [],
            "created_at": "2025-10-01T05:41:07+00:00",
            "updated_at": "2025-11-25T23:46:22+00:00"
        },
        {
            "billing_model_id": 25,
            "name": "12 Month Subscription",
            "bill_by_type_id": 1,
            "bill_by_type_label": "Bill By Cycle",
            "interval_day": 1,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 365,
            "expire_cycles": 0,
            "buffer_days": 0,
            "dates": [],
            "created_at": "2025-11-25T23:45:17+00:00",
            "updated_at": "2025-11-25T23:46:32+00:00"
        },
        {
            "billing_model_id": 54,
            "name": "12 Months",
            "bill_by_type_id": 0,
            "bill_by_type_label": "Straight Sale",
            "interval_day": 1,
            "interval_week": 1,
            "preserve_quantity": 0,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "dates": [],
            "created_at": "2025-10-01T05:41:07+00:00",
            "updated_at": "2025-10-01T05:41:07+00:00"
        },
        {
            "billing_model_id": 28,
            "name": "12 Months",
            "bill_by_type_id": 5,
            "bill_by_type_label": "Bill By Relative Date",
            "interval_day": 12,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "dates": [],
            "created_at": "2025-11-25T23:45:18+00:00",
            "updated_at": "2025-11-25T23:46:33+00:00"
        },
        {
            "billing_model_id": 24,
            "name": "12 Months",
            "bill_by_type_id": 5,
            "bill_by_type_label": "Bill By Relative Date",
            "interval_day": 12,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "dates": [],
            "created_at": "2025-10-01T05:41:07+00:00",
            "updated_at": "2025-11-25T23:46:31+00:00"
        },
        {
            "billing_model_id": 37,
            "name": "12 months - ED BPG",
            "bill_by_type_id": 5,
            "bill_by_type_label": "Bill By Relative Date",
            "interval_day": 12,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "dates": [],
            "created_at": "2025-10-01T05:41:07+00:00",
            "updated_at": "2025-11-25T23:46:37+00:00"
        },
        {
            "billing_model_id": 38,
            "name": "2 Month Subscription - Discounted",
            "bill_by_type_id": 5,
            "bill_by_type_label": "Bill By Relative Date",
            "interval_day": 2,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "dates": [],
            "created_at": "2025-10-01T05:41:07+00:00",
            "updated_at": "2025-11-25T23:46:37+00:00"
        },
        {
            "billing_model_id": 97,
            "name": "2 Month Subscritpion (55 Day Cycle)",
            "bill_by_type_id": 0,
            "bill_by_type_label": "Straight Sale",
            "interval_day": 1,
            "interval_week": 1,
            "preserve_quantity": 0,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "dates": [],
            "created_at": "2025-10-01T05:41:07+00:00",
            "updated_at": "2025-10-01T05:41:07+00:00"
        },
        {
            "billing_model_id": 6,
            "name": "2 Month Subscritpion (62 Day Cycle)",
            "bill_by_type_id": 1,
            "bill_by_type_label": "Bill By Cycle",
            "interval_day": 1,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 62,
            "expire_cycles": 0,
            "buffer_days": 0,
            "dates": [],
            "created_at": "2025-10-01T05:41:07+00:00",
            "updated_at": "2025-11-25T23:46:23+00:00"
        },
        {
            "billing_model_id": 15,
            "name": "2 Months",
            "bill_by_type_id": 5,
            "bill_by_type_label": "Bill By Relative Date",
            "interval_day": 2,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 15,
            "expire_cycles": 0,
            "buffer_days": 0,
            "dates": [],
            "created_at": "2025-10-01T05:41:07+00:00",
            "updated_at": "2025-11-25T23:46:27+00:00"
        },
        {
            "billing_model_id": 48,
            "name": "3 Month - Cialis Daily",
            "bill_by_type_id": 5,
            "bill_by_type_label": "Bill By Relative Date",
            "interval_day": 3,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "dates": [],
            "created_at": "2025-11-25T23:45:28+00:00",
            "updated_at": "2025-11-25T23:46:41+00:00"
        },
        {
            "billing_model_id": 13,
            "name": "3 Month Subscription (92 Day Cycle)",
            "bill_by_type_id": 1,
            "bill_by_type_label": "Bill By Cycle",
            "interval_day": 3,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 92,
            "expire_cycles": 0,
            "buffer_days": 0,
            "dates": [],
            "created_at": "2025-10-01T05:41:07+00:00",
            "updated_at": "2025-11-25T23:46:26+00:00"
        },
        {
            "billing_model_id": 32,
            "name": "3 Months",
            "bill_by_type_id": 5,
            "bill_by_type_label": "Bill By Relative Date",
            "interval_day": 3,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "dates": [],
            "created_at": "2025-10-01T05:41:07+00:00",
            "updated_at": "2025-11-25T23:46:35+00:00"
        }
    ],
    "meta": {
        "current_page": 1,
        "per_page": 15,
        "total": 43,
        "last_page": 3,
        "from": 1,
        "to": 15
    },
    "links": {
        "first": "http://localhost/api/admin/v1/billing-models?page=1",
        "last": "http://localhost/api/admin/v1/billing-models?page=3",
        "prev": null,
        "next": "http://localhost/api/admin/v1/billing-models?page=2"
    },
    "version": "v1"
}
 

Request      

GET api/admin/v1/billing-models

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Display a specific billing model.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/billing-models/2" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/billing-models/2"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-request-id: 51f9449e-7b7e-49f0-85dc-364ab6fd0b3b
x-ratelimit-limit: 60
x-ratelimit-remaining: 50
access-control-allow-origin: *
 

{
    "success": true,
    "message": "Billing model retrieved successfully",
    "data": {
        "billing_model_id": 2,
        "name": "One Time Purchase",
        "bill_by_type_id": 0,
        "bill_by_type_label": "Straight Sale",
        "interval_day": 0,
        "interval_week": 0,
        "preserve_quantity": 0,
        "bill_by_days": 0,
        "expire_cycles": 1,
        "buffer_days": 0,
        "dates": [],
        "created_at": "2025-10-01T05:41:07+00:00",
        "updated_at": "2025-11-25T23:46:22+00:00"
    },
    "version": "v1"
}
 

Request      

GET api/admin/v1/billing-models/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the billing model. Example: 2

Store a new billing model.

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/billing-models" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"1 Month Subscription\",
    \"bill_by_type_id\": 1,
    \"interval_day\": 0,
    \"interval_week\": 0,
    \"preserve_quantity\": 1,
    \"bill_by_days\": 32,
    \"expire_cycles\": 0,
    \"buffer_days\": 0,
    \"dates\": [
        {
            \"month\": 1,
            \"day\": 15
        }
    ]
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/billing-models"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "1 Month Subscription",
    "bill_by_type_id": 1,
    "interval_day": 0,
    "interval_week": 0,
    "preserve_quantity": 1,
    "bill_by_days": 32,
    "expire_cycles": 0,
    "buffer_days": 0,
    "dates": [
        {
            "month": 1,
            "day": 15
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/admin/v1/billing-models

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

name   string     

Billing model name. Must not be greater than 100 characters. Example: 1 Month Subscription

bill_by_type_id   integer     

Billing type. 0=One-time, 1=By days, 2=By weeks, 3=By months, 4=By dates, 5=By calendar month. Example: 1

Must be one of:
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
interval_day   integer  optional    

Day interval for billing. Must be at least 0. Must not be greater than 255. Example: 0

interval_week   integer  optional    

Week interval for billing. Must be at least 0. Must not be greater than 255. Example: 0

preserve_quantity   integer  optional    

Whether to preserve quantity on rebill. 0=No, 1=Yes. Example: 1

Must be one of:
  • 0
  • 1
bill_by_days   integer  optional    

Number of days in billing cycle. Must be at least 0. Example: 32

expire_cycles   integer  optional    

Number of cycles before expiry. 0=Never. Must be at least 0. Must not be greater than 255. Example: 0

buffer_days   integer  optional    

Buffer days before rebill. Must be at least 0. Must not be greater than 255. Example: 0

dates   object[]  optional    

Array of month/day pairs for date-based billing.

month   integer  optional    

Month (1-12). This field is required when dates is present. Must be between 1 and 12. Example: 1

day   integer  optional    

Day of month (1-31). This field is required when dates is present. Must be between 1 and 31. Example: 15

Update the specified billing model.

requires authentication

Example request:
curl --request PATCH \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/billing-models/2" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"1 Month Subscription\",
    \"bill_by_type_id\": 1,
    \"interval_day\": 0,
    \"interval_week\": 0,
    \"preserve_quantity\": 1,
    \"bill_by_days\": 32,
    \"expire_cycles\": 0,
    \"buffer_days\": 0,
    \"dates\": [
        {
            \"month\": 1,
            \"day\": 15
        }
    ]
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/billing-models/2"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "1 Month Subscription",
    "bill_by_type_id": 1,
    "interval_day": 0,
    "interval_week": 0,
    "preserve_quantity": 1,
    "bill_by_days": 32,
    "expire_cycles": 0,
    "buffer_days": 0,
    "dates": [
        {
            "month": 1,
            "day": 15
        }
    ]
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PATCH api/admin/v1/billing-models/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the billing model. Example: 2

Body Parameters

name   string  optional    

Billing model name. Must not be greater than 100 characters. Example: 1 Month Subscription

bill_by_type_id   integer  optional    

Billing type. 0=One-time, 1=By days, 2=By weeks, 3=By months, 4=By dates, 5=By calendar month. Example: 1

Must be one of:
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
interval_day   integer  optional    

Day interval for billing. Must be at least 0. Must not be greater than 255. Example: 0

interval_week   integer  optional    

Week interval for billing. Must be at least 0. Must not be greater than 255. Example: 0

preserve_quantity   integer  optional    

Whether to preserve quantity on rebill. 0=No, 1=Yes. Example: 1

Must be one of:
  • 0
  • 1
bill_by_days   integer  optional    

Number of days in billing cycle. Must be at least 0. Example: 32

expire_cycles   integer  optional    

Number of cycles before expiry. 0=Never. Must be at least 0. Must not be greater than 255. Example: 0

buffer_days   integer  optional    

Buffer days before rebill. Must be at least 0. Must not be greater than 255. Example: 0

dates   object[]  optional    

Array of month/day pairs for date-based billing.

month   integer  optional    

Month (1-12). This field is required when dates is present. Must be between 1 and 12. Example: 1

day   integer  optional    

Day of month (1-31). This field is required when dates is present. Must be between 1 and 31. Example: 15

Remove the specified billing model.

requires authentication

Example request:
curl --request DELETE \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/billing-models/2" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/billing-models/2"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/admin/v1/billing-models/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the billing model. Example: 2

Admin Campaigns

Paginated list of campaigns.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/campaigns" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/campaigns"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/campaigns

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Display a specific campaign.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/campaigns/564" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/campaigns/564"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/campaigns/{campaignId}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

campaignId   string     

Example: 564

Store a new campaign.

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/campaigns" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"description\": \"Et animi quos velit et fugiat.\",
    \"default_channel\": \"d\",
    \"channel_id\": 37,
    \"payment_type\": \"j\",
    \"enabled\": 0,
    \"max_grace_period\": 52,
    \"pre_auth_amount\": 8,
    \"is_prepaid_blocked\": 1,
    \"is_custom_price_allowed\": 1,
    \"is_avs_enabled\": 0,
    \"is_collections_enabled\": 0,
    \"payment_router_id\": 75,
    \"tax_provider_id\": 7,
    \"data_verification_provider_id\": 87,
    \"fulfillment_id\": 39,
    \"check_provider_id\": 50,
    \"membership_provider_id\": 62,
    \"call_confirm_provider_id\": 54,
    \"chargeback_provider_id\": 38,
    \"prospect_provider_id\": 50,
    \"email_provider_id\": 72,
    \"offers\": [
        {
            \"offer_id\": 16,
            \"client_ref\": \"n\",
            \"is_default\": 0,
            \"is_active\": 0,
            \"sort_order\": 84,
            \"override_name\": \"z\",
            \"override_price\": 77,
            \"override_trial_enabled\": 0,
            \"override_trial_days\": 8,
            \"override_trial_price\": 76,
            \"available_start_date\": \"2026-04-27T19:50:13\",
            \"available_end_date\": \"2026-04-27T19:50:13\",
            \"min_order_amount\": 60,
            \"max_order_amount\": 42,
            \"max_uses\": 37,
            \"max_uses_per_customer\": 9,
            \"billing_models\": [
                {
                    \"billing_model_id\": 16,
                    \"is_default\": 0,
                    \"is_active\": 1,
                    \"override_price\": 39,
                    \"override_rebill_days\": 84,
                    \"sort_order\": 12
                }
            ]
        }
    ],
    \"gateways\": [
        {
            \"gateway_id\": 16
        }
    ],
    \"countries\": [
        {
            \"country_id\": 16
        }
    ],
    \"shipping\": [
        {
            \"shipping_id\": 16,
            \"weight\": 39
        }
    ],
    \"coupons\": [
        {
            \"coupon_id\": 16,
            \"weight\": 39
        }
    ],
    \"postbacks\": [
        {
            \"postback_profile_id\": 16,
            \"is_active\": 1
        }
    ],
    \"return_profiles\": [
        {
            \"return_profile_id\": 16,
            \"is_default\": 0
        }
    ],
    \"alternative_payments\": [
        {
            \"alternative_payment_provider_id\": 16,
            \"is_active\": 0
        }
    ],
    \"fraud_providers\": [
        {
            \"fraud_provider_id\": 16,
            \"priority\": 39,
            \"is_active\": 1,
            \"override_threshold\": 84
        }
    ]
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/campaigns"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "description": "Et animi quos velit et fugiat.",
    "default_channel": "d",
    "channel_id": 37,
    "payment_type": "j",
    "enabled": 0,
    "max_grace_period": 52,
    "pre_auth_amount": 8,
    "is_prepaid_blocked": 1,
    "is_custom_price_allowed": 1,
    "is_avs_enabled": 0,
    "is_collections_enabled": 0,
    "payment_router_id": 75,
    "tax_provider_id": 7,
    "data_verification_provider_id": 87,
    "fulfillment_id": 39,
    "check_provider_id": 50,
    "membership_provider_id": 62,
    "call_confirm_provider_id": 54,
    "chargeback_provider_id": 38,
    "prospect_provider_id": 50,
    "email_provider_id": 72,
    "offers": [
        {
            "offer_id": 16,
            "client_ref": "n",
            "is_default": 0,
            "is_active": 0,
            "sort_order": 84,
            "override_name": "z",
            "override_price": 77,
            "override_trial_enabled": 0,
            "override_trial_days": 8,
            "override_trial_price": 76,
            "available_start_date": "2026-04-27T19:50:13",
            "available_end_date": "2026-04-27T19:50:13",
            "min_order_amount": 60,
            "max_order_amount": 42,
            "max_uses": 37,
            "max_uses_per_customer": 9,
            "billing_models": [
                {
                    "billing_model_id": 16,
                    "is_default": 0,
                    "is_active": 1,
                    "override_price": 39,
                    "override_rebill_days": 84,
                    "sort_order": 12
                }
            ]
        }
    ],
    "gateways": [
        {
            "gateway_id": 16
        }
    ],
    "countries": [
        {
            "country_id": 16
        }
    ],
    "shipping": [
        {
            "shipping_id": 16,
            "weight": 39
        }
    ],
    "coupons": [
        {
            "coupon_id": 16,
            "weight": 39
        }
    ],
    "postbacks": [
        {
            "postback_profile_id": 16,
            "is_active": 1
        }
    ],
    "return_profiles": [
        {
            "return_profile_id": 16,
            "is_default": 0
        }
    ],
    "alternative_payments": [
        {
            "alternative_payment_provider_id": 16,
            "is_active": 0
        }
    ],
    "fraud_providers": [
        {
            "fraud_provider_id": 16,
            "priority": 39,
            "is_active": 1,
            "override_threshold": 84
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/admin/v1/campaigns

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

name   string     

Must not be greater than 255 characters. Example: b

description   string  optional    

Must not be greater than 1000 characters. Example: Et animi quos velit et fugiat.

default_channel   string  optional    

Must not be greater than 100 characters. Example: d

channel_id   integer  optional    

Must be at least 0. Example: 37

payment_type   string  optional    

Must not be greater than 50 characters. Example: j

enabled   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
max_grace_period   integer  optional    

Must be at least 0. Example: 52

pre_auth_amount   number  optional    

Must be at least 0. Example: 8

is_prepaid_blocked   integer  optional    

Example: 1

Must be one of:
  • 0
  • 1
is_custom_price_allowed   integer  optional    

Example: 1

Must be one of:
  • 0
  • 1
is_avs_enabled   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
is_collections_enabled   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
payment_router_id   integer  optional    

Must be at least 0. Example: 75

tax_provider_id   integer  optional    

Must be at least 0. Example: 7

data_verification_provider_id   integer  optional    

Must be at least 0. Example: 87

fulfillment_id   integer  optional    

Must be at least 0. Example: 39

check_provider_id   integer  optional    

Must be at least 0. Example: 50

membership_provider_id   integer  optional    

Must be at least 0. Example: 62

call_confirm_provider_id   integer  optional    

Must be at least 0. Example: 54

chargeback_provider_id   integer  optional    

Must be at least 0. Example: 38

prospect_provider_id   integer  optional    

Must be at least 0. Example: 50

email_provider_id   integer  optional    

Must be at least 0. Example: 72

offers   object[]  optional    
offer_id   integer     

The offer_id of an existing record in the offer table. Example: 16

client_ref   string  optional    

Must not be greater than 100 characters. Example: n

is_default   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
is_active   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
sort_order   integer  optional    

Must be at least 0. Example: 84

override_name   string  optional    

Must not be greater than 255 characters. Example: z

override_price   number  optional    

Must be at least 0. Example: 77

override_trial_enabled   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
override_trial_days   integer  optional    

Must be at least 0. Example: 8

override_trial_price   number  optional    

Must be at least 0. Example: 76

available_start_date   string  optional    

Must be a valid date. Example: 2026-04-27T19:50:13

available_end_date   string  optional    

Must be a valid date. Example: 2026-04-27T19:50:13

min_order_amount   number  optional    

Must be at least 0. Example: 60

max_order_amount   number  optional    

Must be at least 0. Example: 42

max_uses   integer  optional    

Must be at least 0. Example: 37

max_uses_per_customer   integer  optional    

Must be at least 0. Example: 9

conditions   object  optional    
billing_models   object[]  optional    
billing_model_id   integer     

The billing_model_id of an existing record in the billing_model table. Example: 16

is_default   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
is_active   integer  optional    

Example: 1

Must be one of:
  • 0
  • 1
override_price   number  optional    

Must be at least 0. Example: 39

override_rebill_days   integer  optional    

Must be at least 0. Example: 84

sort_order   integer  optional    

Must be at least 0. Example: 12

gateways   object[]  optional    
gateway_id   integer     

The gateway_id of an existing record in the gateway table. Example: 16

countries   object[]  optional    
country_id   integer     

The id of an existing record in the country table. Example: 16

shipping   object[]  optional    
shipping_id   integer     

The shipping_id of an existing record in the shipping table. Example: 16

weight   integer  optional    

Must be at least 0. Example: 39

coupons   object[]  optional    
coupon_id   integer     

The coupon_id of an existing record in the coupon table. Example: 16

weight   integer  optional    

Must be at least 0. Example: 39

postbacks   object[]  optional    
postback_profile_id   integer     

The postback_profile_id of an existing record in the postback_profile table. Example: 16

is_active   integer  optional    

Example: 1

Must be one of:
  • 0
  • 1
return_profiles   object[]  optional    
return_profile_id   integer     

The return_profile_id of an existing record in the return_profile table. Example: 16

is_default   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
alternative_payments   object[]  optional    
alternative_payment_provider_id   integer     

The id of an existing record in the alternative_payment_provider table. Example: 16

is_active   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
fraud_providers   object[]  optional    
fraud_provider_id   integer     

The fraud_provider_id of an existing record in the fraud_provider table. Example: 16

priority   integer  optional    

Must be at least 0. Example: 39

is_active   integer  optional    

Example: 1

Must be one of:
  • 0
  • 1
override_threshold   number  optional    

Must be at least 0. Example: 84

Update the specified campaign.

requires authentication

Example request:
curl --request PUT \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/campaigns/564" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"updated_at\": \"2026-04-27T19:50:13\",
    \"name\": \"b\",
    \"description\": \"Et animi quos velit et fugiat.\",
    \"default_channel\": \"d\",
    \"channel_id\": 37,
    \"payment_type\": \"j\",
    \"enabled\": 0,
    \"max_grace_period\": 52,
    \"pre_auth_amount\": 8,
    \"is_prepaid_blocked\": 1,
    \"is_custom_price_allowed\": 1,
    \"is_avs_enabled\": 1,
    \"is_collections_enabled\": 0,
    \"payment_router_id\": 75,
    \"tax_provider_id\": 7,
    \"data_verification_provider_id\": 87,
    \"fulfillment_id\": 39,
    \"check_provider_id\": 50,
    \"membership_provider_id\": 62,
    \"call_confirm_provider_id\": 54,
    \"chargeback_provider_id\": 38,
    \"prospect_provider_id\": 50,
    \"email_provider_id\": 72,
    \"offers\": [
        {
            \"offer_id\": 16,
            \"client_ref\": \"n\",
            \"is_default\": 1,
            \"is_active\": 0,
            \"sort_order\": 84,
            \"override_name\": \"z\",
            \"override_price\": 77,
            \"override_trial_enabled\": 1,
            \"override_trial_days\": 8,
            \"override_trial_price\": 76,
            \"available_start_date\": \"2026-04-27T19:50:13\",
            \"available_end_date\": \"2026-04-27T19:50:13\",
            \"min_order_amount\": 60,
            \"max_order_amount\": 42,
            \"max_uses\": 37,
            \"max_uses_per_customer\": 9,
            \"billing_models\": [
                {
                    \"billing_model_id\": 16,
                    \"is_default\": 0,
                    \"is_active\": 0,
                    \"override_price\": 39,
                    \"override_rebill_days\": 84,
                    \"sort_order\": 12
                }
            ]
        }
    ],
    \"gateways\": [
        {
            \"gateway_id\": 16
        }
    ],
    \"countries\": [
        {
            \"country_id\": 16
        }
    ],
    \"shipping\": [
        {
            \"shipping_id\": 16,
            \"weight\": 39
        }
    ],
    \"coupons\": [
        {
            \"coupon_id\": 16,
            \"weight\": 39
        }
    ],
    \"postbacks\": [
        {
            \"postback_profile_id\": 16,
            \"is_active\": 1
        }
    ],
    \"return_profiles\": [
        {
            \"return_profile_id\": 16,
            \"is_default\": 0
        }
    ],
    \"alternative_payments\": [
        {
            \"alternative_payment_provider_id\": 16,
            \"is_active\": 0
        }
    ],
    \"fraud_providers\": [
        {
            \"fraud_provider_id\": 16,
            \"priority\": 39,
            \"is_active\": 1,
            \"override_threshold\": 84
        }
    ]
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/campaigns/564"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "updated_at": "2026-04-27T19:50:13",
    "name": "b",
    "description": "Et animi quos velit et fugiat.",
    "default_channel": "d",
    "channel_id": 37,
    "payment_type": "j",
    "enabled": 0,
    "max_grace_period": 52,
    "pre_auth_amount": 8,
    "is_prepaid_blocked": 1,
    "is_custom_price_allowed": 1,
    "is_avs_enabled": 1,
    "is_collections_enabled": 0,
    "payment_router_id": 75,
    "tax_provider_id": 7,
    "data_verification_provider_id": 87,
    "fulfillment_id": 39,
    "check_provider_id": 50,
    "membership_provider_id": 62,
    "call_confirm_provider_id": 54,
    "chargeback_provider_id": 38,
    "prospect_provider_id": 50,
    "email_provider_id": 72,
    "offers": [
        {
            "offer_id": 16,
            "client_ref": "n",
            "is_default": 1,
            "is_active": 0,
            "sort_order": 84,
            "override_name": "z",
            "override_price": 77,
            "override_trial_enabled": 1,
            "override_trial_days": 8,
            "override_trial_price": 76,
            "available_start_date": "2026-04-27T19:50:13",
            "available_end_date": "2026-04-27T19:50:13",
            "min_order_amount": 60,
            "max_order_amount": 42,
            "max_uses": 37,
            "max_uses_per_customer": 9,
            "billing_models": [
                {
                    "billing_model_id": 16,
                    "is_default": 0,
                    "is_active": 0,
                    "override_price": 39,
                    "override_rebill_days": 84,
                    "sort_order": 12
                }
            ]
        }
    ],
    "gateways": [
        {
            "gateway_id": 16
        }
    ],
    "countries": [
        {
            "country_id": 16
        }
    ],
    "shipping": [
        {
            "shipping_id": 16,
            "weight": 39
        }
    ],
    "coupons": [
        {
            "coupon_id": 16,
            "weight": 39
        }
    ],
    "postbacks": [
        {
            "postback_profile_id": 16,
            "is_active": 1
        }
    ],
    "return_profiles": [
        {
            "return_profile_id": 16,
            "is_default": 0
        }
    ],
    "alternative_payments": [
        {
            "alternative_payment_provider_id": 16,
            "is_active": 0
        }
    ],
    "fraud_providers": [
        {
            "fraud_provider_id": 16,
            "priority": 39,
            "is_active": 1,
            "override_threshold": 84
        }
    ]
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/admin/v1/campaigns/{campaignId}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

campaignId   string     

Example: 564

Body Parameters

updated_at   string     

Must be a valid date. Example: 2026-04-27T19:50:13

name   string  optional    

Must not be greater than 255 characters. Example: b

description   string  optional    

Must not be greater than 1000 characters. Example: Et animi quos velit et fugiat.

default_channel   string  optional    

Must not be greater than 100 characters. Example: d

channel_id   integer  optional    

Must be at least 0. Example: 37

payment_type   string  optional    

Must not be greater than 50 characters. Example: j

enabled   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
max_grace_period   integer  optional    

Must be at least 0. Example: 52

pre_auth_amount   number  optional    

Must be at least 0. Example: 8

is_prepaid_blocked   integer  optional    

Example: 1

Must be one of:
  • 0
  • 1
is_custom_price_allowed   integer  optional    

Example: 1

Must be one of:
  • 0
  • 1
is_avs_enabled   integer  optional    

Example: 1

Must be one of:
  • 0
  • 1
is_collections_enabled   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
payment_router_id   integer  optional    

Must be at least 0. Example: 75

tax_provider_id   integer  optional    

Must be at least 0. Example: 7

data_verification_provider_id   integer  optional    

Must be at least 0. Example: 87

fulfillment_id   integer  optional    

Must be at least 0. Example: 39

check_provider_id   integer  optional    

Must be at least 0. Example: 50

membership_provider_id   integer  optional    

Must be at least 0. Example: 62

call_confirm_provider_id   integer  optional    

Must be at least 0. Example: 54

chargeback_provider_id   integer  optional    

Must be at least 0. Example: 38

prospect_provider_id   integer  optional    

Must be at least 0. Example: 50

email_provider_id   integer  optional    

Must be at least 0. Example: 72

offers   object[]  optional    
offer_id   integer     

The offer_id of an existing record in the offer table. Example: 16

client_ref   string  optional    

Must not be greater than 100 characters. Example: n

is_default   integer  optional    

Example: 1

Must be one of:
  • 0
  • 1
is_active   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
sort_order   integer  optional    

Must be at least 0. Example: 84

override_name   string  optional    

Must not be greater than 255 characters. Example: z

override_price   number  optional    

Must be at least 0. Example: 77

override_trial_enabled   integer  optional    

Example: 1

Must be one of:
  • 0
  • 1
override_trial_days   integer  optional    

Must be at least 0. Example: 8

override_trial_price   number  optional    

Must be at least 0. Example: 76

available_start_date   string  optional    

Must be a valid date. Example: 2026-04-27T19:50:13

available_end_date   string  optional    

Must be a valid date. Example: 2026-04-27T19:50:13

min_order_amount   number  optional    

Must be at least 0. Example: 60

max_order_amount   number  optional    

Must be at least 0. Example: 42

max_uses   integer  optional    

Must be at least 0. Example: 37

max_uses_per_customer   integer  optional    

Must be at least 0. Example: 9

conditions   object  optional    
billing_models   object[]  optional    
billing_model_id   integer     

The billing_model_id of an existing record in the billing_model table. Example: 16

is_default   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
is_active   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
override_price   number  optional    

Must be at least 0. Example: 39

override_rebill_days   integer  optional    

Must be at least 0. Example: 84

sort_order   integer  optional    

Must be at least 0. Example: 12

gateways   object[]  optional    
gateway_id   integer     

The gateway_id of an existing record in the gateway table. Example: 16

countries   object[]  optional    
country_id   integer     

The id of an existing record in the country table. Example: 16

shipping   object[]  optional    
shipping_id   integer     

The shipping_id of an existing record in the shipping table. Example: 16

weight   integer  optional    

Must be at least 0. Example: 39

coupons   object[]  optional    
coupon_id   integer     

The coupon_id of an existing record in the coupon table. Example: 16

weight   integer  optional    

Must be at least 0. Example: 39

postbacks   object[]  optional    
postback_profile_id   integer     

The postback_profile_id of an existing record in the postback_profile table. Example: 16

is_active   integer  optional    

Example: 1

Must be one of:
  • 0
  • 1
return_profiles   object[]  optional    
return_profile_id   integer     

The return_profile_id of an existing record in the return_profile table. Example: 16

is_default   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
alternative_payments   object[]  optional    
alternative_payment_provider_id   integer     

The id of an existing record in the alternative_payment_provider table. Example: 16

is_active   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
fraud_providers   object[]  optional    
fraud_provider_id   integer     

The fraud_provider_id of an existing record in the fraud_provider table. Example: 16

priority   integer  optional    

Must be at least 0. Example: 39

is_active   integer  optional    

Example: 1

Must be one of:
  • 0
  • 1
override_threshold   number  optional    

Must be at least 0. Example: 84

Update the specified campaign.

requires authentication

Example request:
curl --request PATCH \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/campaigns/564" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"updated_at\": \"2026-04-27T19:50:13\",
    \"name\": \"b\",
    \"description\": \"Et animi quos velit et fugiat.\",
    \"default_channel\": \"d\",
    \"channel_id\": 37,
    \"payment_type\": \"j\",
    \"enabled\": 0,
    \"max_grace_period\": 52,
    \"pre_auth_amount\": 8,
    \"is_prepaid_blocked\": 1,
    \"is_custom_price_allowed\": 0,
    \"is_avs_enabled\": 1,
    \"is_collections_enabled\": 1,
    \"payment_router_id\": 75,
    \"tax_provider_id\": 7,
    \"data_verification_provider_id\": 87,
    \"fulfillment_id\": 39,
    \"check_provider_id\": 50,
    \"membership_provider_id\": 62,
    \"call_confirm_provider_id\": 54,
    \"chargeback_provider_id\": 38,
    \"prospect_provider_id\": 50,
    \"email_provider_id\": 72,
    \"offers\": [
        {
            \"offer_id\": 16,
            \"client_ref\": \"n\",
            \"is_default\": 1,
            \"is_active\": 0,
            \"sort_order\": 84,
            \"override_name\": \"z\",
            \"override_price\": 77,
            \"override_trial_enabled\": 0,
            \"override_trial_days\": 8,
            \"override_trial_price\": 76,
            \"available_start_date\": \"2026-04-27T19:50:13\",
            \"available_end_date\": \"2026-04-27T19:50:13\",
            \"min_order_amount\": 60,
            \"max_order_amount\": 42,
            \"max_uses\": 37,
            \"max_uses_per_customer\": 9,
            \"billing_models\": [
                {
                    \"billing_model_id\": 16,
                    \"is_default\": 0,
                    \"is_active\": 0,
                    \"override_price\": 39,
                    \"override_rebill_days\": 84,
                    \"sort_order\": 12
                }
            ]
        }
    ],
    \"gateways\": [
        {
            \"gateway_id\": 16
        }
    ],
    \"countries\": [
        {
            \"country_id\": 16
        }
    ],
    \"shipping\": [
        {
            \"shipping_id\": 16,
            \"weight\": 39
        }
    ],
    \"coupons\": [
        {
            \"coupon_id\": 16,
            \"weight\": 39
        }
    ],
    \"postbacks\": [
        {
            \"postback_profile_id\": 16,
            \"is_active\": 1
        }
    ],
    \"return_profiles\": [
        {
            \"return_profile_id\": 16,
            \"is_default\": 1
        }
    ],
    \"alternative_payments\": [
        {
            \"alternative_payment_provider_id\": 16,
            \"is_active\": 1
        }
    ],
    \"fraud_providers\": [
        {
            \"fraud_provider_id\": 16,
            \"priority\": 39,
            \"is_active\": 0,
            \"override_threshold\": 84
        }
    ]
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/campaigns/564"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "updated_at": "2026-04-27T19:50:13",
    "name": "b",
    "description": "Et animi quos velit et fugiat.",
    "default_channel": "d",
    "channel_id": 37,
    "payment_type": "j",
    "enabled": 0,
    "max_grace_period": 52,
    "pre_auth_amount": 8,
    "is_prepaid_blocked": 1,
    "is_custom_price_allowed": 0,
    "is_avs_enabled": 1,
    "is_collections_enabled": 1,
    "payment_router_id": 75,
    "tax_provider_id": 7,
    "data_verification_provider_id": 87,
    "fulfillment_id": 39,
    "check_provider_id": 50,
    "membership_provider_id": 62,
    "call_confirm_provider_id": 54,
    "chargeback_provider_id": 38,
    "prospect_provider_id": 50,
    "email_provider_id": 72,
    "offers": [
        {
            "offer_id": 16,
            "client_ref": "n",
            "is_default": 1,
            "is_active": 0,
            "sort_order": 84,
            "override_name": "z",
            "override_price": 77,
            "override_trial_enabled": 0,
            "override_trial_days": 8,
            "override_trial_price": 76,
            "available_start_date": "2026-04-27T19:50:13",
            "available_end_date": "2026-04-27T19:50:13",
            "min_order_amount": 60,
            "max_order_amount": 42,
            "max_uses": 37,
            "max_uses_per_customer": 9,
            "billing_models": [
                {
                    "billing_model_id": 16,
                    "is_default": 0,
                    "is_active": 0,
                    "override_price": 39,
                    "override_rebill_days": 84,
                    "sort_order": 12
                }
            ]
        }
    ],
    "gateways": [
        {
            "gateway_id": 16
        }
    ],
    "countries": [
        {
            "country_id": 16
        }
    ],
    "shipping": [
        {
            "shipping_id": 16,
            "weight": 39
        }
    ],
    "coupons": [
        {
            "coupon_id": 16,
            "weight": 39
        }
    ],
    "postbacks": [
        {
            "postback_profile_id": 16,
            "is_active": 1
        }
    ],
    "return_profiles": [
        {
            "return_profile_id": 16,
            "is_default": 1
        }
    ],
    "alternative_payments": [
        {
            "alternative_payment_provider_id": 16,
            "is_active": 1
        }
    ],
    "fraud_providers": [
        {
            "fraud_provider_id": 16,
            "priority": 39,
            "is_active": 0,
            "override_threshold": 84
        }
    ]
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PATCH api/admin/v1/campaigns/{campaignId}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

campaignId   string     

Example: 564

Body Parameters

updated_at   string     

Must be a valid date. Example: 2026-04-27T19:50:13

name   string  optional    

Must not be greater than 255 characters. Example: b

description   string  optional    

Must not be greater than 1000 characters. Example: Et animi quos velit et fugiat.

default_channel   string  optional    

Must not be greater than 100 characters. Example: d

channel_id   integer  optional    

Must be at least 0. Example: 37

payment_type   string  optional    

Must not be greater than 50 characters. Example: j

enabled   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
max_grace_period   integer  optional    

Must be at least 0. Example: 52

pre_auth_amount   number  optional    

Must be at least 0. Example: 8

is_prepaid_blocked   integer  optional    

Example: 1

Must be one of:
  • 0
  • 1
is_custom_price_allowed   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
is_avs_enabled   integer  optional    

Example: 1

Must be one of:
  • 0
  • 1
is_collections_enabled   integer  optional    

Example: 1

Must be one of:
  • 0
  • 1
payment_router_id   integer  optional    

Must be at least 0. Example: 75

tax_provider_id   integer  optional    

Must be at least 0. Example: 7

data_verification_provider_id   integer  optional    

Must be at least 0. Example: 87

fulfillment_id   integer  optional    

Must be at least 0. Example: 39

check_provider_id   integer  optional    

Must be at least 0. Example: 50

membership_provider_id   integer  optional    

Must be at least 0. Example: 62

call_confirm_provider_id   integer  optional    

Must be at least 0. Example: 54

chargeback_provider_id   integer  optional    

Must be at least 0. Example: 38

prospect_provider_id   integer  optional    

Must be at least 0. Example: 50

email_provider_id   integer  optional    

Must be at least 0. Example: 72

offers   object[]  optional    
offer_id   integer     

The offer_id of an existing record in the offer table. Example: 16

client_ref   string  optional    

Must not be greater than 100 characters. Example: n

is_default   integer  optional    

Example: 1

Must be one of:
  • 0
  • 1
is_active   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
sort_order   integer  optional    

Must be at least 0. Example: 84

override_name   string  optional    

Must not be greater than 255 characters. Example: z

override_price   number  optional    

Must be at least 0. Example: 77

override_trial_enabled   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
override_trial_days   integer  optional    

Must be at least 0. Example: 8

override_trial_price   number  optional    

Must be at least 0. Example: 76

available_start_date   string  optional    

Must be a valid date. Example: 2026-04-27T19:50:13

available_end_date   string  optional    

Must be a valid date. Example: 2026-04-27T19:50:13

min_order_amount   number  optional    

Must be at least 0. Example: 60

max_order_amount   number  optional    

Must be at least 0. Example: 42

max_uses   integer  optional    

Must be at least 0. Example: 37

max_uses_per_customer   integer  optional    

Must be at least 0. Example: 9

conditions   object  optional    
billing_models   object[]  optional    
billing_model_id   integer     

The billing_model_id of an existing record in the billing_model table. Example: 16

is_default   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
is_active   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
override_price   number  optional    

Must be at least 0. Example: 39

override_rebill_days   integer  optional    

Must be at least 0. Example: 84

sort_order   integer  optional    

Must be at least 0. Example: 12

gateways   object[]  optional    
gateway_id   integer     

The gateway_id of an existing record in the gateway table. Example: 16

countries   object[]  optional    
country_id   integer     

The id of an existing record in the country table. Example: 16

shipping   object[]  optional    
shipping_id   integer     

The shipping_id of an existing record in the shipping table. Example: 16

weight   integer  optional    

Must be at least 0. Example: 39

coupons   object[]  optional    
coupon_id   integer     

The coupon_id of an existing record in the coupon table. Example: 16

weight   integer  optional    

Must be at least 0. Example: 39

postbacks   object[]  optional    
postback_profile_id   integer     

The postback_profile_id of an existing record in the postback_profile table. Example: 16

is_active   integer  optional    

Example: 1

Must be one of:
  • 0
  • 1
return_profiles   object[]  optional    
return_profile_id   integer     

The return_profile_id of an existing record in the return_profile table. Example: 16

is_default   integer  optional    

Example: 1

Must be one of:
  • 0
  • 1
alternative_payments   object[]  optional    
alternative_payment_provider_id   integer     

The id of an existing record in the alternative_payment_provider table. Example: 16

is_active   integer  optional    

Example: 1

Must be one of:
  • 0
  • 1
fraud_providers   object[]  optional    
fraud_provider_id   integer     

The fraud_provider_id of an existing record in the fraud_provider table. Example: 16

priority   integer  optional    

Must be at least 0. Example: 39

is_active   integer  optional    

Example: 0

Must be one of:
  • 0
  • 1
override_threshold   number  optional    

Must be at least 0. Example: 84

Archive the specified campaign.

requires authentication

Example request:
curl --request PATCH \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/campaigns/564/archive" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"updated_at\": \"2026-04-27T19:50:13\"
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/campaigns/564/archive"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "updated_at": "2026-04-27T19:50:13"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PATCH api/admin/v1/campaigns/{campaignId}/archive

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

campaignId   string     

Example: 564

Body Parameters

updated_at   string     

Must be a valid date. Example: 2026-04-27T19:50:13

Unarchive the specified campaign.

requires authentication

Example request:
curl --request PATCH \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/campaigns/564/unarchive" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"updated_at\": \"2026-04-27T19:50:13\"
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/campaigns/564/unarchive"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "updated_at": "2026-04-27T19:50:13"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PATCH api/admin/v1/campaigns/{campaignId}/unarchive

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

campaignId   string     

Example: 564

Body Parameters

updated_at   string     

Must be a valid date. Example: 2026-04-27T19:50:13

Admin Categories

Display a paginated listing of categories.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/categories" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/categories"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/categories

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Display the specified category.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/categories/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/categories/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/categories/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the category. Example: architecto

Store a newly created category.

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/categories" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"description\": \"Eius et animi quos velit et.\"
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/categories"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "description": "Eius et animi quos velit et."
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/admin/v1/categories

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

name   string     

Must not be greater than 50 characters. Example: b

description   string  optional    

Example: Eius et animi quos velit et.

Update the specified category.

requires authentication

Example request:
curl --request PATCH \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/categories/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"description\": \"Eius et animi quos velit et.\"
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/categories/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "description": "Eius et animi quos velit et."
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PATCH api/admin/v1/categories/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the category. Example: architecto

Body Parameters

name   string  optional    
description   string  optional    

Example: Eius et animi quos velit et.

Remove the specified category.

requires authentication

Example request:
curl --request DELETE \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/categories/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/categories/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/admin/v1/categories/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the category. Example: architecto

Admin Coupons

Paginated list of coupons.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/coupon-profiles" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/coupon-profiles"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/coupon-profiles

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Display the specified coupon.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/coupon-profiles/564" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/coupon-profiles/564"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/coupon-profiles/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the coupon profile. Example: 564

Store a newly created coupon.

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/coupon-profiles" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"type\": \"product\",
    \"name\": \"Summer Sale 20% Off\",
    \"description\": \"Summer promotional discount.\",
    \"discount_type\": \"percent\",
    \"discount_value\": 20,
    \"applies_to\": \"order_subtotal\",
    \"lifetime_discount\": false,
    \"min_quantity\": 1,
    \"min_purchase_amount\": 0,
    \"expires_at\": \"2026-12-31T23:59:59Z\",
    \"usage_limit_total\": 1000,
    \"usage_limit_per_customer\": 1,
    \"is_active\": true,
    \"products\": [
        {
            \"product_id\": 1
        }
    ],
    \"codes\": [
        {
            \"code\": \"SUMMER20\"
        }
    ]
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/coupon-profiles"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "type": "product",
    "name": "Summer Sale 20% Off",
    "description": "Summer promotional discount.",
    "discount_type": "percent",
    "discount_value": 20,
    "applies_to": "order_subtotal",
    "lifetime_discount": false,
    "min_quantity": 1,
    "min_purchase_amount": 0,
    "expires_at": "2026-12-31T23:59:59Z",
    "usage_limit_total": 1000,
    "usage_limit_per_customer": 1,
    "is_active": true,
    "products": [
        {
            "product_id": 1
        }
    ],
    "codes": [
        {
            "code": "SUMMER20"
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/admin/v1/coupon-profiles

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

type   string     

Coupon type. Example: product

Must be one of:
  • product
  • order_shipping
name   string     

Profile name. Must not be greater than 191 characters. Example: Summer Sale 20% Off

description   string  optional    

Profile description. Example: Summer promotional discount.

discount_type   string     

Discount type. Example: percent

Must be one of:
  • percent
  • fixed
discount_value   number     

Discount value. Percentage (0-100) or fixed dollar amount. Must be at least 0. Example: 20

applies_to   string     

What the discount applies to. Example: order_subtotal

Must be one of:
  • order_subtotal
  • shipping
lifetime_discount   boolean  optional    

Whether discount applies for the lifetime of the subscription. Example: false

min_quantity   integer  optional    

Minimum quantity to qualify. Must be at least 1. Example: 1

min_purchase_amount   number  optional    

Minimum purchase amount to qualify. Must be at least 0. Example: 0

max_quantity   integer  optional    

Maximum quantity the coupon applies to. Must be at least 1.

expires_at   string  optional    

Expiration date. Must be in the future. Must be a valid date. Must be a date after now. Example: 2026-12-31T23:59:59Z

usage_limit_total   integer  optional    

Total usage limit across all customers. Must be at least 1. Example: 1000

usage_limit_per_customer   integer  optional    

Usage limit per customer. Must be at least 1. Example: 1

is_active   boolean  optional    

Whether the profile is active. Example: true

products   object[]  optional    

Eligible products for this coupon.

product_id   integer     

Product ID. The product_id of an existing record in the product table. Example: 1

variant_id   integer  optional    

Optional variant ID.

codes   object[]  optional    

Promo codes to create.

code   string     

Promo code string. Must not be greater than 64 characters. Example: SUMMER20

Update the specified coupon.

requires authentication

Example request:
curl --request PATCH \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/coupon-profiles/564" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"updated_at\": \"2025-12-01T00:00:00.000000Z\",
    \"type\": \"product\",
    \"name\": \"Summer Sale 20% Off\",
    \"description\": \"Summer promotional discount.\",
    \"discount_type\": \"percent\",
    \"discount_value\": 20,
    \"applies_to\": \"order_subtotal\",
    \"lifetime_discount\": false,
    \"min_quantity\": 1,
    \"min_purchase_amount\": 0,
    \"expires_at\": \"2026-12-31T23:59:59Z\",
    \"usage_limit_total\": 1000,
    \"usage_limit_per_customer\": 1,
    \"is_active\": true
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/coupon-profiles/564"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "updated_at": "2025-12-01T00:00:00.000000Z",
    "type": "product",
    "name": "Summer Sale 20% Off",
    "description": "Summer promotional discount.",
    "discount_type": "percent",
    "discount_value": 20,
    "applies_to": "order_subtotal",
    "lifetime_discount": false,
    "min_quantity": 1,
    "min_purchase_amount": 0,
    "expires_at": "2026-12-31T23:59:59Z",
    "usage_limit_total": 1000,
    "usage_limit_per_customer": 1,
    "is_active": true
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PATCH api/admin/v1/coupon-profiles/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the coupon profile. Example: 564

Body Parameters

updated_at   string     

Optimistic lock timestamp. Must match the current updated_at value. Must be a valid date. Example: 2025-12-01T00:00:00.000000Z

type   string  optional    

Coupon type. Example: product

Must be one of:
  • product
  • order_shipping
name   string  optional    

Profile name. Must not be greater than 191 characters. Example: Summer Sale 20% Off

description   string  optional    

Profile description. Example: Summer promotional discount.

discount_type   string  optional    

Discount type. Example: percent

Must be one of:
  • percent
  • fixed
discount_value   number  optional    

Discount value. Percentage (0-100) or fixed dollar amount. Must be at least 0. Example: 20

applies_to   string  optional    

What the discount applies to. Example: order_subtotal

Must be one of:
  • order_subtotal
  • shipping
lifetime_discount   boolean  optional    

Whether discount applies for the lifetime of the subscription. Example: false

min_quantity   integer  optional    

Minimum quantity to qualify. Must be at least 1. Example: 1

min_purchase_amount   number  optional    

Minimum purchase amount to qualify. Must be at least 0. Example: 0

max_quantity   integer  optional    

Maximum quantity the coupon applies to. Must be at least 1.

expires_at   string  optional    

Expiration date. Must be a valid date. Example: 2026-12-31T23:59:59Z

usage_limit_total   integer  optional    

Total usage limit across all customers. Must be at least 1. Example: 1000

usage_limit_per_customer   integer  optional    

Usage limit per customer. Must be at least 1. Example: 1

is_active   boolean  optional    

Whether the profile is active. Example: true

Remove the specified coupon.

requires authentication

Example request:
curl --request DELETE \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/coupon-profiles/564" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/coupon-profiles/564"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/admin/v1/coupon-profiles/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the coupon profile. Example: 564

Add a product to a selected coupon

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/coupon-profiles/564/products" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id\": 16,
    \"variant_id\": 16
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/coupon-profiles/564/products"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id": 16,
    "variant_id": 16
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/admin/v1/coupon-profiles/{id}/products

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the coupon profile. Example: 564

Body Parameters

product_id   integer     

The product_id of an existing record in the product table. Example: 16

variant_id   integer  optional    

Example: 16

Remove a product from a selected coupon

requires authentication

Example request:
curl --request DELETE \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/coupon-profiles/564/products/564" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/coupon-profiles/564/products/564"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/admin/v1/coupon-profiles/{id}/products/{productId}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the coupon profile. Example: 564

productId   string     

Example: 564

Add a coupon code

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/coupon-profiles/564/codes" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"code\": \"b\"
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/coupon-profiles/564/codes"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "code": "b"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/admin/v1/coupon-profiles/{id}/codes

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the coupon profile. Example: 564

Body Parameters

code   string     

Must not be greater than 64 characters. Example: b

Update a coupon code

requires authentication

Example request:
curl --request PATCH \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/coupon-codes/564" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"is_active\": false,
    \"code\": \"b\"
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/coupon-codes/564"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "is_active": false,
    "code": "b"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PATCH api/admin/v1/coupon-codes/{codeId}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

codeId   string     

Example: 564

Body Parameters

is_active   boolean  optional    

Example: false

code   string  optional    

Must not be greater than 64 characters. Example: b

Remove a coupon code

requires authentication

Example request:
curl --request DELETE \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/coupon-codes/564" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/coupon-codes/564"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/admin/v1/coupon-codes/{codeId}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

codeId   string     

Example: 564

Admin Gateways

Paginated list of gateways.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/gateways" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/gateways"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/gateways

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Display a specific gateway.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/gateways/564" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/gateways/564"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/gateways/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the gateway. Example: 564

Update the cap on a specific gateway.

requires authentication

Example request:
curl --request PATCH \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/gateways/564" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"monthly_cap_amount\": 1
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/gateways/564"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "monthly_cap_amount": 1
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PATCH api/admin/v1/gateways/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the gateway. Example: 564

Body Parameters

monthly_cap_amount   number  optional    

Must be at least 0. Must not be greater than 9999999999.99. Example: 1

Admin Offer Reference

GET api/admin/v1/offers/reference/offer-types

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/offers/reference/offer-types" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/offers/reference/offer-types"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/offers/reference/offer-types

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/admin/v1/offers/reference/cycle-types

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/offers/reference/cycle-types" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/offers/reference/cycle-types"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/offers/reference/cycle-types

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/admin/v1/offers/reference/terminating-cycle-types

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/offers/reference/terminating-cycle-types" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/offers/reference/terminating-cycle-types"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/offers/reference/terminating-cycle-types

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Admin Offers

Display a paginated listing of offers.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/offers" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/offers"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/offers

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Display the specified offer.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/offers/564" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/offers/564"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/offers/{offerId}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

offerId   string     

Example: 564

Store a newly created offer.

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/offers" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Monthly Weight Loss Plan\",
    \"type_id\": 1,
    \"cycle_type_id\": 1,
    \"expire_cycles\": 0,
    \"cycle_count\": 0,
    \"expiration\": 0,
    \"is_trial\": 0,
    \"inherit_product_price\": 1,
    \"trial_price\": 0,
    \"inherit_billing_model\": 1,
    \"custom_days\": 0,
    \"delay_days\": 0,
    \"delay_inherit_product_price\": 0,
    \"delay_custom_price\": 0,
    \"delay_email_suppressed\": 0,
    \"status\": 1,
    \"is_seasonal\": 0,
    \"is_immutable\": 0,
    \"is_store\": 0,
    \"is_available_on_syncable\": 0,
    \"is_archived\": 0,
    \"is_prepaid\": 0,
    \"is_series\": 0,
    \"offer_options\": [
        {
            \"billing_model_id\": 4,
            \"discount_percent\": 10,
            \"discount_flat_amount\": 0,
            \"weight\": 0
        }
    ],
    \"offer_products\": [
        {
            \"product_id\": 1,
            \"weight\": 0,
            \"is_trial_allowed\": 0
        }
    ],
    \"offer_cycle_products\": [
        {
            \"cycle_depth\": 1,
            \"product_id\": 1,
            \"price\": 29.99,
            \"qty\": 1
        }
    ]
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/offers"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "Monthly Weight Loss Plan",
    "type_id": 1,
    "cycle_type_id": 1,
    "expire_cycles": 0,
    "cycle_count": 0,
    "expiration": 0,
    "is_trial": 0,
    "inherit_product_price": 1,
    "trial_price": 0,
    "inherit_billing_model": 1,
    "custom_days": 0,
    "delay_days": 0,
    "delay_inherit_product_price": 0,
    "delay_custom_price": 0,
    "delay_email_suppressed": 0,
    "status": 1,
    "is_seasonal": 0,
    "is_immutable": 0,
    "is_store": 0,
    "is_available_on_syncable": 0,
    "is_archived": 0,
    "is_prepaid": 0,
    "is_series": 0,
    "offer_options": [
        {
            "billing_model_id": 4,
            "discount_percent": 10,
            "discount_flat_amount": 0,
            "weight": 0
        }
    ],
    "offer_products": [
        {
            "product_id": 1,
            "weight": 0,
            "is_trial_allowed": 0
        }
    ],
    "offer_cycle_products": [
        {
            "cycle_depth": 1,
            "product_id": 1,
            "price": 29.99,
            "qty": 1
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/admin/v1/offers

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

name   string     

Offer name. Must not be greater than 250 characters. Example: Monthly Weight Loss Plan

type_id   integer     

Offer type ID. The type_id of an existing record in the offer_type table. Example: 1

cycle_type_id   integer  optional    

Cycle type ID. The cycle_type_id of an existing record in the offer_cycle_type table. Example: 1

expire_cycles   integer  optional    

Number of cycles before expiry. 0=Never. Must be at least 0. Example: 0

cycle_count   integer  optional    

Total cycle count. Must be at least 0. Example: 0

expiration   integer  optional    

0=No expiration, 1=Expires. Example: 0

Must be one of:
  • 0
  • 1
terminating_cycle_type   integer  optional    

Terminating cycle type.

terminating_cycle_type_id   integer  optional    

Terminating cycle type ID. The id of an existing record in the offer_terminating_cycle_type table.

terminating_product_id   integer  optional    

Product ID used on terminating cycle. The product_id of an existing record in the product table.

recurring_product_id   integer  optional    

Recurring product ID.

recurring_product_name   string  optional    

Recurring product display name. Must not be greater than 150 characters.

is_trial   integer  optional    

0=Not trial, 1=Trial offer. Example: 0

Must be one of:
  • 0
  • 1
inherit_product_price   integer  optional    

0=Custom price, 1=Use product price. Example: 1

Must be one of:
  • 0
  • 1
trial_price   number  optional    

Trial price override. Must be at least 0. Example: 0

inherit_billing_model   integer  optional    

0=Custom billing, 1=Inherit billing model. Example: 1

Must be one of:
  • 0
  • 1
custom_days   integer  optional    

Custom cycle days. Must be at least 0. Example: 0

delay_days   integer  optional    

Delay days before first rebill. Must be at least 0. Example: 0

delay_inherit_product_price   integer  optional    

Inherit product price during delay. Example: 0

Must be one of:
  • 0
  • 1
delay_custom_price   number  optional    

Custom price during delay. Must be at least 0. Example: 0

delay_email_suppressed   integer  optional    

Suppress emails during delay. Example: 0

Must be one of:
  • 0
  • 1
status   integer  optional    

Offer status. Example: 1

is_seasonal   integer  optional    

Whether offer is seasonal. Example: 0

Must be one of:
  • 0
  • 1
is_immutable   integer  optional    

Whether offer is immutable. Example: 0

Must be one of:
  • 0
  • 1
is_store   integer  optional    

Whether offer is available in store. Example: 0

Must be one of:
  • 0
  • 1
is_available_on_syncable   integer  optional    

Whether offer is syncable. Example: 0

Must be one of:
  • 0
  • 1
is_archived   integer  optional    

Whether offer is archived. Example: 0

Must be one of:
  • 0
  • 1
is_prepaid   integer  optional    

Whether offer is prepaid. Example: 0

Must be one of:
  • 0
  • 1
is_series   integer  optional    

Whether offer is a series. Example: 0

Must be one of:
  • 0
  • 1
terminating_product_name   string  optional    

Terminating product display name. Must not be greater than 255 characters.

offer_options   object[]  optional    

Billing model option overrides.

billing_model_id   integer     

Billing model ID. The billing_model_id of an existing record in the billing_model table. Example: 4

discount_percent   integer  optional    

Discount percentage (0-100). Must be between 0 and 100. Example: 10

discount_flat_amount   number  optional    

Flat discount amount. Must be at least 0. Example: 0

weight   integer  optional    

Sort weight. Must be at least 0. Example: 0

offer_products   object[]  optional    

Products included in the offer.

product_id   integer     

Product ID. The product_id of an existing record in the product table. Example: 1

weight   integer  optional    

Sort weight. Must be at least 0. Example: 0

is_trial_allowed   integer  optional    

Whether trial is allowed. 0=No, 1=Yes. Example: 0

Must be one of:
  • 0
  • 1
offer_cycle_products   object[]  optional    

Cycle-specific product overrides.

cycle_depth   integer     

Cycle depth (starting at 1). Must be at least 1. Example: 1

product_id   integer     

Product ID for this cycle. The product_id of an existing record in the product table. Example: 1

price   number     

Price for this cycle. Must be at least 0. Example: 29.99

qty   integer     

Quantity for this cycle. Must be at least 1. Example: 1

name   string  optional    

Display name override. Must not be greater than 255 characters.

sku   string  optional    

SKU override. Must not be greater than 100 characters.

start_at_month   integer  optional    

Start month (1-12). Must be between 1 and 12.

start_at_day   integer  optional    

Start day (1-31). Must be between 1 and 31.

Update the specified offer.

requires authentication

Example request:
curl --request PUT \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/offers/564" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"updated_at\": \"2025-12-01T00:00:00.000000Z\",
    \"name\": \"Monthly Weight Loss Plan\",
    \"type_id\": 1,
    \"cycle_type_id\": 1,
    \"expire_cycles\": 0,
    \"cycle_count\": 0,
    \"expiration\": 0,
    \"is_trial\": 0,
    \"inherit_product_price\": 1,
    \"trial_price\": 0,
    \"inherit_billing_model\": 1,
    \"custom_days\": 0,
    \"delay_days\": 0,
    \"delay_inherit_product_price\": 0,
    \"delay_custom_price\": 0,
    \"delay_email_suppressed\": 0,
    \"status\": 1,
    \"is_seasonal\": 0,
    \"is_immutable\": 0,
    \"is_store\": 0,
    \"is_available_on_syncable\": 0,
    \"is_archived\": 0,
    \"is_prepaid\": 0,
    \"is_series\": 0,
    \"offer_options\": [
        {
            \"billing_model_id\": 4,
            \"discount_percent\": 10,
            \"discount_flat_amount\": 0,
            \"weight\": 0
        }
    ],
    \"offer_products\": [
        {
            \"product_id\": 1,
            \"weight\": 0,
            \"is_trial_allowed\": 0
        }
    ],
    \"offer_cycle_products\": [
        {
            \"cycle_depth\": 1,
            \"product_id\": 1,
            \"price\": 29.99,
            \"qty\": 1
        }
    ]
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/offers/564"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "updated_at": "2025-12-01T00:00:00.000000Z",
    "name": "Monthly Weight Loss Plan",
    "type_id": 1,
    "cycle_type_id": 1,
    "expire_cycles": 0,
    "cycle_count": 0,
    "expiration": 0,
    "is_trial": 0,
    "inherit_product_price": 1,
    "trial_price": 0,
    "inherit_billing_model": 1,
    "custom_days": 0,
    "delay_days": 0,
    "delay_inherit_product_price": 0,
    "delay_custom_price": 0,
    "delay_email_suppressed": 0,
    "status": 1,
    "is_seasonal": 0,
    "is_immutable": 0,
    "is_store": 0,
    "is_available_on_syncable": 0,
    "is_archived": 0,
    "is_prepaid": 0,
    "is_series": 0,
    "offer_options": [
        {
            "billing_model_id": 4,
            "discount_percent": 10,
            "discount_flat_amount": 0,
            "weight": 0
        }
    ],
    "offer_products": [
        {
            "product_id": 1,
            "weight": 0,
            "is_trial_allowed": 0
        }
    ],
    "offer_cycle_products": [
        {
            "cycle_depth": 1,
            "product_id": 1,
            "price": 29.99,
            "qty": 1
        }
    ]
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/admin/v1/offers/{offerId}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

offerId   string     

Example: 564

Body Parameters

updated_at   string     

Optimistic lock timestamp. Must match the current updated_at value. Must be a valid date. Example: 2025-12-01T00:00:00.000000Z

name   string  optional    

Offer name. Must not be greater than 250 characters. Example: Monthly Weight Loss Plan

type_id   integer  optional    

Offer type ID. The type_id of an existing record in the offer_type table. Example: 1

cycle_type_id   integer  optional    

Cycle type ID. The cycle_type_id of an existing record in the offer_cycle_type table. Example: 1

expire_cycles   integer  optional    

Number of cycles before expiry. 0=Never. Must be at least 0. Example: 0

cycle_count   integer  optional    

Total cycle count. Must be at least 0. Example: 0

expiration   integer  optional    

0=No expiration, 1=Expires. Example: 0

Must be one of:
  • 0
  • 1
terminating_cycle_type   integer  optional    

Terminating cycle type.

terminating_cycle_type_id   integer  optional    

Terminating cycle type ID. The id of an existing record in the offer_terminating_cycle_type table.

terminating_product_id   integer  optional    

Product ID used on terminating cycle. The product_id of an existing record in the product table.

recurring_product_id   integer  optional    

Recurring product ID.

recurring_product_name   string  optional    

Recurring product display name. Must not be greater than 150 characters.

is_trial   integer  optional    

0=Not trial, 1=Trial offer. Example: 0

Must be one of:
  • 0
  • 1
inherit_product_price   integer  optional    

0=Custom price, 1=Use product price. Example: 1

Must be one of:
  • 0
  • 1
trial_price   number  optional    

Trial price override. Must be at least 0. Example: 0

inherit_billing_model   integer  optional    

0=Custom billing, 1=Inherit billing model. Example: 1

Must be one of:
  • 0
  • 1
custom_days   integer  optional    

Custom cycle days. Must be at least 0. Example: 0

delay_days   integer  optional    

Delay days before first rebill. Must be at least 0. Example: 0

delay_inherit_product_price   integer  optional    

Inherit product price during delay. Example: 0

Must be one of:
  • 0
  • 1
delay_custom_price   number  optional    

Custom price during delay. Must be at least 0. Example: 0

delay_email_suppressed   integer  optional    

Suppress emails during delay. Example: 0

Must be one of:
  • 0
  • 1
status   integer  optional    

Offer status. Example: 1

is_seasonal   integer  optional    

Whether offer is seasonal. Example: 0

Must be one of:
  • 0
  • 1
is_immutable   integer  optional    

Whether offer is immutable. Example: 0

Must be one of:
  • 0
  • 1
is_store   integer  optional    

Whether offer is available in store. Example: 0

Must be one of:
  • 0
  • 1
is_available_on_syncable   integer  optional    

Whether offer is syncable. Example: 0

Must be one of:
  • 0
  • 1
is_archived   integer  optional    

Whether offer is archived. Example: 0

Must be one of:
  • 0
  • 1
is_prepaid   integer  optional    

Whether offer is prepaid. Example: 0

Must be one of:
  • 0
  • 1
is_series   integer  optional    

Whether offer is a series. Example: 0

Must be one of:
  • 0
  • 1
terminating_product_name   string  optional    

Terminating product display name. Must not be greater than 255 characters.

offer_options   object[]  optional    

Billing model option overrides.

billing_model_id   integer     

Billing model ID. The billing_model_id of an existing record in the billing_model table. Example: 4

discount_percent   integer  optional    

Discount percentage (0-100). Must be between 0 and 100. Example: 10

discount_flat_amount   number  optional    

Flat discount amount. Must be at least 0. Example: 0

weight   integer  optional    

Sort weight. Must be at least 0. Example: 0

offer_products   object[]  optional    

Products included in the offer.

product_id   integer     

Product ID. The product_id of an existing record in the product table. Example: 1

weight   integer  optional    

Sort weight. Must be at least 0. Example: 0

is_trial_allowed   integer  optional    

Whether trial is allowed. 0=No, 1=Yes. Example: 0

Must be one of:
  • 0
  • 1
offer_cycle_products   object[]  optional    

Cycle-specific product overrides.

cycle_depth   integer     

Cycle depth (starting at 1). Must be at least 1. Example: 1

product_id   integer     

Product ID for this cycle. The product_id of an existing record in the product table. Example: 1

price   number     

Price for this cycle. Must be at least 0. Example: 29.99

qty   integer     

Quantity for this cycle. Must be at least 1. Example: 1

name   string  optional    

Display name override. Must not be greater than 255 characters.

sku   string  optional    

SKU override. Must not be greater than 100 characters.

start_at_month   integer  optional    

Start month (1-12). Must be between 1 and 12.

start_at_day   integer  optional    

Start day (1-31). Must be between 1 and 31.

Update the specified offer.

requires authentication

Example request:
curl --request PATCH \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/offers/564" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"updated_at\": \"2025-12-01T00:00:00.000000Z\",
    \"name\": \"Monthly Weight Loss Plan\",
    \"type_id\": 1,
    \"cycle_type_id\": 1,
    \"expire_cycles\": 0,
    \"cycle_count\": 0,
    \"expiration\": 0,
    \"is_trial\": 0,
    \"inherit_product_price\": 1,
    \"trial_price\": 0,
    \"inherit_billing_model\": 1,
    \"custom_days\": 0,
    \"delay_days\": 0,
    \"delay_inherit_product_price\": 0,
    \"delay_custom_price\": 0,
    \"delay_email_suppressed\": 0,
    \"status\": 1,
    \"is_seasonal\": 0,
    \"is_immutable\": 0,
    \"is_store\": 0,
    \"is_available_on_syncable\": 0,
    \"is_archived\": 0,
    \"is_prepaid\": 0,
    \"is_series\": 0,
    \"offer_options\": [
        {
            \"billing_model_id\": 4,
            \"discount_percent\": 10,
            \"discount_flat_amount\": 0,
            \"weight\": 0
        }
    ],
    \"offer_products\": [
        {
            \"product_id\": 1,
            \"weight\": 0,
            \"is_trial_allowed\": 0
        }
    ],
    \"offer_cycle_products\": [
        {
            \"cycle_depth\": 1,
            \"product_id\": 1,
            \"price\": 29.99,
            \"qty\": 1
        }
    ]
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/offers/564"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "updated_at": "2025-12-01T00:00:00.000000Z",
    "name": "Monthly Weight Loss Plan",
    "type_id": 1,
    "cycle_type_id": 1,
    "expire_cycles": 0,
    "cycle_count": 0,
    "expiration": 0,
    "is_trial": 0,
    "inherit_product_price": 1,
    "trial_price": 0,
    "inherit_billing_model": 1,
    "custom_days": 0,
    "delay_days": 0,
    "delay_inherit_product_price": 0,
    "delay_custom_price": 0,
    "delay_email_suppressed": 0,
    "status": 1,
    "is_seasonal": 0,
    "is_immutable": 0,
    "is_store": 0,
    "is_available_on_syncable": 0,
    "is_archived": 0,
    "is_prepaid": 0,
    "is_series": 0,
    "offer_options": [
        {
            "billing_model_id": 4,
            "discount_percent": 10,
            "discount_flat_amount": 0,
            "weight": 0
        }
    ],
    "offer_products": [
        {
            "product_id": 1,
            "weight": 0,
            "is_trial_allowed": 0
        }
    ],
    "offer_cycle_products": [
        {
            "cycle_depth": 1,
            "product_id": 1,
            "price": 29.99,
            "qty": 1
        }
    ]
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PATCH api/admin/v1/offers/{offerId}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

offerId   string     

Example: 564

Body Parameters

updated_at   string     

Optimistic lock timestamp. Must match the current updated_at value. Must be a valid date. Example: 2025-12-01T00:00:00.000000Z

name   string  optional    

Offer name. Must not be greater than 250 characters. Example: Monthly Weight Loss Plan

type_id   integer  optional    

Offer type ID. The type_id of an existing record in the offer_type table. Example: 1

cycle_type_id   integer  optional    

Cycle type ID. The cycle_type_id of an existing record in the offer_cycle_type table. Example: 1

expire_cycles   integer  optional    

Number of cycles before expiry. 0=Never. Must be at least 0. Example: 0

cycle_count   integer  optional    

Total cycle count. Must be at least 0. Example: 0

expiration   integer  optional    

0=No expiration, 1=Expires. Example: 0

Must be one of:
  • 0
  • 1
terminating_cycle_type   integer  optional    

Terminating cycle type.

terminating_cycle_type_id   integer  optional    

Terminating cycle type ID. The id of an existing record in the offer_terminating_cycle_type table.

terminating_product_id   integer  optional    

Product ID used on terminating cycle. The product_id of an existing record in the product table.

recurring_product_id   integer  optional    

Recurring product ID.

recurring_product_name   string  optional    

Recurring product display name. Must not be greater than 150 characters.

is_trial   integer  optional    

0=Not trial, 1=Trial offer. Example: 0

Must be one of:
  • 0
  • 1
inherit_product_price   integer  optional    

0=Custom price, 1=Use product price. Example: 1

Must be one of:
  • 0
  • 1
trial_price   number  optional    

Trial price override. Must be at least 0. Example: 0

inherit_billing_model   integer  optional    

0=Custom billing, 1=Inherit billing model. Example: 1

Must be one of:
  • 0
  • 1
custom_days   integer  optional    

Custom cycle days. Must be at least 0. Example: 0

delay_days   integer  optional    

Delay days before first rebill. Must be at least 0. Example: 0

delay_inherit_product_price   integer  optional    

Inherit product price during delay. Example: 0

Must be one of:
  • 0
  • 1
delay_custom_price   number  optional    

Custom price during delay. Must be at least 0. Example: 0

delay_email_suppressed   integer  optional    

Suppress emails during delay. Example: 0

Must be one of:
  • 0
  • 1
status   integer  optional    

Offer status. Example: 1

is_seasonal   integer  optional    

Whether offer is seasonal. Example: 0

Must be one of:
  • 0
  • 1
is_immutable   integer  optional    

Whether offer is immutable. Example: 0

Must be one of:
  • 0
  • 1
is_store   integer  optional    

Whether offer is available in store. Example: 0

Must be one of:
  • 0
  • 1
is_available_on_syncable   integer  optional    

Whether offer is syncable. Example: 0

Must be one of:
  • 0
  • 1
is_archived   integer  optional    

Whether offer is archived. Example: 0

Must be one of:
  • 0
  • 1
is_prepaid   integer  optional    

Whether offer is prepaid. Example: 0

Must be one of:
  • 0
  • 1
is_series   integer  optional    

Whether offer is a series. Example: 0

Must be one of:
  • 0
  • 1
terminating_product_name   string  optional    

Terminating product display name. Must not be greater than 255 characters.

offer_options   object[]  optional    

Billing model option overrides.

billing_model_id   integer     

Billing model ID. The billing_model_id of an existing record in the billing_model table. Example: 4

discount_percent   integer  optional    

Discount percentage (0-100). Must be between 0 and 100. Example: 10

discount_flat_amount   number  optional    

Flat discount amount. Must be at least 0. Example: 0

weight   integer  optional    

Sort weight. Must be at least 0. Example: 0

offer_products   object[]  optional    

Products included in the offer.

product_id   integer     

Product ID. The product_id of an existing record in the product table. Example: 1

weight   integer  optional    

Sort weight. Must be at least 0. Example: 0

is_trial_allowed   integer  optional    

Whether trial is allowed. 0=No, 1=Yes. Example: 0

Must be one of:
  • 0
  • 1
offer_cycle_products   object[]  optional    

Cycle-specific product overrides.

cycle_depth   integer     

Cycle depth (starting at 1). Must be at least 1. Example: 1

product_id   integer     

Product ID for this cycle. The product_id of an existing record in the product table. Example: 1

price   number     

Price for this cycle. Must be at least 0. Example: 29.99

qty   integer     

Quantity for this cycle. Must be at least 1. Example: 1

name   string  optional    

Display name override. Must not be greater than 255 characters.

sku   string  optional    

SKU override. Must not be greater than 100 characters.

start_at_month   integer  optional    

Start month (1-12). Must be between 1 and 12.

start_at_day   integer  optional    

Start day (1-31). Must be between 1 and 31.

Archive specified offer.

requires authentication

Example request:
curl --request PATCH \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/offers/564/archive" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"updated_at\": \"2026-04-27T19:50:13\"
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/offers/564/archive"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "updated_at": "2026-04-27T19:50:13"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PATCH api/admin/v1/offers/{offerId}/archive

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

offerId   string     

Example: 564

Body Parameters

updated_at   string     

Must be a valid date. Example: 2026-04-27T19:50:13

Unarchive the specified offer.

requires authentication

Example request:
curl --request PATCH \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/offers/564/unarchive" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"updated_at\": \"2026-04-27T19:50:13\"
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/offers/564/unarchive"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "updated_at": "2026-04-27T19:50:13"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PATCH api/admin/v1/offers/{offerId}/unarchive

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

offerId   string     

Example: 564

Body Parameters

updated_at   string     

Must be a valid date. Example: 2026-04-27T19:50:13

Admin Order Reversal

POST api/admin/v1/orders/{orderId}/reversals

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/orders/32008/reversals" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"billing_attempt_id\": 16,
    \"action\": \"void\",
    \"amount\": 4326.41688,
    \"idempotency_key\": \"m\",
    \"reason\": \"i\"
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/orders/32008/reversals"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "billing_attempt_id": 16,
    "action": "void",
    "amount": 4326.41688,
    "idempotency_key": "m",
    "reason": "i"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/admin/v1/orders/{orderId}/reversals

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

orderId   integer     

Example: 32008

Body Parameters

billing_attempt_id   integer     

The id of an existing record in the billing_attempt table. Example: 16

action   string     

Example: void

Must be one of:
  • void
  • refund
amount   number     

Example: 4326.41688

idempotency_key   string     

Must match the regex /^[a-zA-Z0-9-_:.]+$/. Must be at least 8 characters. Must not be greater than 128 characters. Example: m

reason   string  optional    

Must not be greater than 500 characters. Example: i

Admin Postback Credentials

Paginated list of postback credentials.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-credentials" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-credentials"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/postback-credentials

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Store a new postback credential.

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-credentials" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"postback_profile_id\": 16,
    \"auth_username\": \"n\",
    \"auth_password\": \"g\",
    \"bearer_token\": \"architecto\",
    \"api_key_name\": \"n\",
    \"api_key_value\": \"architecto\"
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-credentials"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "postback_profile_id": 16,
    "auth_username": "n",
    "auth_password": "g",
    "bearer_token": "architecto",
    "api_key_name": "n",
    "api_key_value": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/admin/v1/postback-credentials

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

postback_profile_id   integer     

The id of an existing record in the postback_profile table. Example: 16

auth_username   string  optional    

Must not be greater than 255 characters. Example: n

auth_password   string  optional    

Must not be greater than 255 characters. Example: g

bearer_token   string  optional    

Example: architecto

api_key_name   string  optional    

Must not be greater than 100 characters. Example: n

api_key_value   string  optional    

Example: architecto

Display a specific postback credential.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-credentials/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-credentials/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/postback-credentials/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the postback credential. Example: architecto

Remove the specified postback credential.

requires authentication

Example request:
curl --request DELETE \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-credentials/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-credentials/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/admin/v1/postback-credentials/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the postback credential. Example: architecto

Admin Postback Deliveries

Paginated list of postback deliveries.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-deliveries" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-deliveries"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/postback-deliveries

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Store a new postback delivery (Manual injection).

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-deliveries" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"postback_profile_id\": 16,
    \"postback_type_id\": 16,
    \"campaign_id\": 16,
    \"order_id\": 16,
    \"subscription_id\": 16,
    \"dedupe_key\": \"n\",
    \"status\": \"g\",
    \"attempt_count\": 12,
    \"next_attempt_at\": \"2026-04-27T19:50:13\",
    \"last_attempt_at\": \"2026-04-27T19:50:13\"
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-deliveries"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "postback_profile_id": 16,
    "postback_type_id": 16,
    "campaign_id": 16,
    "order_id": 16,
    "subscription_id": 16,
    "dedupe_key": "n",
    "status": "g",
    "attempt_count": 12,
    "next_attempt_at": "2026-04-27T19:50:13",
    "last_attempt_at": "2026-04-27T19:50:13"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/admin/v1/postback-deliveries

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

postback_profile_id   integer     

The id of an existing record in the postback_profile table. Example: 16

postback_type_id   integer     

The id of an existing record in the postback_type table. Example: 16

campaign_id   integer  optional    

The campaign_id of an existing record in the campaigns table. Example: 16

order_id   integer  optional    

The order_id of an existing record in the orders table. Example: 16

subscription_id   integer  optional    

The subscription_id of an existing record in the subscriptions table. Example: 16

dedupe_key   string     

Must not be greater than 255 characters. Example: n

status   string     

Must not be greater than 50 characters. Example: g

attempt_count   integer  optional    

Must be at least 0. Example: 12

next_attempt_at   string  optional    

Must be a valid date. Example: 2026-04-27T19:50:13

last_attempt_at   string  optional    

Must be a valid date. Example: 2026-04-27T19:50:13

Display a specific postback delivery.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-deliveries/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-deliveries/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/postback-deliveries/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the postback delivery. Example: architecto

Update the specified postback delivery (e.g. manual status override).

requires authentication

Example request:
curl --request PUT \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-deliveries/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"postback_profile_id\": 16,
    \"postback_type_id\": 16,
    \"campaign_id\": 16,
    \"order_id\": 16,
    \"subscription_id\": 16,
    \"dedupe_key\": \"n\",
    \"status\": \"g\",
    \"attempt_count\": 12,
    \"next_attempt_at\": \"2026-04-27T19:50:13\",
    \"last_attempt_at\": \"2026-04-27T19:50:13\"
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-deliveries/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "postback_profile_id": 16,
    "postback_type_id": 16,
    "campaign_id": 16,
    "order_id": 16,
    "subscription_id": 16,
    "dedupe_key": "n",
    "status": "g",
    "attempt_count": 12,
    "next_attempt_at": "2026-04-27T19:50:13",
    "last_attempt_at": "2026-04-27T19:50:13"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/admin/v1/postback-deliveries/{id}

PATCH api/admin/v1/postback-deliveries/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the postback delivery. Example: architecto

Body Parameters

postback_profile_id   integer  optional    

The id of an existing record in the postback_profile table. Example: 16

postback_type_id   integer  optional    

The id of an existing record in the postback_type table. Example: 16

campaign_id   integer  optional    

The campaign_id of an existing record in the campaigns table. Example: 16

order_id   integer  optional    

The order_id of an existing record in the orders table. Example: 16

subscription_id   integer  optional    

The subscription_id of an existing record in the subscriptions table. Example: 16

dedupe_key   string  optional    

Must not be greater than 255 characters. Example: n

status   string  optional    

Must not be greater than 50 characters. Example: g

attempt_count   integer  optional    

Must be at least 0. Example: 12

next_attempt_at   string  optional    

Must be a valid date. Example: 2026-04-27T19:50:13

last_attempt_at   string  optional    

Must be a valid date. Example: 2026-04-27T19:50:13

Remove the specified postback delivery.

requires authentication

Example request:
curl --request DELETE \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-deliveries/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-deliveries/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/admin/v1/postback-deliveries/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the postback delivery. Example: architecto

Admin Postback Logs

Paginated list of postback logs.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-logs" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-logs"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/postback-logs

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Store a new postback log (Manual injection - rare but supported).

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-logs" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"postback_delivery_id\": 16,
    \"request_url\": \"http:\\/\\/bailey.com\\/\",
    \"request_method\": \"miyvdl\",
    \"request_body\": \"architecto\",
    \"response_status_code\": 16,
    \"response_body\": \"architecto\",
    \"response_time_ms\": 39,
    \"error_message\": \"architecto\"
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-logs"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "postback_delivery_id": 16,
    "request_url": "http:\/\/bailey.com\/",
    "request_method": "miyvdl",
    "request_body": "architecto",
    "response_status_code": 16,
    "response_body": "architecto",
    "response_time_ms": 39,
    "error_message": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/admin/v1/postback-logs

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

postback_delivery_id   integer     

The id of an existing record in the postback_deliveries table. Example: 16

request_url   string     

Must be a valid URL. Must not be greater than 2048 characters. Example: http://bailey.com/

request_method   string     

Must not be greater than 10 characters. Example: miyvdl

request_headers   object  optional    
request_body   string  optional    

Example: architecto

response_status_code   integer  optional    

Example: 16

response_headers   object  optional    
response_body   string  optional    

Example: architecto

response_time_ms   integer  optional    

Must be at least 0. Example: 39

error_message   string  optional    

Example: architecto

Display a specific postback log.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-logs/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-logs/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/postback-logs/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the postback log. Example: architecto

Update the specified postback log.

requires authentication

Example request:
curl --request PUT \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-logs/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"postback_delivery_id\": 16,
    \"request_url\": \"http:\\/\\/bailey.com\\/\",
    \"request_method\": \"miyvdl\",
    \"request_body\": \"architecto\",
    \"response_status_code\": 16,
    \"response_body\": \"architecto\",
    \"response_time_ms\": 39,
    \"error_message\": \"architecto\"
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-logs/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "postback_delivery_id": 16,
    "request_url": "http:\/\/bailey.com\/",
    "request_method": "miyvdl",
    "request_body": "architecto",
    "response_status_code": 16,
    "response_body": "architecto",
    "response_time_ms": 39,
    "error_message": "architecto"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/admin/v1/postback-logs/{id}

PATCH api/admin/v1/postback-logs/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the postback log. Example: architecto

Body Parameters

postback_delivery_id   integer  optional    

The id of an existing record in the postback_deliveries table. Example: 16

request_url   string  optional    

Must be a valid URL. Must not be greater than 2048 characters. Example: http://bailey.com/

request_method   string  optional    

Must not be greater than 10 characters. Example: miyvdl

request_headers   object  optional    
request_body   string  optional    

Example: architecto

response_status_code   integer  optional    

Example: 16

response_headers   object  optional    
response_body   string  optional    

Example: architecto

response_time_ms   integer  optional    

Must be at least 0. Example: 39

error_message   string  optional    

Example: architecto

Remove the specified postback log.

requires authentication

Example request:
curl --request DELETE \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-logs/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-logs/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/admin/v1/postback-logs/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the postback log. Example: architecto

Admin Postback Profiles

Paginated list of postback profiles.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-profiles" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-profiles"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/postback-profiles

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Store a new postback profile.

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-profiles" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"description\": \"Et animi quos velit et fugiat.\",
    \"url\": \"http:\\/\\/www.dach.com\\/mollitia-modi-deserunt-aut-ab-provident-perspiciatis-quo.html\",
    \"http_method_id\": 16,
    \"content_type\": \"n\",
    \"is_active\": true,
    \"is_global\": false,
    \"timeout_seconds\": 7,
    \"retry_count\": 6,
    \"retry_delay_seconds\": [
        27
    ],
    \"auth_type\": \"i\",
    \"body_template\": \"architecto\"
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-profiles"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "description": "Et animi quos velit et fugiat.",
    "url": "http:\/\/www.dach.com\/mollitia-modi-deserunt-aut-ab-provident-perspiciatis-quo.html",
    "http_method_id": 16,
    "content_type": "n",
    "is_active": true,
    "is_global": false,
    "timeout_seconds": 7,
    "retry_count": 6,
    "retry_delay_seconds": [
        27
    ],
    "auth_type": "i",
    "body_template": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/admin/v1/postback-profiles

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

name   string     

Must not be greater than 255 characters. Example: b

description   string  optional    

Must not be greater than 1000 characters. Example: Et animi quos velit et fugiat.

url   string     

Must be a valid URL. Must not be greater than 2048 characters. Example: http://www.dach.com/mollitia-modi-deserunt-aut-ab-provident-perspiciatis-quo.html

http_method_id   integer     

The id of an existing record in the http_method table. Example: 16

content_type   string     

Must not be greater than 100 characters. Example: n

is_active   boolean  optional    

Example: true

is_global   boolean  optional    

Example: false

timeout_seconds   integer  optional    

Must be at least 1. Must not be greater than 60. Example: 7

retry_count   integer  optional    

Must be at least 0. Must not be greater than 10. Example: 6

retry_delay_seconds   integer[]  optional    

Must be at least 1.

auth_type   string  optional    

Must not be greater than 50 characters. Example: i

headers   object  optional    
body_template   string  optional    

Example: architecto

Display a specific postback profile.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-profiles/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-profiles/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/postback-profiles/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the postback profile. Example: architecto

Update the specified postback profile.

requires authentication

Example request:
curl --request PUT \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-profiles/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"description\": \"Et animi quos velit et fugiat.\",
    \"url\": \"http:\\/\\/www.dach.com\\/mollitia-modi-deserunt-aut-ab-provident-perspiciatis-quo.html\",
    \"http_method_id\": 16,
    \"content_type\": \"n\",
    \"is_active\": true,
    \"is_global\": false,
    \"timeout_seconds\": 7,
    \"retry_count\": 6,
    \"retry_delay_seconds\": [
        27
    ],
    \"auth_type\": \"i\",
    \"body_template\": \"architecto\"
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-profiles/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "description": "Et animi quos velit et fugiat.",
    "url": "http:\/\/www.dach.com\/mollitia-modi-deserunt-aut-ab-provident-perspiciatis-quo.html",
    "http_method_id": 16,
    "content_type": "n",
    "is_active": true,
    "is_global": false,
    "timeout_seconds": 7,
    "retry_count": 6,
    "retry_delay_seconds": [
        27
    ],
    "auth_type": "i",
    "body_template": "architecto"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/admin/v1/postback-profiles/{id}

PATCH api/admin/v1/postback-profiles/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the postback profile. Example: architecto

Body Parameters

name   string  optional    

Must not be greater than 255 characters. Example: b

description   string  optional    

Must not be greater than 1000 characters. Example: Et animi quos velit et fugiat.

url   string  optional    

Must be a valid URL. Must not be greater than 2048 characters. Example: http://www.dach.com/mollitia-modi-deserunt-aut-ab-provident-perspiciatis-quo.html

http_method_id   integer  optional    

The id of an existing record in the http_method table. Example: 16

content_type   string  optional    

Must not be greater than 100 characters. Example: n

is_active   boolean  optional    

Example: true

is_global   boolean  optional    

Example: false

timeout_seconds   integer  optional    

Must be at least 1. Must not be greater than 60. Example: 7

retry_count   integer  optional    

Must be at least 0. Must not be greater than 10. Example: 6

retry_delay_seconds   integer[]  optional    

Must be at least 1.

auth_type   string  optional    

Must not be greater than 50 characters. Example: i

headers   object  optional    
body_template   string  optional    

Example: architecto

Remove the specified postback profile.

requires authentication

Example request:
curl --request DELETE \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-profiles/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-profiles/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/admin/v1/postback-profiles/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the postback profile. Example: architecto

Admin Postback Triggers

Paginated list of postback triggers.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-triggers" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-triggers"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/postback-triggers

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Store a new postback trigger.

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-triggers" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"postback_profile_id\": 16,
    \"postback_type_id\": 16,
    \"is_active\": true
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-triggers"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "postback_profile_id": 16,
    "postback_type_id": 16,
    "is_active": true
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/admin/v1/postback-triggers

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

postback_profile_id   integer     

The id of an existing record in the postback_profile table. Example: 16

postback_type_id   integer     

The id of an existing record in the postback_type table. Example: 16

filter_conditions   object  optional    
is_active   boolean  optional    

Example: true

Display a specific postback trigger.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-triggers/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-triggers/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/postback-triggers/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the postback trigger. Example: architecto

Update the specified postback trigger.

requires authentication

Example request:
curl --request PUT \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-triggers/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"postback_profile_id\": 16,
    \"postback_type_id\": 16,
    \"is_active\": false
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-triggers/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "postback_profile_id": 16,
    "postback_type_id": 16,
    "is_active": false
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/admin/v1/postback-triggers/{id}

PATCH api/admin/v1/postback-triggers/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the postback trigger. Example: architecto

Body Parameters

postback_profile_id   integer  optional    

The id of an existing record in the postback_profile table. Example: 16

postback_type_id   integer  optional    

The id of an existing record in the postback_type table. Example: 16

filter_conditions   object  optional    
is_active   boolean  optional    

Example: false

Remove the specified postback trigger.

requires authentication

Example request:
curl --request DELETE \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-triggers/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-triggers/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/admin/v1/postback-triggers/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the postback trigger. Example: architecto

Admin Postback Types

Paginated list of postback types.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-types" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-types"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/postback-types

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Store a new postback type.

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-types" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"description\": \"Et animi quos velit et fugiat.\",
    \"event_key\": \"d\",
    \"is_active\": false
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-types"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "description": "Et animi quos velit et fugiat.",
    "event_key": "d",
    "is_active": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/admin/v1/postback-types

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

name   string     

Must not be greater than 255 characters. Example: b

description   string  optional    

Must not be greater than 1000 characters. Example: Et animi quos velit et fugiat.

event_key   string     

Must not be greater than 150 characters. Example: d

is_active   boolean  optional    

Example: false

Display a specific postback type.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-types/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-types/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/postback-types/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the postback type. Example: architecto

Update the specified postback type.

requires authentication

Example request:
curl --request PUT \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-types/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"description\": \"Et animi quos velit et fugiat.\",
    \"event_key\": \"d\",
    \"is_active\": false
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-types/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "description": "Et animi quos velit et fugiat.",
    "event_key": "d",
    "is_active": false
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/admin/v1/postback-types/{id}

PATCH api/admin/v1/postback-types/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the postback type. Example: architecto

Body Parameters

name   string  optional    

Must not be greater than 255 characters. Example: b

description   string  optional    

Must not be greater than 1000 characters. Example: Et animi quos velit et fugiat.

event_key   string  optional    

Must not be greater than 150 characters. Example: d

is_active   boolean  optional    

Example: false

Remove the specified postback type.

requires authentication

Example request:
curl --request DELETE \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-types/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/postback-types/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/admin/v1/postback-types/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the postback type. Example: architecto

Admin Products

Display a paginated listing of products.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/products" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/products"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/products

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Display the specified product.

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/admin/v1/products/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/products/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/v1/products/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the product. Example: architecto

Store a newly created product.

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/products" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Weight Loss Kit\",
    \"sku\": \"WLK-001\",
    \"vertical\": 1,
    \"category_id\": 1,
    \"price\": 49.99,
    \"price_type\": 0,
    \"cost_of_goods\": 12.5,
    \"max_quantity\": 10,
    \"max_items\": 5,
    \"description\": \"A comprehensive weight loss kit.\",
    \"is_trial_product\": false,
    \"is_taxable\": true,
    \"tax_code\": \"TX001\",
    \"single_purchase_limit\": false,
    \"is_licensed\": false,
    \"is_shippable\": true,
    \"weight\": 500,
    \"declared_value\": 25,
    \"digital_download\": false,
    \"signature_confirmation\": false,
    \"delivery_confirmation\": false,
    \"is_bundle\": false,
    \"is_custom_bundle\": false
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/products"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "Weight Loss Kit",
    "sku": "WLK-001",
    "vertical": 1,
    "category_id": 1,
    "price": 49.99,
    "price_type": 0,
    "cost_of_goods": 12.5,
    "max_quantity": 10,
    "max_items": 5,
    "description": "A comprehensive weight loss kit.",
    "is_trial_product": false,
    "is_taxable": true,
    "tax_code": "TX001",
    "single_purchase_limit": false,
    "is_licensed": false,
    "is_shippable": true,
    "weight": 500,
    "declared_value": 25,
    "digital_download": false,
    "signature_confirmation": false,
    "delivery_confirmation": false,
    "is_bundle": false,
    "is_custom_bundle": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/admin/v1/products

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

name   string     

Product name. Must not be greater than 250 characters. Example: Weight Loss Kit

sku   string     

Product SKU. Must not be greater than 50 characters. Example: WLK-001

vertical   integer  optional    

Vertical identifier. Example: 1

category_id   integer     

ID of the category. The id of an existing record in the category table. Example: 1

price   number     

Product price. Must be at least 0. Example: 49.99

price_type   integer  optional    

Price type identifier. Example: 0

cost_of_goods   number     

Cost of goods. Must be at least 0. Example: 12.5

max_quantity   integer     

Maximum quantity per order. Must be at least 0. Example: 10

max_items   integer  optional    

Maximum items allowed. Must be at least 0. Example: 5

description   string     

Product description. Example: A comprehensive weight loss kit.

is_trial_product   boolean  optional    

Whether this is a trial product. Example: false

is_taxable   boolean  optional    

Whether the product is taxable. Example: true

tax_code   string  optional    

Tax code. Must not be greater than 50 characters. Example: TX001

single_purchase_limit   boolean  optional    

Limit to single purchase. Example: false

is_licensed   boolean  optional    

Whether the product is licensed. Example: false

is_shippable   boolean  optional    

Whether the product is shippable. Example: true

weight   integer     

Product weight in grams. Must be at least 0. Example: 500

declared_value   number  optional    

Declared customs value. Must be at least 0. Example: 25

digital_download   boolean  optional    

Whether this is a digital download. Example: false

signature_confirmation   boolean  optional    

Require signature on delivery. Example: false

delivery_confirmation   boolean  optional    

Require delivery confirmation. Example: false

is_bundle   boolean  optional    

Whether this is a bundle product. Example: false

is_custom_bundle   boolean  optional    

Whether this is a custom bundle. Example: false

Update the specified product.

requires authentication

Example request:
curl --request PATCH \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/products/architecto" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Weight Loss Kit\",
    \"sku\": \"WLK-001\",
    \"vertical\": 1,
    \"category_id\": 1,
    \"price\": 49.99,
    \"price_type\": 0,
    \"cost_of_goods\": 12.5,
    \"max_quantity\": 10,
    \"max_items\": 5,
    \"description\": \"A comprehensive weight loss kit.\",
    \"is_trial_product\": false,
    \"is_taxable\": true,
    \"tax_code\": \"TX001\",
    \"single_purchase_limit\": false,
    \"is_licensed\": false,
    \"is_shippable\": true,
    \"weight\": 500,
    \"declared_value\": 25,
    \"digital_download\": false,
    \"signature_confirmation\": false,
    \"delivery_confirmation\": false,
    \"is_bundle\": false,
    \"is_custom_bundle\": false
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/products/architecto"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "Weight Loss Kit",
    "sku": "WLK-001",
    "vertical": 1,
    "category_id": 1,
    "price": 49.99,
    "price_type": 0,
    "cost_of_goods": 12.5,
    "max_quantity": 10,
    "max_items": 5,
    "description": "A comprehensive weight loss kit.",
    "is_trial_product": false,
    "is_taxable": true,
    "tax_code": "TX001",
    "single_purchase_limit": false,
    "is_licensed": false,
    "is_shippable": true,
    "weight": 500,
    "declared_value": 25,
    "digital_download": false,
    "signature_confirmation": false,
    "delivery_confirmation": false,
    "is_bundle": false,
    "is_custom_bundle": false
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PATCH api/admin/v1/products/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the product. Example: architecto

Body Parameters

name   string  optional    

Product name. Must not be greater than 250 characters. Example: Weight Loss Kit

sku   string  optional    

Product SKU. Must not be greater than 50 characters. Example: WLK-001

vertical   integer  optional    

Vertical identifier. Example: 1

category_id   integer  optional    

ID of the category. The id of an existing record in the category table. Example: 1

price   number  optional    

Product price. Must be at least 0. Example: 49.99

price_type   integer  optional    

Price type identifier. Example: 0

cost_of_goods   number  optional    

Cost of goods. Must be at least 0. Example: 12.5

max_quantity   integer  optional    

Maximum quantity per order. Must be at least 0. Example: 10

max_items   integer  optional    

Maximum items allowed. Must be at least 0. Example: 5

description   string  optional    

Product description. Example: A comprehensive weight loss kit.

is_trial_product   boolean  optional    

Whether this is a trial product. Example: false

is_taxable   boolean  optional    

Whether the product is taxable. Example: true

tax_code   string  optional    

Tax code. Must not be greater than 50 characters. Example: TX001

single_purchase_limit   boolean  optional    

Limit to single purchase. Example: false

is_licensed   boolean  optional    

Whether the product is licensed. Example: false

is_shippable   boolean  optional    

Whether the product is shippable. Example: true

weight   integer  optional    

Product weight in grams. Must be at least 0. Example: 500

declared_value   number  optional    

Declared customs value. Must be at least 0. Example: 25

digital_download   boolean  optional    

Whether this is a digital download. Example: false

signature_confirmation   boolean  optional    

Require signature on delivery. Example: false

delivery_confirmation   boolean  optional    

Require delivery confirmation. Example: false

is_bundle   boolean  optional    

Whether this is a bundle product. Example: false

is_custom_bundle   boolean  optional    

Whether this is a custom bundle. Example: false

Billing Models

Display the specified billing model

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/v1/billing_model_view" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/billing_model_view"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
x-request-id: b371f51e-b6dd-4efc-ab90-ad8f86ed5793
x-ratelimit-limit: 60
x-ratelimit-remaining: 56
access-control-allow-origin: *
 

{
    "success": false,
    "message": "Billing model not found",
    "version": "v1"
}
 

Request      

GET api/v1/billing_model_view

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Display a listing of billing models

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/v1/billing-models" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/billing-models"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-request-id: ba01067a-d87b-402e-8b24-daf8c0f9e359
x-ratelimit-limit: 60
x-ratelimit-remaining: 55
access-control-allow-origin: *
 

{
    "success": true,
    "message": "Billing models retrieved successfully",
    "data": [
        {
            "billing_model_id": 2,
            "name": "One Time Purchase",
            "bill_by_type_id": 0,
            "interval_day": 0,
            "interval_week": 0,
            "preserve_quantity": 0,
            "bill_by_days": 0,
            "expire_cycles": 1,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:22.000000Z"
        },
        {
            "billing_model_id": 4,
            "name": "1 Month Subscription (32 Day Cycle)",
            "bill_by_type_id": 1,
            "interval_day": 0,
            "interval_week": 0,
            "preserve_quantity": 1,
            "bill_by_days": 32,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:22.000000Z"
        },
        {
            "billing_model_id": 6,
            "name": "2 Month Subscritpion (62 Day Cycle)",
            "bill_by_type_id": 1,
            "interval_day": 1,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 62,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:23.000000Z"
        },
        {
            "billing_model_id": 8,
            "name": "4 Month Subscription (123 Day Cycle)",
            "bill_by_type_id": 1,
            "interval_day": 0,
            "interval_week": 0,
            "preserve_quantity": 1,
            "bill_by_days": 123,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:24.000000Z"
        },
        {
            "billing_model_id": 10,
            "name": "6 Month Subscription (186 Day Cycle)",
            "bill_by_type_id": 1,
            "interval_day": 0,
            "interval_week": 0,
            "preserve_quantity": 1,
            "bill_by_days": 186,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:25.000000Z"
        },
        {
            "billing_model_id": 13,
            "name": "3 Month Subscription (92 Day Cycle)",
            "bill_by_type_id": 1,
            "interval_day": 3,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 92,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:26.000000Z"
        },
        {
            "billing_model_id": 14,
            "name": "1 Month",
            "bill_by_type_id": 5,
            "interval_day": 1,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:27.000000Z"
        },
        {
            "billing_model_id": 15,
            "name": "2 Months",
            "bill_by_type_id": 5,
            "interval_day": 2,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 15,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:27.000000Z"
        },
        {
            "billing_model_id": 16,
            "name": "3 Months",
            "bill_by_type_id": 5,
            "interval_day": 3,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:28.000000Z"
        },
        {
            "billing_model_id": 17,
            "name": "4 Months",
            "bill_by_type_id": 5,
            "interval_day": 4,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:28.000000Z"
        },
        {
            "billing_model_id": 18,
            "name": "6 Months",
            "bill_by_type_id": 5,
            "interval_day": 6,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:29.000000Z"
        },
        {
            "billing_model_id": 19,
            "name": "45 Day Subscription (45 Day Cycle)",
            "bill_by_type_id": 1,
            "interval_day": 1,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 32,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-11-25T23:45:13.000000Z",
            "updated_at": "2025-11-25T23:46:29.000000Z"
        },
        {
            "billing_model_id": 20,
            "name": "30 Day Trial",
            "bill_by_type_id": 1,
            "interval_day": 1,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 30,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-11-25T23:45:14.000000Z",
            "updated_at": "2025-11-25T23:46:29.000000Z"
        },
        {
            "billing_model_id": 21,
            "name": "Ships Every Month",
            "bill_by_type_id": 1,
            "interval_day": 1,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 30,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:30.000000Z"
        },
        {
            "billing_model_id": 22,
            "name": "Ships Every 3 Months (90 days)",
            "bill_by_type_id": 1,
            "interval_day": 0,
            "interval_week": 0,
            "preserve_quantity": 1,
            "bill_by_days": 90,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:30.000000Z"
        }
    ],
    "meta": {
        "current_page": 1,
        "per_page": 15,
        "total": 43,
        "last_page": 3,
        "from": 1,
        "to": 15
    },
    "links": {
        "first": "http://localhost/api/v1/billing-models?page=1",
        "last": "http://localhost/api/v1/billing-models?page=3",
        "prev": null,
        "next": "http://localhost/api/v1/billing-models?page=2"
    },
    "version": "v1"
}
 

Request      

GET api/v1/billing-models

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Display the specified billing model

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/v1/billing-models/2" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/billing-models/2"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-request-id: 217d2500-2e5a-4471-923d-6f3c37f37eb7
x-ratelimit-limit: 60
x-ratelimit-remaining: 54
access-control-allow-origin: *
 

{
    "success": true,
    "message": "Billing model retrieved successfully",
    "data": {
        "billing_model_id": 2,
        "name": "One Time Purchase",
        "bill_by_type_id": 0,
        "interval_day": 0,
        "interval_week": 0,
        "preserve_quantity": 0,
        "bill_by_days": 0,
        "expire_cycles": 1,
        "buffer_days": 0,
        "created_at": "2025-10-01T05:41:07.000000Z",
        "updated_at": "2025-11-25T23:46:22.000000Z",
        "billing_model_dates": []
    },
    "version": "v1"
}
 

Request      

GET api/v1/billing-models/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the billing model. Example: 2

Store a newly created billing model

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/v1/billing-models" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"bill_by_type_id\": 16,
    \"interval_day\": 39,
    \"interval_week\": 84,
    \"preserve_quantity\": 12,
    \"bill_by_days\": 77,
    \"expire_cycles\": 8,
    \"buffer_days\": 76
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/billing-models"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "bill_by_type_id": 16,
    "interval_day": 39,
    "interval_week": 84,
    "preserve_quantity": 12,
    "bill_by_days": 77,
    "expire_cycles": 8,
    "buffer_days": 76
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/billing-models

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

name   string     

Must not be greater than 100 characters. Example: b

bill_by_type_id   integer     

Example: 16

interval_day   integer  optional    

Must be at least 0. Example: 39

interval_week   integer  optional    

Must be at least 0. Example: 84

preserve_quantity   integer  optional    

Must be at least 0. Example: 12

bill_by_days   integer  optional    

Must be at least 0. Example: 77

expire_cycles   integer  optional    

Must be at least 0. Example: 8

buffer_days   integer  optional    

Must be at least 0. Example: 76

Update the specified billing model

requires authentication

Example request:
curl --request PUT \
    "https://slick.dev.prm-lfmd.com/api/v1/billing-models/2" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"bill_by_type_id\": 16,
    \"interval_day\": 39,
    \"interval_week\": 84,
    \"preserve_quantity\": 12,
    \"bill_by_days\": 77,
    \"expire_cycles\": 8,
    \"buffer_days\": 76
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/billing-models/2"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "bill_by_type_id": 16,
    "interval_day": 39,
    "interval_week": 84,
    "preserve_quantity": 12,
    "bill_by_days": 77,
    "expire_cycles": 8,
    "buffer_days": 76
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/v1/billing-models/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the billing model. Example: 2

Body Parameters

name   string  optional    

Must not be greater than 100 characters. Example: b

bill_by_type_id   integer  optional    

Example: 16

interval_day   integer  optional    

Must be at least 0. Example: 39

interval_week   integer  optional    

Must be at least 0. Example: 84

preserve_quantity   integer  optional    

Must be at least 0. Example: 12

bill_by_days   integer  optional    

Must be at least 0. Example: 77

expire_cycles   integer  optional    

Must be at least 0. Example: 8

buffer_days   integer  optional    

Must be at least 0. Example: 76

Remove the specified billing model

requires authentication

Example request:
curl --request DELETE \
    "https://slick.dev.prm-lfmd.com/api/v1/billing-models/2" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/billing-models/2"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/v1/billing-models/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the billing model. Example: 2

Billing Models v2

Display a listing of billing models V2: Enhanced with additional relationships and filtering

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/v2/billing-models" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v2/billing-models"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-request-id: 054b968a-9be3-478a-b388-3e7cc9135cb1
x-ratelimit-limit: 60
x-ratelimit-remaining: 53
access-control-allow-origin: *
 

{
    "success": true,
    "message": "Billing models retrieved successfully",
    "data": [
        {
            "billing_model_id": 47,
            "name": "1 Month",
            "bill_by_type_id": 5,
            "interval_day": 1,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:41.000000Z",
            "billing_model_dates": []
        },
        {
            "billing_model_id": 14,
            "name": "1 Month",
            "bill_by_type_id": 5,
            "interval_day": 1,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:27.000000Z",
            "billing_model_dates": []
        },
        {
            "billing_model_id": 4,
            "name": "1 Month Subscription (32 Day Cycle)",
            "bill_by_type_id": 1,
            "interval_day": 0,
            "interval_week": 0,
            "preserve_quantity": 1,
            "bill_by_days": 32,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:22.000000Z",
            "billing_model_dates": []
        },
        {
            "billing_model_id": 25,
            "name": "12 Month Subscription",
            "bill_by_type_id": 1,
            "interval_day": 1,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 365,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-11-25T23:45:17.000000Z",
            "updated_at": "2025-11-25T23:46:32.000000Z",
            "billing_model_dates": []
        },
        {
            "billing_model_id": 54,
            "name": "12 Months",
            "bill_by_type_id": 0,
            "interval_day": 1,
            "interval_week": 1,
            "preserve_quantity": 0,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-10-01T05:41:07.000000Z",
            "billing_model_dates": []
        },
        {
            "billing_model_id": 28,
            "name": "12 Months",
            "bill_by_type_id": 5,
            "interval_day": 12,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-11-25T23:45:18.000000Z",
            "updated_at": "2025-11-25T23:46:33.000000Z",
            "billing_model_dates": []
        },
        {
            "billing_model_id": 24,
            "name": "12 Months",
            "bill_by_type_id": 5,
            "interval_day": 12,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:31.000000Z",
            "billing_model_dates": []
        },
        {
            "billing_model_id": 37,
            "name": "12 months - ED BPG",
            "bill_by_type_id": 5,
            "interval_day": 12,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:37.000000Z",
            "billing_model_dates": []
        },
        {
            "billing_model_id": 38,
            "name": "2 Month Subscription - Discounted",
            "bill_by_type_id": 5,
            "interval_day": 2,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:37.000000Z",
            "billing_model_dates": []
        },
        {
            "billing_model_id": 97,
            "name": "2 Month Subscritpion (55 Day Cycle)",
            "bill_by_type_id": 0,
            "interval_day": 1,
            "interval_week": 1,
            "preserve_quantity": 0,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-10-01T05:41:07.000000Z",
            "billing_model_dates": []
        },
        {
            "billing_model_id": 6,
            "name": "2 Month Subscritpion (62 Day Cycle)",
            "bill_by_type_id": 1,
            "interval_day": 1,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 62,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:23.000000Z",
            "billing_model_dates": []
        },
        {
            "billing_model_id": 15,
            "name": "2 Months",
            "bill_by_type_id": 5,
            "interval_day": 2,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 15,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:27.000000Z",
            "billing_model_dates": []
        },
        {
            "billing_model_id": 48,
            "name": "3 Month - Cialis Daily",
            "bill_by_type_id": 5,
            "interval_day": 3,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-11-25T23:45:28.000000Z",
            "updated_at": "2025-11-25T23:46:41.000000Z",
            "billing_model_dates": []
        },
        {
            "billing_model_id": 13,
            "name": "3 Month Subscription (92 Day Cycle)",
            "bill_by_type_id": 1,
            "interval_day": 3,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 92,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:26.000000Z",
            "billing_model_dates": []
        },
        {
            "billing_model_id": 32,
            "name": "3 Months",
            "bill_by_type_id": 5,
            "interval_day": 3,
            "interval_week": 1,
            "preserve_quantity": 1,
            "bill_by_days": 0,
            "expire_cycles": 0,
            "buffer_days": 0,
            "created_at": "2025-10-01T05:41:07.000000Z",
            "updated_at": "2025-11-25T23:46:35.000000Z",
            "billing_model_dates": []
        }
    ],
    "meta": {
        "current_page": 1,
        "per_page": 15,
        "total": 43,
        "last_page": 3,
        "from": 1,
        "to": 15
    },
    "links": {
        "first": "http://localhost/api/v2/billing-models?page=1",
        "last": "http://localhost/api/v2/billing-models?page=3",
        "prev": null,
        "next": "http://localhost/api/v2/billing-models?page=2"
    },
    "version": "v2"
}
 

Request      

GET api/v2/billing-models

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Display the specified billing model V2: Includes more relationships

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/v2/billing-models/2" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v2/billing-models/2"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-request-id: 944f3383-10ed-4683-bd1e-0338bb4c3f58
x-ratelimit-limit: 60
x-ratelimit-remaining: 52
access-control-allow-origin: *
 

{
    "success": true,
    "message": "Billing model retrieved successfully",
    "data": {
        "billing_model_id": 2,
        "name": "One Time Purchase",
        "bill_by_type_id": 0,
        "interval_day": 0,
        "interval_week": 0,
        "preserve_quantity": 0,
        "bill_by_days": 0,
        "expire_cycles": 1,
        "buffer_days": 0,
        "created_at": "2025-10-01T05:41:07.000000Z",
        "updated_at": "2025-11-25T23:46:22.000000Z",
        "billing_model_dates": [],
        "campaign_offer_billing_models": []
    },
    "version": "v2"
}
 

Request      

GET api/v2/billing-models/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the billing model. Example: 2

Store a newly created billing model V2: Enhanced validation and default values

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/v2/billing-models" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"bill_by_type_id\": 16,
    \"interval_day\": 39,
    \"interval_week\": 84,
    \"preserve_quantity\": 12,
    \"bill_by_days\": 77,
    \"expire_cycles\": 8,
    \"buffer_days\": 76
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v2/billing-models"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "bill_by_type_id": 16,
    "interval_day": 39,
    "interval_week": 84,
    "preserve_quantity": 12,
    "bill_by_days": 77,
    "expire_cycles": 8,
    "buffer_days": 76
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v2/billing-models

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

name   string     

Must not be greater than 100 characters. Example: b

bill_by_type_id   integer     

Example: 16

interval_day   integer  optional    

Must be at least 0. Example: 39

interval_week   integer  optional    

Must be at least 0. Example: 84

preserve_quantity   integer  optional    

Must be at least 0. Example: 12

bill_by_days   integer  optional    

Must be at least 0. Example: 77

expire_cycles   integer  optional    

Must be at least 0. Example: 8

buffer_days   integer  optional    

Must be at least 0. Example: 76

Update the specified billing model V2: Enhanced update with relationship support

requires authentication

Example request:
curl --request PUT \
    "https://slick.dev.prm-lfmd.com/api/v2/billing-models/2" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"bill_by_type_id\": 16,
    \"interval_day\": 39,
    \"interval_week\": 84,
    \"preserve_quantity\": 12,
    \"bill_by_days\": 77,
    \"expire_cycles\": 8,
    \"buffer_days\": 76
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v2/billing-models/2"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "bill_by_type_id": 16,
    "interval_day": 39,
    "interval_week": 84,
    "preserve_quantity": 12,
    "bill_by_days": 77,
    "expire_cycles": 8,
    "buffer_days": 76
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/v2/billing-models/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the billing model. Example: 2

Body Parameters

name   string  optional    

Must not be greater than 100 characters. Example: b

bill_by_type_id   integer  optional    

Example: 16

interval_day   integer  optional    

Must be at least 0. Example: 39

interval_week   integer  optional    

Must be at least 0. Example: 84

preserve_quantity   integer  optional    

Must be at least 0. Example: 12

bill_by_days   integer  optional    

Must be at least 0. Example: 77

expire_cycles   integer  optional    

Must be at least 0. Example: 8

buffer_days   integer  optional    

Must be at least 0. Example: 76

Remove the specified billing model

requires authentication

Example request:
curl --request DELETE \
    "https://slick.dev.prm-lfmd.com/api/v2/billing-models/2" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v2/billing-models/2"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/v2/billing-models/{id}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the billing model. Example: 2

Endpoints

Store a newly created user in storage.

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/api_user" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/api_user"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/api_user

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Requests an API token

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/api_user/get_token" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"gbailey@example.net\",
    \"password\": \"architecto\"
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/api_user/get_token"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "gbailey@example.net",
    "password": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/api_user/get_token

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

email   string     

Must be a valid email address. Example: gbailey@example.net

password   string     

Example: architecto

GET api/health-check

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/health-check" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/health-check"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-request-id: b74e8b49-fd4a-4171-b047-4f3ce34bcec3
access-control-allow-origin: *
 

{
    "status": "ok",
    "php": "8.4.18",
    "laravel": "12.14.1"
}
 

Request      

GET api/health-check

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/health

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/v1/health" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/health"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-request-id: 56b8aef0-3eeb-43da-b380-a6c5e4bce0f5
access-control-allow-origin: *
 

{
    "status": "ok",
    "version": "v1",
    "timestamp": "2026-04-27T19:50:10+00:00"
}
 

Request      

GET api/v1/health

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

POST /api/v1/auth/admin/dev/issue-token

requires authentication

DEV-ONLY: Issue a Sanctum token for an existing, active AdminUser. Guarded by environment, feature flag, and IP allowlist. This endpoint must NEVER reach production.

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/v1/auth/admin/dev/issue-token" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"gbailey@example.net\"
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/auth/admin/dev/issue-token"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "gbailey@example.net"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/auth/admin/dev/issue-token

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

email   string     

Must be a valid email address. Example: gbailey@example.net

GET api/v1/integrations/ping

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/v1/integrations/ping" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/integrations/ping"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-request-id: e317c00a-eb85-4f1e-bb4c-55223000ef3d
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
access-control-allow-origin: *
 

{
    "ok": true
}
 

Request      

GET api/v1/integrations/ping

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v2/health

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/v2/health" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v2/health"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-request-id: 72617b98-cfcc-4275-b475-60b4c48999b6
access-control-allow-origin: *
 

{
    "status": "ok",
    "version": "v2",
    "timestamp": "2026-04-27T19:50:12+00:00"
}
 

Request      

GET api/v2/health

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

POST /api/admin/v1/system-settings/alerting

requires authentication

Upserts one alerting setting under the plan §7.2 W1-W6 contract.

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/system-settings/alerting" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/system-settings/alerting"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/admin/v1/system-settings/alerting

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

DELETE /api/admin/v1/system-settings/alerting/{key}

requires authentication

Removes the DB override row; subsequent reads fall back to config.

Example request:
curl --request DELETE \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/system-settings/alerting/Zzi" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/system-settings/alerting/Zzi"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/admin/v1/system-settings/alerting/{key}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

key   string     

Example: Zzi

POST /api/admin/v1/system-settings/postbacks

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/system-settings/postbacks" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/system-settings/postbacks"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/admin/v1/system-settings/postbacks

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

DELETE /api/admin/v1/system-settings/postbacks/{key}

requires authentication

Example request:
curl --request DELETE \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/system-settings/postbacks/Zzi" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/system-settings/postbacks/Zzi"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/admin/v1/system-settings/postbacks/{key}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

key   string     

Example: Zzi

POST /api/admin/v1/system-settings/rebill

requires authentication

Upserts one rebill system_settings row. Accepts every key that {@see RebillSystemSettingsDefinitions::definitions()} registers — currently the three Wave 2 throughput keys plus ordering.rebill.block_after_consecutive_terminal_failures (docs/plan_block_after_x_failures.txt §7.1.5). All currently- registered keys are registry type 'int'. The W1–W3 contract applies: W1 — membership against RebillSystemSettingsDefinitions::definitions() W2 — shape check via normaliseForStorage() (int regex) W3 — per-key validator closure (range cap)

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/system-settings/rebill" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/system-settings/rebill"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/admin/v1/system-settings/rebill

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

DELETE /api/admin/v1/system-settings/rebill/{key}

requires authentication

Removes the DB override row. How subsequent reads resolve depends on the specific key:

Example request:
curl --request DELETE \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/system-settings/rebill/Zzi" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/system-settings/rebill/Zzi"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/admin/v1/system-settings/rebill/{key}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

key   string     

Example: Zzi

POST /api/admin/v1/system-settings/reconciliation

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/system-settings/reconciliation" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/system-settings/reconciliation"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/admin/v1/system-settings/reconciliation

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

DELETE /api/admin/v1/system-settings/reconciliation/{key}

requires authentication

Example request:
curl --request DELETE \
    "https://slick.dev.prm-lfmd.com/api/admin/v1/system-settings/reconciliation/Zzi" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/admin/v1/system-settings/reconciliation/Zzi"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/admin/v1/system-settings/reconciliation/{key}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

key   string     

Example: Zzi

Orders

POST api/v1/new_order

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/v1/new_order" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"client_request_id\": \"b\",
    \"firstName\": \"n\",
    \"lastName\": \"g\",
    \"email\": \"rowan.gulgowski@example.com\",
    \"phone\": \"dljnikhwaykcmyuw\",
    \"billingFirstName\": \"p\",
    \"billingLastName\": \"w\",
    \"billingAddress1\": \"l\",
    \"billingAddress2\": \"v\",
    \"billingCity\": \"q\",
    \"billingState\": \"w\",
    \"billingZip\": \"rsitcpscqldzsnrw\",
    \"billingCountry\": \"tu\",
    \"billingSameAsShipping\": \"NO\",
    \"shippingAddress1\": \"j\",
    \"shippingAddress2\": \"w\",
    \"shippingCity\": \"v\",
    \"shippingState\": \"l\",
    \"shippingZip\": \"xjklqppwqbewtnno\",
    \"shippingCountry\": \"qi\",
    \"shippingId\": 4326.41688,
    \"creditCardType\": \"miyvdljnikhwaykc\",
    \"campaignId\": 4326.41688,
    \"tranType\": \"Sale\",
    \"ipAddress\": \"1.102.226.211\",
    \"previousOrderId\": 4326.41688,
    \"offers\": [
        {
            \"offer_id\": 16,
            \"product_id\": 16,
            \"billing_model_id\": 16,
            \"quantity\": 22
        }
    ]
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/new_order"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "client_request_id": "b",
    "firstName": "n",
    "lastName": "g",
    "email": "rowan.gulgowski@example.com",
    "phone": "dljnikhwaykcmyuw",
    "billingFirstName": "p",
    "billingLastName": "w",
    "billingAddress1": "l",
    "billingAddress2": "v",
    "billingCity": "q",
    "billingState": "w",
    "billingZip": "rsitcpscqldzsnrw",
    "billingCountry": "tu",
    "billingSameAsShipping": "NO",
    "shippingAddress1": "j",
    "shippingAddress2": "w",
    "shippingCity": "v",
    "shippingState": "l",
    "shippingZip": "xjklqppwqbewtnno",
    "shippingCountry": "qi",
    "shippingId": 4326.41688,
    "creditCardType": "miyvdljnikhwaykc",
    "campaignId": 4326.41688,
    "tranType": "Sale",
    "ipAddress": "1.102.226.211",
    "previousOrderId": 4326.41688,
    "offers": [
        {
            "offer_id": 16,
            "product_id": 16,
            "billing_model_id": 16,
            "quantity": 22
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/new_order

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

client_request_id   string  optional    

Must not be greater than 128 characters. Example: b

firstName   string     

Must not be greater than 50 characters. Example: n

lastName   string     

Must not be greater than 50 characters. Example: g

email   string     

Must be a valid email address. Must not be greater than 100 characters. Example: rowan.gulgowski@example.com

phone   string     

Must not be greater than 20 characters. Example: dljnikhwaykcmyuw

billingFirstName   string  optional    

Must not be greater than 50 characters. Example: p

billingLastName   string  optional    

Must not be greater than 50 characters. Example: w

billingAddress1   string     

Must not be greater than 100 characters. Example: l

billingAddress2   string  optional    

Must not be greater than 100 characters. Example: v

billingCity   string     

Must not be greater than 50 characters. Example: q

billingState   string     

Must not be greater than 50 characters. Example: w

billingZip   string     

Must not be greater than 20 characters. Example: rsitcpscqldzsnrw

billingCountry   string     

Must not be greater than 2 characters. Example: tu

billingSameAsShipping   string  optional    

Example: NO

Must be one of:
  • YES
  • NO
  • yes
  • no
shippingAddress1   string  optional    

This field is required unless billingSameAsShipping is in YES or yes. Must not be greater than 100 characters. Example: j

shippingAddress2   string  optional    

Must not be greater than 100 characters. Example: w

shippingCity   string  optional    

This field is required unless billingSameAsShipping is in YES or yes. Must not be greater than 50 characters. Example: v

shippingState   string  optional    

This field is required unless billingSameAsShipping is in YES or yes. Must not be greater than 50 characters. Example: l

shippingZip   string  optional    

This field is required unless billingSameAsShipping is in YES or yes. Must not be greater than 20 characters. Example: xjklqppwqbewtnno

shippingCountry   string  optional    

This field is required unless billingSameAsShipping is in YES or yes. Must not be greater than 2 characters. Example: qi

shippingId   number  optional    

Example: 4326.41688

creditCardType   string  optional    

Must not be greater than 20 characters. Example: miyvdljnikhwaykc

campaignId   number     

Example: 4326.41688

tranType   string  optional    

Example: Sale

Must be one of:
  • Sale
ipAddress   string  optional    

Must be a valid IP address. Example: 1.102.226.211

previousOrderId   number  optional    

Example: 4326.41688

offers   object[]     

Must have at least 1 items.

offer_id   integer     

Example: 16

product_id   integer     

Example: 16

billing_model_id   integer     

Example: 16

quantity   integer     

Must be at least 1. Example: 22

Sticky-compatible order view (POST body: order_id array or comma-separated)

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/v1/order_view" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/order_view"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/order_view

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Sticky-compatible bulk order update (POST /order_update)

requires authentication

Accepts: { "order_id": { "123": { "field": "value" }, "456": { ... } } }

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/v1/order_update" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/order_update"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/order_update

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

List orders (paginated, filterable)

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/v1/orders" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/orders"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-request-id: 02c668be-3c56-4751-8b38-1ba905315200
x-ratelimit-limit: 60
x-ratelimit-remaining: 58
access-control-allow-origin: *
 

{
    "success": true,
    "message": "Orders retrieved successfully",
    "data": [
        {
            "order_id": 32008,
            "acquisition_date": 1707598571,
            "ancestor_id": 32008,
            "affiliate": "home",
            "afid": "",
            "sid": "",
            "affid": "home",
            "c1": "",
            "c2": "",
            "c3": "",
            "aid": "",
            "opt": "",
            "amount_refunded_to_date": 0,
            "auth_id": "485868",
            "billing_address_id": null,
            "billing_first_name": "John",
            "billing_last_name": "Doe_Shipped",
            "billing_street_address": "5882 Bolsa Ave Suite 100",
            "billing_street_address2": "",
            "billing_city": "Huntington Beach",
            "billing_state": "CA",
            "billing_state_id": "CA",
            "billing_postcode": "92649",
            "billing_country": "US",
            "billing_cycle": 0,
            "billing_model_id": 14,
            "campaign_id": 150,
            "cc_expires": 926,
            "cc_first_6": 514300,
            "cc_last_4": 3367,
            "cc_number": 3367,
            "credit_card_number": "514300******3367",
            "cc_orig_first_6": 514300,
            "cc_orig_last_4": 3367,
            "cc_type": "master",
            "chargeback_date": "0000-00-00",
            "check_account_last_4": 0,
            "check_routing_last_4": 0,
            "check_ssn_last_4": 0,
            "check_transitnum": "",
            "child_id": 0,
            "click_id": "",
            "created_by_user_name": "api-adminportal",
            "created_by_employee_name": "Admin Portal",
            "coupon_discount_amount": 0,
            "coupon_id": 0,
            "credit_applied": 0,
            "promo_code": "0",
            "customer_id": 22008,
            "customers_telephone": "3072727045",
            "decline_salvage_discount_percent": 0,
            "decline_reason": "",
            "decline_reason_details": "",
            "decline_offer_expire_date": null,
            "email_address": "dylan+shipped@lifemd.com",
            "first_name": "John",
            "fulfillment_status": "Completed",
            "gateway_id": 66,
            "gateway_descriptor": "Rex MD",
            "hold_date": "0000-00-00",
            "ip_address": "173.205.178.8",
            "is_blacklisted": 0,
            "is_chargeback": 0,
            "is_fraud": 0,
            "is_recurring": 1,
            "is_refund": 0,
            "is_rma": 0,
            "is_test_cc": 0,
            "is_void": 0,
            "last_name": "Doe_Shipped",
            "main_product_id": 142,
            "main_product_quantity": 6,
            "next_subscription_product": "50mg Auth Generic Viagra",
            "next_subscription_product_id": 142,
            "offer_id": 34,
            "on_hold": 0,
            "on_hold_by": "",
            "order_confirmed": "NO_STATUS",
            "order_confirmed_date": "0000-00-00",
            "order_sales_tax": 0,
            "order_sales_tax_amount": 0,
            "shipping_amount": 0,
            "order_status": 8,
            "order_total": 60,
            "parent_id": 32008,
            "prepaid_match": "No",
            "preserve_gateway": 1,
            "product_id": 142,
            "processor_id": "jpmorganrexmd",
            "rebill_discount_percent": 0,
            "rebill_discount_is_one_time": true,
            "current_rebill_discount_percent": 0,
            "recurring_date": "2026-03-10",
            "refund_amount": 0,
            "refund_date": "0000-00-00",
            "retry_date": "0000-00-00",
            "return_id": null,
            "rma_id": null,
            "rma_number": "",
            "rma_reason": "",
            "shipping_date": "02/10/2025",
            "shipping_id": 24,
            "shipping_method_name": "Free Shipping, USPS Priority",
            "shipping_address_id": null,
            "shipping_first_name": "John",
            "shipping_last_name": "Doe_Shipped",
            "shipping_street_address": "5882 Bolsa Ave Suite 100",
            "shipping_street_address2": "",
            "shipping_city": "Huntington Beach",
            "shipping_state": "CA",
            "shipping_state_id": "CA",
            "shipping_postcode": 82426,
            "shipping_country": "US",
            "sub_affiliate": "",
            "tracking_number": "9400111206239485422142",
            "transaction_id": "9203565742",
            "upsell_product_id": 0,
            "upsell_product_quantity": 0,
            "void_amount": 0,
            "void_date": "0000-00-00",
            "shippable": 1,
            "website_received": "",
            "website_sent": "",
            "is_cascaded": 0,
            "custom_fields": "",
            "is_initial": true,
            "is_rebill_preauth": 0,
            "is_gift": 0,
            "pharmacy": "HB",
            "last_order_pharmacy": null,
            "hidden": false,
            "payment_id": null,
            "archived": 1,
            "time_stamp": 1707598571,
            "created_at": "2025-12-04T19:26:56.000000Z",
            "updated_at": null
        },
        {
            "order_id": 32108,
            "acquisition_date": 1715392165,
            "ancestor_id": 32008,
            "affiliate": "home",
            "afid": "",
            "sid": "",
            "affid": "home",
            "c1": "",
            "c2": "",
            "c3": "",
            "aid": "",
            "opt": "",
            "amount_refunded_to_date": 0,
            "auth_id": "485868",
            "billing_address_id": null,
            "billing_first_name": "John",
            "billing_last_name": "Doe_Shipped",
            "billing_street_address": "5882 Bolsa Ave Suite 100",
            "billing_street_address2": "",
            "billing_city": "Huntington Beach",
            "billing_state": "CA",
            "billing_state_id": "CA",
            "billing_postcode": "92649",
            "billing_country": "US",
            "billing_cycle": 0,
            "billing_model_id": 14,
            "campaign_id": 150,
            "cc_expires": 926,
            "cc_first_6": 514300,
            "cc_last_4": 3367,
            "cc_number": 3367,
            "credit_card_number": "514300******3367",
            "cc_orig_first_6": 514300,
            "cc_orig_last_4": 3367,
            "cc_type": "master",
            "chargeback_date": "0000-00-00",
            "check_account_last_4": 0,
            "check_routing_last_4": 0,
            "check_ssn_last_4": 0,
            "check_transitnum": "",
            "child_id": 0,
            "click_id": "",
            "created_by_user_name": "api-adminportal",
            "created_by_employee_name": "Admin Portal",
            "coupon_discount_amount": 0,
            "coupon_id": 0,
            "credit_applied": 0,
            "promo_code": "0",
            "customer_id": 22008,
            "customers_telephone": "3072727045",
            "decline_salvage_discount_percent": 0,
            "decline_reason": "",
            "decline_reason_details": "",
            "decline_offer_expire_date": null,
            "email_address": "dylan+shipped@lifemd.com",
            "first_name": "John",
            "fulfillment_status": "Completed",
            "gateway_id": 66,
            "gateway_descriptor": "Rex MD",
            "hold_date": "0000-00-00",
            "ip_address": "173.205.178.8",
            "is_blacklisted": 0,
            "is_chargeback": 0,
            "is_fraud": 0,
            "is_recurring": 1,
            "is_refund": 0,
            "is_rma": 0,
            "is_test_cc": 0,
            "is_void": 0,
            "last_name": "Doe_Shipped",
            "main_product_id": 142,
            "main_product_quantity": 6,
            "next_subscription_product": "50mg Auth Generic Viagra",
            "next_subscription_product_id": 142,
            "offer_id": 34,
            "on_hold": 0,
            "on_hold_by": "",
            "order_confirmed": "NO_STATUS",
            "order_confirmed_date": "0000-00-00",
            "order_sales_tax": 0,
            "order_sales_tax_amount": 0,
            "shipping_amount": 0,
            "order_status": 11,
            "order_total": 60,
            "parent_id": 32008,
            "prepaid_match": "No",
            "preserve_gateway": 1,
            "product_id": 142,
            "processor_id": "jpmorganrexmd",
            "rebill_discount_percent": 0,
            "rebill_discount_is_one_time": true,
            "current_rebill_discount_percent": 0,
            "recurring_date": "2026-03-10",
            "refund_amount": 0,
            "refund_date": "0000-00-00",
            "retry_date": "0000-00-00",
            "return_id": null,
            "rma_id": null,
            "rma_number": "",
            "rma_reason": "",
            "shipping_date": "02/10/2025",
            "shipping_id": 24,
            "shipping_method_name": "Free Shipping, USPS Priority",
            "shipping_address_id": null,
            "shipping_first_name": "John",
            "shipping_last_name": "Doe_Shipped",
            "shipping_street_address": "5882 Bolsa Ave Suite 100",
            "shipping_street_address2": "",
            "shipping_city": "Huntington Beach",
            "shipping_state": "CA",
            "shipping_state_id": "CA",
            "shipping_postcode": 82426,
            "shipping_country": "US",
            "sub_affiliate": "",
            "tracking_number": "941497575751948542555",
            "transaction_id": "9203565742",
            "upsell_product_id": 0,
            "upsell_product_quantity": 0,
            "void_amount": 0,
            "void_date": "0000-00-00",
            "shippable": 1,
            "website_received": "",
            "website_sent": "",
            "is_cascaded": 0,
            "custom_fields": "",
            "is_initial": true,
            "is_rebill_preauth": 0,
            "is_gift": 0,
            "pharmacy": "HB",
            "last_order_pharmacy": null,
            "hidden": false,
            "payment_id": null,
            "archived": 0,
            "time_stamp": 1715392165,
            "created_at": "2025-12-04T19:26:56.000000Z",
            "updated_at": null
        },
        {
            "order_id": 32835,
            "acquisition_date": 1737254731,
            "ancestor_id": 32035,
            "affiliate": "",
            "afid": "",
            "sid": "",
            "affid": "",
            "c1": "",
            "c2": "",
            "c3": "",
            "aid": "",
            "opt": "",
            "amount_refunded_to_date": 0,
            "auth_id": "Not Available",
            "billing_address_id": 1,
            "billing_first_name": "John",
            "billing_last_name": "Doe_Multi_WL",
            "billing_street_address": "5882 Bolsa Ave Suite 100",
            "billing_street_address2": "",
            "billing_city": "Huntington Beach",
            "billing_state": "CA",
            "billing_state_id": null,
            "billing_postcode": "92649",
            "billing_country": "US",
            "billing_cycle": 0,
            "billing_model_id": 14,
            "campaign_id": 257,
            "cc_expires": 327,
            "cc_first_6": 144444,
            "cc_last_4": 4445,
            "cc_number": 4445,
            "credit_card_number": "144444******4445",
            "cc_orig_first_6": 144444,
            "cc_orig_last_4": 4445,
            "cc_type": "visa",
            "chargeback_date": "0000-00-00",
            "check_account_last_4": null,
            "check_routing_last_4": null,
            "check_ssn_last_4": null,
            "check_transitnum": null,
            "child_id": 0,
            "click_id": "",
            "created_by_user_name": "api-adminportal",
            "created_by_employee_name": "Admin Portal",
            "coupon_discount_amount": 0,
            "coupon_id": 0,
            "credit_applied": 0,
            "promo_code": "0",
            "customer_id": 22035,
            "customers_telephone": "9856375978",
            "decline_salvage_discount_percent": 0,
            "decline_reason": "DECLINE",
            "decline_reason_details": "",
            "decline_offer_expire_date": null,
            "email_address": "jon.p+798@lifemd.com",
            "first_name": "John",
            "fulfillment_status": "Pending",
            "gateway_id": 66,
            "gateway_descriptor": "Rex MD",
            "hold_date": "0000-00-00",
            "ip_address": "37.19.196.158",
            "is_blacklisted": 0,
            "is_chargeback": 0,
            "is_fraud": 0,
            "is_recurring": 1,
            "is_refund": 0,
            "is_rma": 0,
            "is_test_cc": 1,
            "is_void": 0,
            "last_name": "Doe_Multi_WL",
            "main_product_id": 547,
            "main_product_quantity": 1,
            "next_subscription_product": "Semaglutide",
            "next_subscription_product_id": 547,
            "offer_id": 172,
            "on_hold": 0,
            "on_hold_by": "",
            "order_confirmed": "NO_STATUS",
            "order_confirmed_date": "0000-00-00",
            "order_sales_tax": 0,
            "order_sales_tax_amount": 0,
            "shipping_amount": 0,
            "order_status": 7,
            "order_total": 650,
            "parent_id": 32135,
            "prepaid_match": "No",
            "preserve_gateway": 0,
            "product_id": 547,
            "processor_id": "",
            "rebill_discount_percent": 0,
            "rebill_discount_is_one_time": true,
            "current_rebill_discount_percent": 0,
            "recurring_date": "0000-00-00",
            "refund_amount": 0,
            "refund_date": "0000-00-00",
            "retry_date": "0000-00-00",
            "return_id": null,
            "rma_id": null,
            "rma_number": "",
            "rma_reason": "",
            "shipping_date": "Not Shipped",
            "shipping_id": 24,
            "shipping_method_name": "Free Shipping, USPS Priority",
            "shipping_address_id": 1,
            "shipping_first_name": "Test",
            "shipping_last_name": "Test",
            "shipping_street_address": "5882 Bolsa Ave Suite 100",
            "shipping_street_address2": "",
            "shipping_city": "Huntington Beach",
            "shipping_state": "CA",
            "shipping_state_id": null,
            "shipping_postcode": 92649,
            "shipping_country": "US",
            "sub_affiliate": "",
            "tracking_number": "",
            "transaction_id": "Not Available",
            "upsell_product_id": 262,
            "upsell_product_quantity": 1,
            "void_amount": 0,
            "void_date": "0000-00-00",
            "shippable": 1,
            "website_received": "",
            "website_sent": "",
            "is_cascaded": 0,
            "custom_fields": "",
            "is_initial": true,
            "is_rebill_preauth": 0,
            "is_gift": 0,
            "pharmacy": "HB",
            "last_order_pharmacy": "",
            "hidden": false,
            "payment_id": 1,
            "archived": 0,
            "time_stamp": 1737254731,
            "created_at": "2025-01-18T21:45:31.000000Z",
            "updated_at": null
        },
        {
            "order_id": 32735,
            "acquisition_date": 1734576331,
            "ancestor_id": 32135,
            "affiliate": "",
            "afid": "",
            "sid": "",
            "affid": "",
            "c1": "",
            "c2": "",
            "c3": "",
            "aid": "",
            "opt": "",
            "amount_refunded_to_date": 0,
            "auth_id": "Not Available",
            "billing_address_id": 1,
            "billing_first_name": "John",
            "billing_last_name": "Doe_Multi_WL",
            "billing_street_address": "5882 Bolsa Ave Suite 100",
            "billing_street_address2": "",
            "billing_city": "Huntington Beach",
            "billing_state": "CA",
            "billing_state_id": null,
            "billing_postcode": "92649",
            "billing_country": "US",
            "billing_cycle": 0,
            "billing_model_id": 14,
            "campaign_id": 257,
            "cc_expires": 327,
            "cc_first_6": 144444,
            "cc_last_4": 4445,
            "cc_number": 4445,
            "credit_card_number": "144444******4445",
            "cc_orig_first_6": 144444,
            "cc_orig_last_4": 4445,
            "cc_type": "visa",
            "chargeback_date": "0000-00-00",
            "check_account_last_4": null,
            "check_routing_last_4": null,
            "check_ssn_last_4": null,
            "check_transitnum": null,
            "child_id": 0,
            "click_id": "",
            "created_by_user_name": "api-adminportal",
            "created_by_employee_name": "Admin Portal",
            "coupon_discount_amount": 0,
            "coupon_id": 0,
            "credit_applied": 0,
            "promo_code": "0",
            "customer_id": 22035,
            "customers_telephone": "9856375978",
            "decline_salvage_discount_percent": 0,
            "decline_reason": "",
            "decline_reason_details": "",
            "decline_offer_expire_date": null,
            "email_address": "jon.p+798@lifemd.com",
            "first_name": "John",
            "fulfillment_status": "Pending",
            "gateway_id": 66,
            "gateway_descriptor": "Rex MD",
            "hold_date": "0000-00-00",
            "ip_address": "37.19.196.158",
            "is_blacklisted": 0,
            "is_chargeback": 0,
            "is_fraud": 0,
            "is_recurring": 1,
            "is_refund": 0,
            "is_rma": 0,
            "is_test_cc": 1,
            "is_void": 0,
            "last_name": "Doe_Multi_WL",
            "main_product_id": 547,
            "main_product_quantity": 1,
            "next_subscription_product": "Semaglutide",
            "next_subscription_product_id": 547,
            "offer_id": 172,
            "on_hold": 0,
            "on_hold_by": "",
            "order_confirmed": "NO_STATUS",
            "order_confirmed_date": "0000-00-00",
            "order_sales_tax": 0,
            "order_sales_tax_amount": 0,
            "shipping_amount": 0,
            "order_status": 8,
            "order_total": 650,
            "parent_id": 32135,
            "prepaid_match": "No",
            "preserve_gateway": 0,
            "product_id": 547,
            "processor_id": "",
            "rebill_discount_percent": 0,
            "rebill_discount_is_one_time": true,
            "current_rebill_discount_percent": 0,
            "recurring_date": "0000-00-00",
            "refund_amount": 0,
            "refund_date": "0000-00-00",
            "retry_date": "0000-00-00",
            "return_id": null,
            "rma_id": null,
            "rma_number": "",
            "rma_reason": "",
            "shipping_date": "12/20/2024",
            "shipping_id": 24,
            "shipping_method_name": "Free Shipping, USPS Priority",
            "shipping_address_id": 1,
            "shipping_first_name": "Test",
            "shipping_last_name": "Test",
            "shipping_street_address": "5882 Bolsa Ave Suite 100",
            "shipping_street_address2": "",
            "shipping_city": "Huntington Beach",
            "shipping_state": "CA",
            "shipping_state_id": null,
            "shipping_postcode": 92649,
            "shipping_country": "US",
            "sub_affiliate": "",
            "tracking_number": "9400111899560221937023",
            "transaction_id": "Not Available",
            "upsell_product_id": 262,
            "upsell_product_quantity": 1,
            "void_amount": 0,
            "void_date": "0000-00-00",
            "shippable": 1,
            "website_received": "",
            "website_sent": "",
            "is_cascaded": 0,
            "custom_fields": "",
            "is_initial": true,
            "is_rebill_preauth": 0,
            "is_gift": 0,
            "pharmacy": "HB",
            "last_order_pharmacy": "",
            "hidden": false,
            "payment_id": 1,
            "archived": 0,
            "time_stamp": 1734576331,
            "created_at": "2024-12-18T21:45:31.000000Z",
            "updated_at": null
        },
        {
            "order_id": 32635,
            "acquisition_date": 1731984331,
            "ancestor_id": 32135,
            "affiliate": "",
            "afid": "",
            "sid": "",
            "affid": "",
            "c1": "",
            "c2": "",
            "c3": "",
            "aid": "",
            "opt": "",
            "amount_refunded_to_date": 0,
            "auth_id": "Not Available",
            "billing_address_id": 1,
            "billing_first_name": "John",
            "billing_last_name": "Doe_Multi_WL",
            "billing_street_address": "5882 Bolsa Ave Suite 100",
            "billing_street_address2": "",
            "billing_city": "Huntington Beach",
            "billing_state": "CA",
            "billing_state_id": null,
            "billing_postcode": "92649",
            "billing_country": "US",
            "billing_cycle": 0,
            "billing_model_id": 14,
            "campaign_id": 257,
            "cc_expires": 327,
            "cc_first_6": 144444,
            "cc_last_4": 4445,
            "cc_number": 4445,
            "credit_card_number": "144444******4445",
            "cc_orig_first_6": 144444,
            "cc_orig_last_4": 4445,
            "cc_type": "visa",
            "chargeback_date": "0000-00-00",
            "check_account_last_4": null,
            "check_routing_last_4": null,
            "check_ssn_last_4": null,
            "check_transitnum": null,
            "child_id": 0,
            "click_id": "",
            "created_by_user_name": "api-adminportal",
            "created_by_employee_name": "Admin Portal",
            "coupon_discount_amount": 0,
            "coupon_id": 0,
            "credit_applied": 0,
            "promo_code": "0",
            "customer_id": 22035,
            "customers_telephone": "9856375978",
            "decline_salvage_discount_percent": 0,
            "decline_reason": "",
            "decline_reason_details": "",
            "decline_offer_expire_date": null,
            "email_address": "jon.p+798@lifemd.com",
            "first_name": "John",
            "fulfillment_status": "Pending",
            "gateway_id": 66,
            "gateway_descriptor": "Rex MD",
            "hold_date": "0000-00-00",
            "ip_address": "37.19.196.158",
            "is_blacklisted": 0,
            "is_chargeback": 0,
            "is_fraud": 0,
            "is_recurring": 1,
            "is_refund": 0,
            "is_rma": 0,
            "is_test_cc": 1,
            "is_void": 0,
            "last_name": "Doe_Multi_WL",
            "main_product_id": 547,
            "main_product_quantity": 1,
            "next_subscription_product": "Semaglutide",
            "next_subscription_product_id": 547,
            "offer_id": 172,
            "on_hold": 0,
            "on_hold_by": "",
            "order_confirmed": "NO_STATUS",
            "order_confirmed_date": "0000-00-00",
            "order_sales_tax": 0,
            "order_sales_tax_amount": 0,
            "shipping_amount": 0,
            "order_status": 8,
            "order_total": 650,
            "parent_id": 32135,
            "prepaid_match": "No",
            "preserve_gateway": 0,
            "product_id": 547,
            "processor_id": "",
            "rebill_discount_percent": 0,
            "rebill_discount_is_one_time": true,
            "current_rebill_discount_percent": 0,
            "recurring_date": "0000-00-00",
            "refund_amount": 0,
            "refund_date": "0000-00-00",
            "retry_date": "0000-00-00",
            "return_id": null,
            "rma_id": null,
            "rma_number": "",
            "rma_reason": "",
            "shipping_date": "11/20/2024",
            "shipping_id": 24,
            "shipping_method_name": "Free Shipping, USPS Priority",
            "shipping_address_id": 1,
            "shipping_first_name": "Test",
            "shipping_last_name": "Test",
            "shipping_street_address": "5882 Bolsa Ave Suite 100",
            "shipping_street_address2": "",
            "shipping_city": "Huntington Beach",
            "shipping_state": "CA",
            "shipping_state_id": null,
            "shipping_postcode": 92649,
            "shipping_country": "US",
            "sub_affiliate": "",
            "tracking_number": "9400111899560331937023",
            "transaction_id": "Not Available",
            "upsell_product_id": 262,
            "upsell_product_quantity": 1,
            "void_amount": 0,
            "void_date": "0000-00-00",
            "shippable": 1,
            "website_received": "",
            "website_sent": "",
            "is_cascaded": 0,
            "custom_fields": "",
            "is_initial": true,
            "is_rebill_preauth": 0,
            "is_gift": 0,
            "pharmacy": "HB",
            "last_order_pharmacy": "",
            "hidden": false,
            "payment_id": 1,
            "archived": 0,
            "time_stamp": 1731984331,
            "created_at": "2024-11-18T21:45:31.000000Z",
            "updated_at": null
        },
        {
            "order_id": 32535,
            "acquisition_date": 1729302331,
            "ancestor_id": 32135,
            "affiliate": "",
            "afid": "",
            "sid": "",
            "affid": "",
            "c1": "",
            "c2": "",
            "c3": "",
            "aid": "",
            "opt": "",
            "amount_refunded_to_date": 0,
            "auth_id": "Not Available",
            "billing_address_id": 1,
            "billing_first_name": "John",
            "billing_last_name": "Doe_Multi_WL",
            "billing_street_address": "5882 Bolsa Ave Suite 100",
            "billing_street_address2": "",
            "billing_city": "Huntington Beach",
            "billing_state": "CA",
            "billing_state_id": null,
            "billing_postcode": "92649",
            "billing_country": "US",
            "billing_cycle": 0,
            "billing_model_id": 14,
            "campaign_id": 257,
            "cc_expires": 327,
            "cc_first_6": 144444,
            "cc_last_4": 4445,
            "cc_number": 4445,
            "credit_card_number": "144444******4445",
            "cc_orig_first_6": 144444,
            "cc_orig_last_4": 4445,
            "cc_type": "visa",
            "chargeback_date": "0000-00-00",
            "check_account_last_4": null,
            "check_routing_last_4": null,
            "check_ssn_last_4": null,
            "check_transitnum": null,
            "child_id": 0,
            "click_id": "",
            "created_by_user_name": "api-adminportal",
            "created_by_employee_name": "Admin Portal",
            "coupon_discount_amount": 0,
            "coupon_id": 0,
            "credit_applied": 0,
            "promo_code": "0",
            "customer_id": 22035,
            "customers_telephone": "9856375978",
            "decline_salvage_discount_percent": 0,
            "decline_reason": "",
            "decline_reason_details": "",
            "decline_offer_expire_date": null,
            "email_address": "jon.p+798@lifemd.com",
            "first_name": "John",
            "fulfillment_status": "Pending",
            "gateway_id": 66,
            "gateway_descriptor": "Rex MD",
            "hold_date": "0000-00-00",
            "ip_address": "37.19.196.158",
            "is_blacklisted": 0,
            "is_chargeback": 0,
            "is_fraud": 0,
            "is_recurring": 1,
            "is_refund": 0,
            "is_rma": 0,
            "is_test_cc": 1,
            "is_void": 0,
            "last_name": "Doe_Multi_WL",
            "main_product_id": 547,
            "main_product_quantity": 1,
            "next_subscription_product": "Semaglutide",
            "next_subscription_product_id": 547,
            "offer_id": 172,
            "on_hold": 0,
            "on_hold_by": "",
            "order_confirmed": "NO_STATUS",
            "order_confirmed_date": "0000-00-00",
            "order_sales_tax": 0,
            "order_sales_tax_amount": 0,
            "shipping_amount": 0,
            "order_status": 8,
            "order_total": 650,
            "parent_id": 32135,
            "prepaid_match": "No",
            "preserve_gateway": 0,
            "product_id": 547,
            "processor_id": "",
            "rebill_discount_percent": 0,
            "rebill_discount_is_one_time": true,
            "current_rebill_discount_percent": 0,
            "recurring_date": "0000-00-00",
            "refund_amount": 0,
            "refund_date": "0000-00-00",
            "retry_date": "0000-00-00",
            "return_id": null,
            "rma_id": null,
            "rma_number": "",
            "rma_reason": "",
            "shipping_date": "10/20/2024",
            "shipping_id": 24,
            "shipping_method_name": "Free Shipping, USPS Priority",
            "shipping_address_id": 1,
            "shipping_first_name": "Test",
            "shipping_last_name": "Test",
            "shipping_street_address": "5882 Bolsa Ave Suite 100",
            "shipping_street_address2": "",
            "shipping_city": "Huntington Beach",
            "shipping_state": "CA",
            "shipping_state_id": null,
            "shipping_postcode": 92649,
            "shipping_country": "US",
            "sub_affiliate": "",
            "tracking_number": "9400111899560441937023",
            "transaction_id": "Not Available",
            "upsell_product_id": 262,
            "upsell_product_quantity": 1,
            "void_amount": 0,
            "void_date": "0000-00-00",
            "shippable": 1,
            "website_received": "",
            "website_sent": "",
            "is_cascaded": 0,
            "custom_fields": "",
            "is_initial": true,
            "is_rebill_preauth": 0,
            "is_gift": 0,
            "pharmacy": "HB",
            "last_order_pharmacy": "",
            "hidden": false,
            "payment_id": 1,
            "archived": 0,
            "time_stamp": 1729302331,
            "created_at": "2024-10-18T21:45:31.000000Z",
            "updated_at": null
        },
        {
            "order_id": 32435,
            "acquisition_date": 1726710331,
            "ancestor_id": 32135,
            "affiliate": "",
            "afid": "",
            "sid": "",
            "affid": "",
            "c1": "",
            "c2": "",
            "c3": "",
            "aid": "",
            "opt": "",
            "amount_refunded_to_date": 0,
            "auth_id": "Not Available",
            "billing_address_id": 1,
            "billing_first_name": "John",
            "billing_last_name": "Doe_Multi_WL",
            "billing_street_address": "5882 Bolsa Ave Suite 100",
            "billing_street_address2": "",
            "billing_city": "Huntington Beach",
            "billing_state": "CA",
            "billing_state_id": null,
            "billing_postcode": "92649",
            "billing_country": "US",
            "billing_cycle": 0,
            "billing_model_id": 14,
            "campaign_id": 257,
            "cc_expires": 327,
            "cc_first_6": 144444,
            "cc_last_4": 4445,
            "cc_number": 4445,
            "credit_card_number": "144444******4445",
            "cc_orig_first_6": 144444,
            "cc_orig_last_4": 4445,
            "cc_type": "visa",
            "chargeback_date": "0000-00-00",
            "check_account_last_4": null,
            "check_routing_last_4": null,
            "check_ssn_last_4": null,
            "check_transitnum": null,
            "child_id": 0,
            "click_id": "",
            "created_by_user_name": "api-adminportal",
            "created_by_employee_name": "Admin Portal",
            "coupon_discount_amount": 0,
            "coupon_id": 0,
            "credit_applied": 0,
            "promo_code": "0",
            "customer_id": 22035,
            "customers_telephone": "9856375978",
            "decline_salvage_discount_percent": 0,
            "decline_reason": "",
            "decline_reason_details": "",
            "decline_offer_expire_date": null,
            "email_address": "jon.p+798@lifemd.com",
            "first_name": "John",
            "fulfillment_status": "Pending",
            "gateway_id": 66,
            "gateway_descriptor": "Rex MD",
            "hold_date": "0000-00-00",
            "ip_address": "37.19.196.158",
            "is_blacklisted": 0,
            "is_chargeback": 0,
            "is_fraud": 0,
            "is_recurring": 1,
            "is_refund": 0,
            "is_rma": 0,
            "is_test_cc": 1,
            "is_void": 0,
            "last_name": "Doe_Multi_WL",
            "main_product_id": 547,
            "main_product_quantity": 1,
            "next_subscription_product": "Semaglutide",
            "next_subscription_product_id": 547,
            "offer_id": 172,
            "on_hold": 0,
            "on_hold_by": "",
            "order_confirmed": "NO_STATUS",
            "order_confirmed_date": "0000-00-00",
            "order_sales_tax": 0,
            "order_sales_tax_amount": 0,
            "shipping_amount": 0,
            "order_status": 8,
            "order_total": 650,
            "parent_id": 32135,
            "prepaid_match": "No",
            "preserve_gateway": 0,
            "product_id": 547,
            "processor_id": "",
            "rebill_discount_percent": 0,
            "rebill_discount_is_one_time": true,
            "current_rebill_discount_percent": 0,
            "recurring_date": "0000-00-00",
            "refund_amount": 0,
            "refund_date": "0000-00-00",
            "retry_date": "0000-00-00",
            "return_id": null,
            "rma_id": null,
            "rma_number": "",
            "rma_reason": "",
            "shipping_date": "09/20/2024",
            "shipping_id": 24,
            "shipping_method_name": "Free Shipping, USPS Priority",
            "shipping_address_id": 1,
            "shipping_first_name": "Test",
            "shipping_last_name": "Test",
            "shipping_street_address": "5882 Bolsa Ave Suite 100",
            "shipping_street_address2": "",
            "shipping_city": "Huntington Beach",
            "shipping_state": "CA",
            "shipping_state_id": null,
            "shipping_postcode": 92649,
            "shipping_country": "US",
            "sub_affiliate": "",
            "tracking_number": "9400111899560551937023",
            "transaction_id": "Not Available",
            "upsell_product_id": 262,
            "upsell_product_quantity": 1,
            "void_amount": 0,
            "void_date": "0000-00-00",
            "shippable": 1,
            "website_received": "",
            "website_sent": "",
            "is_cascaded": 0,
            "custom_fields": "",
            "is_initial": true,
            "is_rebill_preauth": 0,
            "is_gift": 0,
            "pharmacy": "HB",
            "last_order_pharmacy": "",
            "hidden": false,
            "payment_id": 1,
            "archived": 0,
            "time_stamp": 1726710331,
            "created_at": "2024-09-18T21:45:31.000000Z",
            "updated_at": null
        },
        {
            "order_id": 32335,
            "acquisition_date": 1724031931,
            "ancestor_id": 32135,
            "affiliate": "",
            "afid": "",
            "sid": "",
            "affid": "",
            "c1": "",
            "c2": "",
            "c3": "",
            "aid": "",
            "opt": "",
            "amount_refunded_to_date": 0,
            "auth_id": "Not Available",
            "billing_address_id": 1,
            "billing_first_name": "John",
            "billing_last_name": "Doe_Multi_WL",
            "billing_street_address": "5882 Bolsa Ave Suite 100",
            "billing_street_address2": "",
            "billing_city": "Huntington Beach",
            "billing_state": "CA",
            "billing_state_id": null,
            "billing_postcode": "92649",
            "billing_country": "US",
            "billing_cycle": 0,
            "billing_model_id": 14,
            "campaign_id": 257,
            "cc_expires": 327,
            "cc_first_6": 144444,
            "cc_last_4": 4445,
            "cc_number": 4445,
            "credit_card_number": "144444******4445",
            "cc_orig_first_6": 144444,
            "cc_orig_last_4": 4445,
            "cc_type": "visa",
            "chargeback_date": "0000-00-00",
            "check_account_last_4": null,
            "check_routing_last_4": null,
            "check_ssn_last_4": null,
            "check_transitnum": null,
            "child_id": 0,
            "click_id": "",
            "created_by_user_name": "api-adminportal",
            "created_by_employee_name": "Admin Portal",
            "coupon_discount_amount": 0,
            "coupon_id": 0,
            "credit_applied": 0,
            "promo_code": "0",
            "customer_id": 22035,
            "customers_telephone": "9856375978",
            "decline_salvage_discount_percent": 0,
            "decline_reason": "",
            "decline_reason_details": "",
            "decline_offer_expire_date": null,
            "email_address": "jon.p+798@lifemd.com",
            "first_name": "John",
            "fulfillment_status": "Pending",
            "gateway_id": 66,
            "gateway_descriptor": "Rex MD",
            "hold_date": "0000-00-00",
            "ip_address": "37.19.196.158",
            "is_blacklisted": 0,
            "is_chargeback": 0,
            "is_fraud": 0,
            "is_recurring": 1,
            "is_refund": 0,
            "is_rma": 0,
            "is_test_cc": 1,
            "is_void": 0,
            "last_name": "Doe_Multi_WL",
            "main_product_id": 547,
            "main_product_quantity": 1,
            "next_subscription_product": "Semaglutide",
            "next_subscription_product_id": 547,
            "offer_id": 172,
            "on_hold": 0,
            "on_hold_by": "",
            "order_confirmed": "NO_STATUS",
            "order_confirmed_date": "0000-00-00",
            "order_sales_tax": 0,
            "order_sales_tax_amount": 0,
            "shipping_amount": 0,
            "order_status": 8,
            "order_total": 650,
            "parent_id": 32135,
            "prepaid_match": "No",
            "preserve_gateway": 0,
            "product_id": 547,
            "processor_id": "",
            "rebill_discount_percent": 0,
            "rebill_discount_is_one_time": true,
            "current_rebill_discount_percent": 0,
            "recurring_date": "0000-00-00",
            "refund_amount": 0,
            "refund_date": "0000-00-00",
            "retry_date": "0000-00-00",
            "return_id": null,
            "rma_id": null,
            "rma_number": "",
            "rma_reason": "",
            "shipping_date": "08/20/2024",
            "shipping_id": 24,
            "shipping_method_name": "Free Shipping, USPS Priority",
            "shipping_address_id": 1,
            "shipping_first_name": "Test",
            "shipping_last_name": "Test",
            "shipping_street_address": "5882 Bolsa Ave Suite 100",
            "shipping_street_address2": "",
            "shipping_city": "Huntington Beach",
            "shipping_state": "CA",
            "shipping_state_id": null,
            "shipping_postcode": 92649,
            "shipping_country": "US",
            "sub_affiliate": "",
            "tracking_number": "9400111899560661937023",
            "transaction_id": "Not Available",
            "upsell_product_id": 262,
            "upsell_product_quantity": 1,
            "void_amount": 0,
            "void_date": "0000-00-00",
            "shippable": 1,
            "website_received": "",
            "website_sent": "",
            "is_cascaded": 0,
            "custom_fields": "",
            "is_initial": true,
            "is_rebill_preauth": 0,
            "is_gift": 0,
            "pharmacy": "HB",
            "last_order_pharmacy": "",
            "hidden": false,
            "payment_id": 1,
            "archived": 0,
            "time_stamp": 1724031931,
            "created_at": "2024-08-18T21:45:31.000000Z",
            "updated_at": null
        },
        {
            "order_id": 32235,
            "acquisition_date": 1721353531,
            "ancestor_id": 32135,
            "affiliate": "",
            "afid": "",
            "sid": "",
            "affid": "",
            "c1": "",
            "c2": "",
            "c3": "",
            "aid": "",
            "opt": "",
            "amount_refunded_to_date": 0,
            "auth_id": "Not Available",
            "billing_address_id": 1,
            "billing_first_name": "John",
            "billing_last_name": "Doe_Multi_WL",
            "billing_street_address": "5882 Bolsa Ave Suite 100",
            "billing_street_address2": "",
            "billing_city": "Huntington Beach",
            "billing_state": "CA",
            "billing_state_id": null,
            "billing_postcode": "92649",
            "billing_country": "US",
            "billing_cycle": 0,
            "billing_model_id": 14,
            "campaign_id": 257,
            "cc_expires": 327,
            "cc_first_6": 144444,
            "cc_last_4": 4445,
            "cc_number": 4445,
            "credit_card_number": "144444******4445",
            "cc_orig_first_6": 144444,
            "cc_orig_last_4": 4445,
            "cc_type": "visa",
            "chargeback_date": "0000-00-00",
            "check_account_last_4": null,
            "check_routing_last_4": null,
            "check_ssn_last_4": null,
            "check_transitnum": null,
            "child_id": 0,
            "click_id": "",
            "created_by_user_name": "api-adminportal",
            "created_by_employee_name": "Admin Portal",
            "coupon_discount_amount": 0,
            "coupon_id": 0,
            "credit_applied": 0,
            "promo_code": "0",
            "customer_id": 22035,
            "customers_telephone": "9856375978",
            "decline_salvage_discount_percent": 0,
            "decline_reason": "",
            "decline_reason_details": "",
            "decline_offer_expire_date": null,
            "email_address": "jon.p+798@lifemd.com",
            "first_name": "John",
            "fulfillment_status": "Pending",
            "gateway_id": 66,
            "gateway_descriptor": "Rex MD",
            "hold_date": "0000-00-00",
            "ip_address": "37.19.196.158",
            "is_blacklisted": 0,
            "is_chargeback": 0,
            "is_fraud": 0,
            "is_recurring": 1,
            "is_refund": 0,
            "is_rma": 0,
            "is_test_cc": 1,
            "is_void": 0,
            "last_name": "Doe_Multi_WL",
            "main_product_id": 547,
            "main_product_quantity": 1,
            "next_subscription_product": "Semaglutide",
            "next_subscription_product_id": 547,
            "offer_id": 172,
            "on_hold": 0,
            "on_hold_by": "",
            "order_confirmed": "NO_STATUS",
            "order_confirmed_date": "0000-00-00",
            "order_sales_tax": 0,
            "order_sales_tax_amount": 0,
            "shipping_amount": 0,
            "order_status": 8,
            "order_total": 650,
            "parent_id": 32135,
            "prepaid_match": "No",
            "preserve_gateway": 0,
            "product_id": 547,
            "processor_id": "",
            "rebill_discount_percent": 0,
            "rebill_discount_is_one_time": true,
            "current_rebill_discount_percent": 0,
            "recurring_date": "0000-00-00",
            "refund_amount": 0,
            "refund_date": "0000-00-00",
            "retry_date": "0000-00-00",
            "return_id": null,
            "rma_id": null,
            "rma_number": "",
            "rma_reason": "",
            "shipping_date": "07/20/2024",
            "shipping_id": 24,
            "shipping_method_name": "Free Shipping, USPS Priority",
            "shipping_address_id": 1,
            "shipping_first_name": "Test",
            "shipping_last_name": "Test",
            "shipping_street_address": "5882 Bolsa Ave Suite 100",
            "shipping_street_address2": "",
            "shipping_city": "Huntington Beach",
            "shipping_state": "CA",
            "shipping_state_id": null,
            "shipping_postcode": 92649,
            "shipping_country": "US",
            "sub_affiliate": "",
            "tracking_number": "9400111899560771937023",
            "transaction_id": "Not Available",
            "upsell_product_id": 262,
            "upsell_product_quantity": 1,
            "void_amount": 0,
            "void_date": "0000-00-00",
            "shippable": 1,
            "website_received": "",
            "website_sent": "",
            "is_cascaded": 0,
            "custom_fields": "",
            "is_initial": true,
            "is_rebill_preauth": 0,
            "is_gift": 0,
            "pharmacy": "HB",
            "last_order_pharmacy": "",
            "hidden": false,
            "payment_id": 1,
            "archived": 0,
            "time_stamp": 1721353531,
            "created_at": "2024-07-18T21:45:31.000000Z",
            "updated_at": null
        },
        {
            "order_id": 32035,
            "acquisition_date": 1718703568,
            "ancestor_id": 32035,
            "affiliate": "",
            "afid": "",
            "sid": "",
            "affid": "",
            "c1": "",
            "c2": "",
            "c3": "",
            "aid": "",
            "opt": "",
            "amount_refunded_to_date": 0,
            "auth_id": "Not Available",
            "billing_address_id": 1,
            "billing_first_name": "John",
            "billing_last_name": "Doe_Multi_WL",
            "billing_street_address": "5882 Bolsa Ave Suite 100",
            "billing_street_address2": "",
            "billing_city": "Huntington Beach",
            "billing_state": "CA",
            "billing_state_id": null,
            "billing_postcode": "92649",
            "billing_country": "US",
            "billing_cycle": 0,
            "billing_model_id": 14,
            "campaign_id": 150,
            "cc_expires": 327,
            "cc_first_6": 144444,
            "cc_last_4": 4445,
            "cc_number": 4445,
            "credit_card_number": "144444******4445",
            "cc_orig_first_6": 144444,
            "cc_orig_last_4": 4445,
            "cc_type": "visa",
            "chargeback_date": "0000-00-00",
            "check_account_last_4": null,
            "check_routing_last_4": null,
            "check_ssn_last_4": null,
            "check_transitnum": null,
            "child_id": 0,
            "click_id": "",
            "created_by_user_name": "api-adminportal",
            "created_by_employee_name": "Admin Portal",
            "coupon_discount_amount": 0,
            "coupon_id": 0,
            "credit_applied": 0,
            "promo_code": "0",
            "customer_id": 22035,
            "customers_telephone": "9856375978",
            "decline_salvage_discount_percent": 0,
            "decline_reason": "",
            "decline_reason_details": "",
            "decline_offer_expire_date": null,
            "email_address": "jon.p+798@lifemd.com",
            "first_name": "John",
            "fulfillment_status": "Pending",
            "gateway_id": 66,
            "gateway_descriptor": "Rex MD",
            "hold_date": "0000-00-00",
            "ip_address": "37.19.196.158",
            "is_blacklisted": 0,
            "is_chargeback": 0,
            "is_fraud": 0,
            "is_recurring": 1,
            "is_refund": 0,
            "is_rma": 0,
            "is_test_cc": 1,
            "is_void": 0,
            "last_name": "Doe_Multi_WL",
            "main_product_id": 179,
            "main_product_quantity": 30,
            "next_subscription_product": "Generic Cialis Daily, 2.5mg (Tadalafil)",
            "next_subscription_product_id": 179,
            "offer_id": 34,
            "on_hold": 0,
            "on_hold_by": "",
            "order_confirmed": "NO_STATUS",
            "order_confirmed_date": "0000-00-00",
            "order_sales_tax": 0,
            "order_sales_tax_amount": 0,
            "shipping_amount": 0,
            "order_status": 8,
            "order_total": 199.94,
            "parent_id": 32035,
            "prepaid_match": "No",
            "preserve_gateway": 0,
            "product_id": 179,
            "processor_id": "",
            "rebill_discount_percent": 0,
            "rebill_discount_is_one_time": true,
            "current_rebill_discount_percent": 0,
            "recurring_date": "0000-00-00",
            "refund_amount": 0,
            "refund_date": "0000-00-00",
            "retry_date": "0000-00-00",
            "return_id": null,
            "rma_id": null,
            "rma_number": "",
            "rma_reason": "",
            "shipping_date": "Not Shipped",
            "shipping_id": 24,
            "shipping_method_name": "Free Shipping, USPS Priority",
            "shipping_address_id": 1,
            "shipping_first_name": "Test",
            "shipping_last_name": "Test",
            "shipping_street_address": "5882 Bolsa Ave Suite 100",
            "shipping_street_address2": "",
            "shipping_city": "Huntington Beach",
            "shipping_state": "CA",
            "shipping_state_id": null,
            "shipping_postcode": 92649,
            "shipping_country": "US",
            "sub_affiliate": "",
            "tracking_number": "9400111899560991937023",
            "transaction_id": "Not Available",
            "upsell_product_id": 262,
            "upsell_product_quantity": 1,
            "void_amount": 0,
            "void_date": "0000-00-00",
            "shippable": 1,
            "website_received": "",
            "website_sent": "",
            "is_cascaded": 0,
            "custom_fields": "",
            "is_initial": true,
            "is_rebill_preauth": 0,
            "is_gift": 0,
            "pharmacy": "HB",
            "last_order_pharmacy": "",
            "hidden": false,
            "payment_id": 1,
            "archived": 0,
            "time_stamp": 1718703568,
            "created_at": "2024-06-18T05:39:28.000000Z",
            "updated_at": null
        },
        {
            "order_id": 32135,
            "acquisition_date": 1718703568,
            "ancestor_id": 32135,
            "affiliate": "",
            "afid": "",
            "sid": "",
            "affid": "",
            "c1": "",
            "c2": "",
            "c3": "",
            "aid": "",
            "opt": "",
            "amount_refunded_to_date": 0,
            "auth_id": "Not Available",
            "billing_address_id": 1,
            "billing_first_name": "John",
            "billing_last_name": "Doe_Multi_WL",
            "billing_street_address": "5882 Bolsa Ave Suite 100",
            "billing_street_address2": "",
            "billing_city": "Huntington Beach",
            "billing_state": "CA",
            "billing_state_id": null,
            "billing_postcode": "92649",
            "billing_country": "US",
            "billing_cycle": 0,
            "billing_model_id": 14,
            "campaign_id": 257,
            "cc_expires": 327,
            "cc_first_6": 144444,
            "cc_last_4": 4445,
            "cc_number": 4445,
            "credit_card_number": "144444******4445",
            "cc_orig_first_6": 144444,
            "cc_orig_last_4": 4445,
            "cc_type": "visa",
            "chargeback_date": "0000-00-00",
            "check_account_last_4": null,
            "check_routing_last_4": null,
            "check_ssn_last_4": null,
            "check_transitnum": null,
            "child_id": 0,
            "click_id": "",
            "created_by_user_name": "api-adminportal",
            "created_by_employee_name": "Admin Portal",
            "coupon_discount_amount": 0,
            "coupon_id": 0,
            "credit_applied": 0,
            "promo_code": "0",
            "customer_id": 22035,
            "customers_telephone": "9856375978",
            "decline_salvage_discount_percent": 0,
            "decline_reason": "",
            "decline_reason_details": "",
            "decline_offer_expire_date": null,
            "email_address": "jon.p+798@lifemd.com",
            "first_name": "John",
            "fulfillment_status": "Pending",
            "gateway_id": 66,
            "gateway_descriptor": "Rex MD",
            "hold_date": "0000-00-00",
            "ip_address": "37.19.196.158",
            "is_blacklisted": 0,
            "is_chargeback": 0,
            "is_fraud": 0,
            "is_recurring": 1,
            "is_refund": 0,
            "is_rma": 0,
            "is_test_cc": 1,
            "is_void": 0,
            "last_name": "Doe_Multi_WL",
            "main_product_id": 547,
            "main_product_quantity": 1,
            "next_subscription_product": "Semaglutide",
            "next_subscription_product_id": 547,
            "offer_id": 172,
            "on_hold": 0,
            "on_hold_by": "",
            "order_confirmed": "NO_STATUS",
            "order_confirmed_date": "0000-00-00",
            "order_sales_tax": 0,
            "order_sales_tax_amount": 0,
            "shipping_amount": 0,
            "order_status": 8,
            "order_total": 650,
            "parent_id": 32135,
            "prepaid_match": "No",
            "preserve_gateway": 0,
            "product_id": 547,
            "processor_id": "",
            "rebill_discount_percent": 0,
            "rebill_discount_is_one_time": true,
            "current_rebill_discount_percent": 0,
            "recurring_date": "0000-00-00",
            "refund_amount": 0,
            "refund_date": "0000-00-00",
            "retry_date": "0000-00-00",
            "return_id": null,
            "rma_id": null,
            "rma_number": "",
            "rma_reason": "",
            "shipping_date": "06/20/2024",
            "shipping_id": 24,
            "shipping_method_name": "Free Shipping, USPS Priority",
            "shipping_address_id": 1,
            "shipping_first_name": "Test",
            "shipping_last_name": "Test",
            "shipping_street_address": "5882 Bolsa Ave Suite 100",
            "shipping_street_address2": "",
            "shipping_city": "Huntington Beach",
            "shipping_state": "CA",
            "shipping_state_id": null,
            "shipping_postcode": 92649,
            "shipping_country": "US",
            "sub_affiliate": "",
            "tracking_number": "9400111899560881937023",
            "transaction_id": "Not Available",
            "upsell_product_id": 262,
            "upsell_product_quantity": 1,
            "void_amount": 0,
            "void_date": "0000-00-00",
            "shippable": 1,
            "website_received": "",
            "website_sent": "",
            "is_cascaded": 0,
            "custom_fields": "",
            "is_initial": true,
            "is_rebill_preauth": 0,
            "is_gift": 0,
            "pharmacy": "HB",
            "last_order_pharmacy": "",
            "hidden": false,
            "payment_id": 1,
            "archived": 0,
            "time_stamp": 1718703568,
            "created_at": "2024-06-18T05:39:28.000000Z",
            "updated_at": null
        },
        {
            "order_id": 32935,
            "acquisition_date": 1718703568,
            "ancestor_id": 32135,
            "affiliate": "",
            "afid": "",
            "sid": "",
            "affid": "",
            "c1": "",
            "c2": "",
            "c3": "",
            "aid": "",
            "opt": "",
            "amount_refunded_to_date": 0,
            "auth_id": "Not Available",
            "billing_address_id": 1,
            "billing_first_name": "John",
            "billing_last_name": "Doe_Multi_WL",
            "billing_street_address": "5882 Bolsa Ave Suite 100",
            "billing_street_address2": "",
            "billing_city": "Huntington Beach",
            "billing_state": "CA",
            "billing_state_id": null,
            "billing_postcode": "92649",
            "billing_country": "US",
            "billing_cycle": 0,
            "billing_model_id": 14,
            "campaign_id": 150,
            "cc_expires": 327,
            "cc_first_6": 144444,
            "cc_last_4": 4445,
            "cc_number": 4445,
            "credit_card_number": "144444******4445",
            "cc_orig_first_6": 144444,
            "cc_orig_last_4": 4445,
            "cc_type": "visa",
            "chargeback_date": "0000-00-00",
            "check_account_last_4": null,
            "check_routing_last_4": null,
            "check_ssn_last_4": null,
            "check_transitnum": null,
            "child_id": 0,
            "click_id": "",
            "created_by_user_name": "api-adminportal",
            "created_by_employee_name": "Admin Portal",
            "coupon_discount_amount": 0,
            "coupon_id": 0,
            "credit_applied": 0,
            "promo_code": "0",
            "customer_id": 22035,
            "customers_telephone": "9856375978",
            "decline_salvage_discount_percent": 0,
            "decline_reason": "DECLINE",
            "decline_reason_details": "",
            "decline_offer_expire_date": null,
            "email_address": "jon.p+798@lifemd.com",
            "first_name": "John",
            "fulfillment_status": "Pending",
            "gateway_id": 66,
            "gateway_descriptor": "Rex MD",
            "hold_date": "0000-00-00",
            "ip_address": "37.19.196.158",
            "is_blacklisted": 0,
            "is_chargeback": 0,
            "is_fraud": 0,
            "is_recurring": 1,
            "is_refund": 0,
            "is_rma": 0,
            "is_test_cc": 1,
            "is_void": 0,
            "last_name": "Doe_Multi_WL",
            "main_product_id": 179,
            "main_product_quantity": 30,
            "next_subscription_product": "Generic Cialis Daily, 2.5mg (Tadalafil)",
            "next_subscription_product_id": 179,
            "offer_id": 34,
            "on_hold": 0,
            "on_hold_by": "",
            "order_confirmed": "NO_STATUS",
            "order_confirmed_date": "0000-00-00",
            "order_sales_tax": 0,
            "order_sales_tax_amount": 0,
            "shipping_amount": 0,
            "order_status": 7,
            "order_total": 199.94,
            "parent_id": 32035,
            "prepaid_match": "No",
            "preserve_gateway": 0,
            "product_id": 179,
            "processor_id": "",
            "rebill_discount_percent": 0,
            "rebill_discount_is_one_time": true,
            "current_rebill_discount_percent": 0,
            "recurring_date": "0000-00-00",
            "refund_amount": 0,
            "refund_date": "0000-00-00",
            "retry_date": "0000-00-00",
            "return_id": null,
            "rma_id": null,
            "rma_number": "",
            "rma_reason": "",
            "shipping_date": "Not Shipped",
            "shipping_id": 24,
            "shipping_method_name": "Free Shipping, USPS Priority",
            "shipping_address_id": 1,
            "shipping_first_name": "Test",
            "shipping_last_name": "Test",
            "shipping_street_address": "5882 Bolsa Ave Suite 100",
            "shipping_street_address2": "",
            "shipping_city": "Huntington Beach",
            "shipping_state": "CA",
            "shipping_state_id": null,
            "shipping_postcode": 92649,
            "shipping_country": "US",
            "sub_affiliate": "",
            "tracking_number": "",
            "transaction_id": "Not Available",
            "upsell_product_id": 262,
            "upsell_product_quantity": 1,
            "void_amount": 0,
            "void_date": "0000-00-00",
            "shippable": 1,
            "website_received": "",
            "website_sent": "",
            "is_cascaded": 0,
            "custom_fields": "",
            "is_initial": true,
            "is_rebill_preauth": 0,
            "is_gift": 0,
            "pharmacy": "HB",
            "last_order_pharmacy": "",
            "hidden": false,
            "payment_id": 1,
            "archived": 0,
            "time_stamp": 1718703568,
            "created_at": "2024-06-18T05:39:28.000000Z",
            "updated_at": null
        }
    ],
    "meta": {
        "current_page": 1,
        "per_page": 25,
        "total": 12,
        "last_page": 1,
        "from": 1,
        "to": 12
    },
    "links": {
        "first": "http://localhost/api/v1/orders?page=1",
        "last": "http://localhost/api/v1/orders?page=1",
        "prev": null,
        "next": null
    },
    "version": "v1"
}
 

Request      

GET api/v1/orders

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

Show a single order with products and notes

requires authentication

Example request:
curl --request GET \
    --get "https://slick.dev.prm-lfmd.com/api/v1/orders/32008" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/orders/32008"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-request-id: 89f98e4a-d663-41b7-8f1e-2afdb12fffd0
x-ratelimit-limit: 60
x-ratelimit-remaining: 57
access-control-allow-origin: *
 

{
    "success": true,
    "message": "Order retrieved successfully",
    "data": {
        "orderId": "32008",
        "orderStatus": "8",
        "orderTotal": "60.00",
        "transactionId": "9203565742",
        "authId": "485868",
        "declineReason": "",
        "campaignId": "150",
        "customerId": "22008",
        "gatewayId": "66",
        "gatewayDescriptor": "Rex MD",
        "prepaidMatch": "No",
        "ccLast4": "3367",
        "ccFirst6": "514300",
        "ccType": "master",
        "firstName": "John",
        "lastName": "Doe_Shipped",
        "emailAddress": "dylan+shipped@lifemd.com",
        "phone": "3072727045",
        "ipAddress": "173.205.178.8",
        "billingAddress": {
            "firstName": "John",
            "lastName": "Doe_Shipped",
            "address1": "5882 Bolsa Ave Suite 100",
            "address2": "",
            "city": "Huntington Beach",
            "state": "CA",
            "zip": "92649",
            "country": "US"
        },
        "shippingAddress": {
            "firstName": "John",
            "lastName": "Doe_Shipped",
            "address1": "5882 Bolsa Ave Suite 100",
            "address2": "",
            "city": "Huntington Beach",
            "state": "CA",
            "zip": 82426,
            "country": "US"
        },
        "products": [
            {
                "productId": "142",
                "offerId": "34",
                "billingModelId": "14",
                "name": "50mg Auth Generic Viagra",
                "sku": "100011",
                "price": "10.00",
                "productQty": "6",
                "lineTotal": "60.00",
                "isRecurring": "1",
                "recurringDate": "2026-02-01",
                "subscriptionId": "e2ba60adc8ecd4d3db80320edc132008",
                "isAddOn": "0",
                "isInTrial": "0",
                "isShippable": "1",
                "onHold": "0",
                "holdDate": "0000-00-00"
            }
        ],
        "totals_breakdown": {
            "subtotal": "0.00",
            "discount": "0.00",
            "shipping": "0.00",
            "tax": "0.00",
            "total": "60.00"
        },
        "onHold": "0",
        "fulfillmentStatus": "Completed",
        "acquisitionDate": "1707598571",
        "dateCreated": "2025-12-04 19:26:56",
        "dateUpdated": ""
    },
    "version": "v1"
}
 

Request      

GET api/v1/orders/{orderId}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

orderId   integer     

Example: 32008

Update order fields (status, hold, shipping, notes)

requires authentication

Example request:
curl --request PATCH \
    "https://slick.dev.prm-lfmd.com/api/v1/orders/32008" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"order_status\": \"declined\",
    \"fulfillment_status\": \"blocked\",
    \"shipping_id\": 16,
    \"shipping_method_name\": \"n\",
    \"tracking_number\": \"g\",
    \"note\": \"z\"
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/orders/32008"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "order_status": "declined",
    "fulfillment_status": "blocked",
    "shipping_id": 16,
    "shipping_method_name": "n",
    "tracking_number": "g",
    "note": "z"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PATCH api/v1/orders/{orderId}

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

orderId   integer     

Example: 32008

Body Parameters

order_status   string  optional    

Example: declined

Must be one of:
  • pending
  • approved
  • declined
  • voided
  • refunded
  • on_hold
fulfillment_status   string  optional    

Example: blocked

Must be one of:
  • pending
  • eligible
  • blocked
  • sent
  • complete
shipping_id   integer  optional    

Example: 16

shipping_method_name   string  optional    

Must not be greater than 50 characters. Example: n

tracking_number   string  optional    

Must not be greater than 40 characters. Example: g

note   string  optional    

Must not be greater than 1000 characters. Example: z

Void an order

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/v1/orders/32008/void" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/orders/32008/void"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/orders/{orderId}/void

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

orderId   integer     

Example: 32008

Refund an order

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/v1/orders/32008/refund" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"amount\": 27,
    \"reason\": \"n\"
}"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/orders/32008/refund"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "amount": 27,
    "reason": "n"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/orders/{orderId}/refund

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

orderId   integer     

Example: 32008

Body Parameters

amount   number  optional    

Must be at least 0.01. Example: 27

reason   string  optional    

Must not be greater than 255 characters. Example: n

Place order on hold

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/v1/orders/32008/hold" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/orders/32008/hold"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/orders/{orderId}/hold

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

orderId   integer     

Example: 32008

Remove hold from order

requires authentication

Example request:
curl --request POST \
    "https://slick.dev.prm-lfmd.com/api/v1/orders/32008/unhold" \
    --header "Authorization: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://slick.dev.prm-lfmd.com/api/v1/orders/32008/unhold"
);

const headers = {
    "Authorization": "Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/orders/{orderId}/unhold

Headers

Authorization        

Example: Basic YWRtaW5wb3J0YWw6TlhtUGU5Sk5FV2s4d2U=

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

orderId   integer     

Example: 32008