### List website pages with pagination Source: https://help.kajabi.com/api-reference/sites/list-website-pages Example of how to get the first page of 10 website pages. ```http GET /v1/website_pages[number]=1&page[size]=10 ``` -------------------------------- ### Example Response Source: https://help.kajabi.com/api-reference/kajabi-payments-payouts/get-payout-details This JSON object shows an example response for retrieving payout details, including status, amount, currency, dates, and a list of associated transactions. ```json { "data": { "id": "payout_abc123", "type": "kajabi_payments_payouts", "attributes": { "status": "Paid", "amount": 1450.50, "currency": "USD", "initiated_date": "2024-01-10T10:00:00.000Z", "estimated_arrival_date": "2024-01-17T10:00:00.000Z", "bank_account": "Chase Bank - 1234", "transactions": [ { "transaction_type": "Sales", "pricing_type": "Subscription", "sales_tax": 0.0, "amount": 99.00, "currency": "USD", "fee": 3.17, "net": 95.83, "customer_id": 789, "customer_name": "John Doe", "customer_email": "john@example.com", "offer_ids": [ 101 ], "offer_titles": [ "Premium Membership" ], "provider": "Kajabi Payments", "payment_method": "Visa", "created_at": "2024-01-08T14:30:00.000Z", "coupon_used": "SAVE20", "presented_amount": 99.00, "presented_currency": "USD", "exchange_rate": 1.0, "quantity": 1, "order_number": "ORD-12345" } ] } } } ``` -------------------------------- ### List website pages with pagination Source: https://help.kajabi.com/api-reference/sites/list-website-pages Example of how to get the second page of 25 website pages. ```http GET /v1/website_pages[number]=2&page[size]=25 ``` -------------------------------- ### Include modules, lessons and related media, and offers Source: https://help.kajabi.com/api-reference/courses/course-details Example of a GET request to retrieve course details along with its associated modules, lessons, media, and offers using the `include` query parameter. ```HTTP GET /v1/courses/123?include=modules,lessons,lessons.media,offers ``` ```JSON { "data": { "id": "123", "type": "courses", "attributes": { "created_at": "2024-08-06T05:30:38.669Z", "title": "Advanced Marketing", "description": "Master level marketing course", "thumbnail_url": "https://example.com/thumbnail.jpg" }, "relationships": { "modules": { "data": [ { "id": "456", "type": "modules" } ] }, "lessons": { "data": [ { "id": "789", "type": "lessons" } ] }, "offers": { "data": [ { "id": "101", "type": "offers" } ] } }, "included": [ { "id": "456", "type": "modules", "attributes": { "title": "Marketing Fundamentals", "description": "Introduction to marketing concepts", "position": 1, "poster_image_url": "https://example.com/poster.jpg", "publishing_option": "published" } }, { "id": "789", "type": "lessons", "attributes": { "title": "Marketing Basics", "position": 1, "status": "published", "publishing_option": "published" } }, { "id": "202", "type": "media", "attributes": { "duration_in_minutes": 1 } }, { "id": "101", "type": "offers", "attributes": { "price": 100.0, "currency": "USD", "status": "active" } } ] } } ``` -------------------------------- ### Get Offer with Products Included Source: https://help.kajabi.com/api-reference/offers/offer-details This example demonstrates how to fetch an offer and include its associated products. The response shows the offer's attributes and the related product details. ```http GET /v1/offers/123?include=products ``` ```json { "data": { "id": "123", "type": "offers", "attributes": { "title": "Advanced Course Bundle", "description": "Complete advanced course bundle with expert guidance", "internal_title": "advanced_course_bundle", "currency": "USD", "price_in_cents": 19900, "payment_type": "stripe", "token": "123", "payment_method": "stripe", "price_description": "$199.00", "checkout_url": "https://api.kajabi.com/checkout/123", "recurring_offer": false, "subscription": false, "one_time": true, "single": true, "free": false, "image_url": "https://api.kajabi.com/images/456" }, "relationships": { "products": { "data": [ { "id": "456", "type": "products" } ] } } }, "included": [ { "id": "456", "type": "products", "attributes": { "created_at": "2021-01-01T00:00:00Z", "title": "Advanced Course", "description": "Complete advanced course with expert guidance", "status": "ready", "members_aggregate_count": 100, "product_type_name": "Course", "product_type_id": 456, "publish_status": "published", "image_url": "https://api.kajabi.com/images/456" } } ] } ``` -------------------------------- ### Get page 2 of customers from site 123, including only name and email fields, searching for "smith" Source: https://help.kajabi.com/api-reference/customers/list-customers This example demonstrates combining multiple parameters: filtering by site, selecting specific fields (sparse fieldsets), paginating results, and searching by name. The response is paginated and includes only the requested fields. ```HTTP GET /v1/customers?filter[site_id]=123&fields[customers]=name,email&page[number]=2&page[size]=10&filter[search]=smith ``` ```JSON { "data": [{ "id": "456", "type": "customers", "attributes": { "name": "John Smith", "email": "john.smith@example.com" } }], "links": { "self": "https://app.kajabi.com/api/v1/customers?filter[site_id]=123&fields[customers]=name,email&page[number]=2&page[size]=10&filter[search]=smith", "first": "https://app.kajabi.com/api/v1/customers?filter[site_id]=123&fields[customers]=name,email&page[number]=1&page[size]=10&filter[search]=smith", "prev": "https://app.kajabi.com/api/v1/customers?filter[site_id]=123&fields[customers]=name,email&page[number]=1&page[size]=10&filter[search]=smith", "next": null, "last": "https://app.kajabi.com/api/v1/customers?filter[site_id]=123&fields[customers]=name,email&page[number]=2&page[size]=10&filter[search]=smith" }, "meta": { "total_pages": 2, "total_count": 15, "current_page": 2 } } ``` -------------------------------- ### Sparse fields example Source: https://help.kajabi.com/api-reference/customers/list-customers Example of requesting only specific attributes (name and email) for customers. ```HTTP GET /v1/customers?fields[customers]=name,email ``` -------------------------------- ### Pagination examples Source: https://help.kajabi.com/api-reference/customers/list-customers Examples demonstrating how to paginate customer results using `page[number]` and `page[size]` parameters. ```HTTP GET /v1/customers?page[number]=1&page[size]=10 ``` ```HTTP GET /v1/customers?page[number]=2&page[size]=25 ``` -------------------------------- ### Filter by title starting with Source: https://help.kajabi.com/api-reference/landing-pages/list-landing-pages Example of filtering landing pages where the title starts with 'Course'. ```http GET /v1/landing_pages?filter[title_start]=Course ``` -------------------------------- ### Response Example Source: https://help.kajabi.com/api-reference/offers/list-offers Example JSON response for a paginated and filtered list of offers, showing sparse fields. ```JSON { "data": [ { "id": "456", "type": "offers", "attributes": { "title": "Basic Course Bundle", "price_in_cents": 9900 }, "relationships": { "site": { "data": { "id": "123", "type": "sites" } } } } ], "links": { "self": "https://api.kajabi.com/v1/offers?page[number]=2&page[size]=10&sort=-price_in_cents&filter[site_id]=123&fields[offers]=title,price_in_cents", "first": "https://api.kajabi.com/v1/offers?page[number]=1&page[size]=10&sort=-price_in_cents&filter[site_id]=123&fields[offers]=title,price_in_cents", "prev": "https://api.kajabi.com/v1/offers?page[number]=1&page[size]=10&sort=-price_in_cents&filter[site_id]=123&fields[offers]=title,price_in_cents", "next": null, "last": "https://api.kajabi.com/v1/offers?page[number]=2&page[size]=10&sort=-price_in_cents&filter[site_id]=123&fields[offers]=title,price_in_cents" }, "meta": { "total_pages": 2, "total_count": 15, "current_page": 2 } } ``` -------------------------------- ### Array filter example (item IDs in) Source: https://help.kajabi.com/api-reference/orders/list-order-items Example of an array filter to get order items with specific item IDs. ```http GET /v1/order_items?filter[site_id]=123&filter[item_id_in]=123,456,789 ``` -------------------------------- ### Pagination Examples Source: https://help.kajabi.com/api-reference/orders/list-orders Demonstrates how to paginate through order results using `page[number]` and `page[size]` parameters. ```http GET /v1/orders?page[number]=1&page[size]=10 ``` ```http GET /v1/orders?page[number]=2&page[size]=25 ``` -------------------------------- ### Pagination Examples Source: https://help.kajabi.com/api-reference/webhooks/list-hooks Use `page[number]` and `page[size]` parameters to paginate results. ```http GET /v1/hooks?page[number]=1&page[size]=10 ``` ```http GET /v1/hooks?page[number]=2&page[size]=25 ``` -------------------------------- ### Get transaction with specific fields and included relationships Source: https://help.kajabi.com/api-reference/transactions/transaction-details Example of a GET request to retrieve a transaction with specific fields and include related customer data with their specific fields. ```http GET /v1/transactions/123?include=customer&fields[transactions]=amount_in_cents,sales_tax_in_cents&fields[customers]=name,email ``` -------------------------------- ### Get Product Details with Specific Fields Source: https://help.kajabi.com/api-reference/products/product-details Example of how to request only the title and publish_status fields for a product. ```http GET /v1/products/123?fields[products]=title,publish_status ``` -------------------------------- ### Filtering by site and offer example Source: https://help.kajabi.com/api-reference/customers/list-customers Example of filtering customers by site ID and checking for offer ownership. ```HTTP GET /v1/customers?filter[site_id]=123&filter[has_offer_id]=789 ``` -------------------------------- ### Sorting examples Source: https://help.kajabi.com/api-reference/customers/list-customers Examples of how to sort customer lists by different fields in ascending or descending order. ```HTTP GET /v1/customers?filter[site_id]=123&sort=created_at ``` ```HTTP GET /v1/customers?filter[site_id]=123&sort=name ``` ```HTTP GET /v1/customers?filter[site_id]=123&sort=-email ``` ```HTTP GET /v1/customers?filter[site_id]=123&sort=net_revenue ``` ```HTTP GET /v1/customers?filter[site_id]=123&sort=-last_request_at ``` -------------------------------- ### Using Multiple Parameters Together Source: https://help.kajabi.com/api-reference/customers/customer-details This example shows how to combine multiple parameters, such as `include`, `fields`, pagination, and search, in a single API request. ```HTTP GET /v1/customers/123?include=products&fields[customers]=name&fields[product]=title ``` ```JSON { "data": { "id": "123", "type": "customers", "attributes": { "name": "Alice Smith" }, "relationships": {} }, "included": [ { "id": "789", "type": "products", "attributes": { "title": "Course 1" } } ] } ``` -------------------------------- ### Get payouts for a specific site Source: https://help.kajabi.com/api-reference/kajabi-payments-payouts/list-payouts Example of filtering payouts by site ID. ```http GET /v1/kajabi_payments_payouts?filter[site_id]=123 ``` -------------------------------- ### Filtering by site and offer response example Source: https://help.kajabi.com/api-reference/customers/list-customers An example of a JSON response showing customers filtered by site and offer ownership. ```JSON { "data": [{ "id": "456", "type": "customers", "attributes": { "name": "Alice Smith", "email": "alice@example.com", "external_user_id": "cust_123" }, "relationships": { "site": { "data": { "id": "123", "type": "sites" } }, "offers": { "links": { "self": "https://app.kajabi.com/api/v1/customers/456/relationships/offers", "related": "https://app.kajabi.com/api/v1/customers/456/offers" } } } }] } ``` -------------------------------- ### Pagination response example Source: https://help.kajabi.com/api-reference/offers/list-offers The response includes pagination links and meta data. ```json { "links": { "self": "https://api.kajabi.com/v1/offers?page[number]=2&page[size]=10", "first": "https://api.kajabi.com/v1/offers?page[number]=1&page[size]=10", "prev": "https://api.kajabi.com/v1/offers?page[number]=1&page[size]=10", "next": "https://api.kajabi.com/v1/offers?page[number]=3&page[size]=10", "last": "https://api.kajabi.com/v1/offers?page[number]=5&page[size]=10" }, "meta": { "total_pages": 5, "total_count": 50, "current_page": 2 } } ``` -------------------------------- ### Get custom fields that are required Source: https://help.kajabi.com/api-reference/custom-fields/list-custom-fields Example of how to filter custom fields to retrieve only those that are marked as required. ```bash GET /v1/custom_fields?filter[required_eq]=true ``` -------------------------------- ### Include offers and products Source: https://help.kajabi.com/api-reference/customers/customer-details This example shows how to include related contact, offers, and products in the customer details response by using the `include` query parameter. ```HTTP GET /v1/customers/123?include=contact,offers,products ``` ```JSON { "data": { "id": "123", "type": "customers", "attributes": { "name": "Alice Smith", "email": "alice@example.com", "avatar": null, "external_user_id": "cust_123", "public_bio": null, "public_location": null, "public_website": null, "socials": null, "net_revenue": "0.0", "sign_in_count": 0, "last_request_at": null, "bounced_at": null, "created_at": "2021-01-01T00:00:00Z", "updated_at": "2021-01-01T00:00:00Z" }, "links": { "contact": "https://app.kajabi.com/api/v1/contacts/321" }, "relationships": { "contact": { "data": { "id": "321", "type": "contacts" } }, "offers": { "data": [{ "id": "456", "type": "offers" }], "links": { "self": "https://app.kajabi.com/api/v1/customers/123/relationships/offers" } }, "products": { "data": [{ "id": "789", "type": "products" }] } } }, "included": [ { "id": "456", "type": "offers", "attributes": { "name": "Offer 1", "description": "Offer 1 description", "internal_title": "Offer 1", "price_in_cents": 0, "payment_type": "free", "token": "offer_123", "payment_method": "none", "price_description": "Free", "checkout_url": "https://mywebsite.com/offers/456", "recurring_offer": false, "subscription": false, "one_time": true, "single": false, "free": true } }, { "id": "789", "type": "products", "attributes": { "created_at": "2024-11-12T23:43:09.551Z", "title": "Course 1", "description": "Course 1 description", "status": "ready", "members_aggregate_count": 0, "product_type_name": "Course", "product_type_id": 789, "publish_status": "published", "thumbnail_url": null } }, { "id": "321", "type": "contacts", "attributes": { "name": "Alice Smith", "email": "alice@example.com", "address_line_1": null, "address_line_2": null, "address_city": null, "address_country": null, "address_state": null, "address_zip": null, "phone_number": null, "business_number": null, "subscribed": false, "external_user_id": null, "created_at": "2024-11-20T18:53:19.389Z", "updated_at": "2024-11-20T18:53:19.389Z" } } ] } ``` -------------------------------- ### Get course details with modules and lessons, showing only specific fields Source: https://help.kajabi.com/api-reference/courses/course-details Example of combining sparse fields and include parameters in a single request to get course details with related resources and specific fields. ```HTTP GET /v1/courses/123?include=modules,lessons,lessons.media&fields[courses]=title,thumbnail_url&fields[modules]=title&fields[lessons]=title&fields[media]=duration_in_minutes ``` -------------------------------- ### Get second page of 25 items Source: https://help.kajabi.com/api-reference/orders/list-order-items Example of how to retrieve the second page of 25 order items. ```http GET /v1/order_items?page[number]=2&page[size]=25 ``` -------------------------------- ### Pagination Examples Source: https://help.kajabi.com/api-reference/podcasts/list-podcasts Examples demonstrating how to paginate results using `page[number]` and `page[size]` parameters. ```HTTP GET /v1/podcasts?page[number]=1&page[size]=10 ``` ```HTTP GET /v1/podcasts?page[number]=2&page[size]=25 ``` -------------------------------- ### Get first page of 10 items Source: https://help.kajabi.com/api-reference/orders/list-order-items Example of how to retrieve the first page of 10 order items. ```http GET /v1/order_items?page[number]=1&page[size]=10 ``` -------------------------------- ### Sorting Examples Source: https://help.kajabi.com/api-reference/orders/list-orders Illustrates how to sort orders by different fields in ascending or descending order using the `sort` parameter. ```http GET /v1/orders?sort=order_number ``` ```http GET /v1/orders?sort=-created_at ``` -------------------------------- ### Get first page of 10 items Source: https://help.kajabi.com/api-reference/offers/list-offers Use `page[number]` and `page[size]` parameters to paginate results. ```http GET /v1/offers?page[number]=1&page[size]=10 ``` -------------------------------- ### Get paid payouts for a specific site Source: https://help.kajabi.com/api-reference/kajabi-payments-payouts/list-payouts Example of filtering payouts by site ID and status. ```http GET /v1/kajabi_payments_payouts?filter[site_id]=123&filter[status]=paid ``` -------------------------------- ### Get first page of payouts Source: https://help.kajabi.com/api-reference/kajabi-payments-payouts/list-payouts Example of how to retrieve the first page of payouts for a specific site. ```http GET /v1/kajabi_payments_payouts?page[number]=1&filter[site_id]=123 ``` -------------------------------- ### Pagination Example Source: https://help.kajabi.com/api-reference/courses/list-courses Demonstrates how to paginate API results to retrieve courses in batches. ```http GET /v1/courses?page[number]=1&page[size]=10 ``` ```http GET /v1/courses?page[number]=2&page[size]=25 ``` -------------------------------- ### Get contact tags for site with ID 123 Source: https://help.kajabi.com/api-reference/contact-tags/list-contact-tags Example of filtering contact tags by a specific site ID. ```http GET /v1/contact_tags?filter[site_id]=123 ``` -------------------------------- ### Sorting Examples Source: https://help.kajabi.com/api-reference/podcasts/list-podcasts Examples showing how to sort podcasts by title in ascending and descending order using the `sort` parameter. ```HTTP GET /v1/podcasts?sort=title ``` ```HTTP GET /v1/podcasts?sort=-title ``` -------------------------------- ### List landing pages with pagination Source: https://help.kajabi.com/api-reference/landing-pages/list-landing-pages Example of how to paginate results to get the second page with 25 items. ```http GET /v1/landing_pages?page[number]=2&page[size]=25 ``` -------------------------------- ### List landing pages with pagination Source: https://help.kajabi.com/api-reference/landing-pages/list-landing-pages Example of how to paginate results to get the first page with 10 items. ```http GET /v1/landing_pages?page[number]=1&page[size]=10 ``` -------------------------------- ### Get first page of 10 items Source: https://help.kajabi.com/api-reference/sites/list-sites Use `page[number]` and `page[size]` parameters to paginate results. ```http GET /v1/sites?page[number]=1&page[size]=10 ``` -------------------------------- ### Get payouts within a date range Source: https://help.kajabi.com/api-reference/kajabi-payments-payouts/list-payouts Example of filtering payouts by site ID and a specific date range. ```http GET /v1/kajabi_payments_payouts?filter[site_id]=123&filter[start_date]=2024-01-01&filter[end_date]=2024-01-31 ``` -------------------------------- ### Include customer and offer relationships Source: https://help.kajabi.com/api-reference/transactions/transaction-details This example shows how to use the `include` parameter to fetch related customer and offer data along with transaction details. ```http GET /v1/transactions/123?include=customer,offer ``` ```json { "data": { "id": "123", "type": "transactions", "attributes": { "action": "subscription_charge", "state": "succeeded", "payment_type": "subscription", "amount_in_cents": 100, "sales_tax_in_cents": 0, "currency": "USD", "currency_symbol": "$", "formatted_amount": "$1.00", "created_at": "2025-03-14T19:17:38.000Z" }, "relationships": { "customer": { "data": { "id": "456", "type": "customers" } }, "offer": { "data": { "id": "789", "type": "offers" } } } }, "included": [ { "id": "456", "type": "customers", "attributes": { "name": "John Doe", "email": "email@example.com", "avatar": "https://example.com/avatar.jpg", "external_user_id": "123", "public_bio": "Public Bio", "public_location": "Public Location", "public_website": "https://example.com", "socials": { "twitter": "https://twitter.com", "facebook": "https://facebook.com", "linkedin": "https://linkedin.com" }, "net_revenue": 10000, "sign_in_count": 10, "last_request_at": "2024-01-15T10:30:00Z", "bounced_at": "2024-01-15T10:30:00Z", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" } }, { "id": "789", "type": "offers", "attributes": { "title": "Offer Title", "description": "Offer Description", "internal_title": "Internal Title", "price_in_cents": 9900, "payment_type": "payment_method", "token": "offer_token", "payment_method": "payment_method", "price_description": "Price Description", "checkout_url": "https://example.com/checkout", "recurring_offer": true, "subscription": true, "one_time": false, "single": false, "free": false } } ] } ``` -------------------------------- ### List offers with pagination Source: https://help.kajabi.com/api-reference/offers/list-offers Example of how to paginate through the list of offers, retrieving a specific page size. ```http GET /v1/offers?page[number]=1&page[size]=10 ``` ```http GET /v1/offers?page[number]=2&page[size]=25 ``` -------------------------------- ### Get second page of payouts Source: https://help.kajabi.com/api-reference/kajabi-payments-payouts/list-payouts Example of how to retrieve the second page of payouts for a specific site, demonstrating pagination. ```http GET /v1/kajabi_payments_payouts?page[number]=2&filter[site_id]=123 ```