neclimdul / thinkific-admin
Thinkific's public API can be used to integrate your application with your Thinkific site.
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Forks: 0
pkg:composer/neclimdul/thinkific-admin
Requires
- php: >=8.1
 - ext-curl: *
 - ext-json: *
 - ext-mbstring: *
 - guzzlehttp/guzzle: ^6.2 || ^7.0
 - neclimdul/openapi-php-helper: >=1.2.0@alpha
 
Requires (Dev)
- fakerphp/faker: ^1.20
 - illuminate/support: >5.0.0
 - neclimdul/openapi-php-testing: ^1.0@beta
 - php-parallel-lint/php-parallel-lint: ^1.2
 - phpspec/prophecy-phpunit: ^2.0
 - phpstan/phpstan: ^1.0.0
 - phpunit/phpunit: ^10.0
 - squizlabs/php_codesniffer: ^3.7
 - vimeo/psalm: ^5.9
 
This package is auto-updated.
Last update: 2025-10-31 00:35:23 UTC
README
Thinkific's public API can be used to integrate your application with your Thinkific site.
Installation & Usage
Requirements
PHP 8.1 and later.
Composer
To install the bindings via Composer, add the following to composer.json:
composer require neclimdul/thinkific-admin
Getting Started
Please follow the installation procedure and then run the following:
<?php
require_once(__DIR__ . '/vendor/autoload.php');
use NecLimDul\Thinkific\Admin\ApiException;
// Configure API key authorization: ApiKey
$config = \NecLimDul\Thinkific\Admin\Configuration::getDefaultConfiguration()->setApiKey('X-Auth-API-Key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = \NecLimDul\Thinkific\Admin\Configuration::getDefaultConfiguration()->setApiKeyPrefix('X-Auth-API-Key', 'Bearer');
// Configure API key authorization: ApiKeySubdomain
$config = \NecLimDul\Thinkific\Admin\Configuration::getDefaultConfiguration()->setApiKey('X-Auth-Subdomain', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = \NecLimDul\Thinkific\Admin\Configuration::getDefaultConfiguration()->setApiKeyPrefix('X-Auth-Subdomain', 'Bearer');
// Configure Bearer authorization: OAuthAccessToken
$config = \NecLimDul\Thinkific\Admin\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');
$apiInstance = new \NecLimDul\Thinkific\Admin\Api\BundlesApi(
    // If you want to use custom http client, pass your client which implements `\GuzzleHttp\ClientInterface`.
    // This is optional, `\GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$id = 3.4; // float | ID of the Bundle in the form of an integer
$page = 1.0; // float | The page within the collection to fetch
$limit = 25.0; // float | The number of items to be returned
try {
    $result = $apiInstance->bundlesIdCoursesGet($id, $page, $limit);
    print_r($result);
} catch (ApiException $e) {
    echo 'Exception when calling BundlesApi->bundlesIdCoursesGet: ', $e->getMessage(), PHP_EOL;
}
API Endpoints
All URIs are relative to https://api.thinkific.com/api/public/v1
| Class | Method | HTTP request | Description | 
|---|---|---|---|
| BundlesApi | bundlesIdCoursesGet | GET /bundles/{id}/courses | List Courses by bundle ID | 
| BundlesApi | createEnrollmentInBundle | POST /bundles/{id}/enrollments | Create an Enrollment in a Bundle of Courses | 
| BundlesApi | getBundleByID | GET /bundles/{id} | List a bundle | 
| BundlesApi | getBundleEnrollments | GET /bundles/{id}/enrollments | List a enrollments in a bundle | 
| BundlesApi | updateEnrollmentsInBundle | PUT /bundles/{id}/enrollments | Update Enrollments in a Bundle | 
| CategoriesApi | crateCollection | POST /collections | Create a new Category | 
| CategoriesApi | deleteCollectionByID | DELETE /collections/{id} | Delete collection by ID | 
| CategoriesApi | getCollectionbyID | GET /collections/{id} | Get Collections by Id | 
| CategoriesApi | getCollections | GET /collections | Get Collections | 
| CategoriesApi | getProductsbyID | GET /collections/{id}/products | Get products by Collections id | 
| CategoriesApi | updateCollectioByID | PUT /collections/{id} | Update collection by ID | 
| CategoryMembershipsApi | addProductsToCategory | POST /collection_memberships/{id} | Add Product to Category | 
| CategoryMembershipsApi | deleteProductsByID | DELETE /collection_memberships/{id} | Delete Products by ID | 
| ChaptersApi | getChapterByID | GET /chapters/{id} | Get Chapters | 
| ChaptersApi | getContentsByID | GET /chapters/{id}/contents | Get Contents by Chapter id | 
| ContentsApi | getContentByID | GET /contents/{id} | Get Contents by Id | 
| CouponsApi | bulkCreateCoupons | POST /coupons/bulk_create | Bulk Create Coupons | 
| CouponsApi | createCoupon | POST /coupons | Create a Coupon | 
| CouponsApi | deleteCouponByID | DELETE /coupons/{id} | Delete Coupon by ID | 
| CouponsApi | getCouponByID | GET /coupons/{id} | Get a Coupon by ID | 
| CouponsApi | getCoupons | GET /coupons | Get Coupons | 
| CouponsApi | updateCoupon | PUT /coupons/{id} | Update a Coupon | 
| CourseReviewsApi | createCourseReview | POST /course_reviews | Create a course review | 
| CourseReviewsApi | getCourseReviewByID | GET /course_reviews/{id} | Get Course Reviews By ID | 
| CourseReviewsApi | getCourseReviews | GET /course_reviews | Get Course Reviews | 
| CoursesApi | getChapterOfCourseByID | GET /courses/{id}/chapters | Get Chapters by Course ID | 
| CoursesApi | getCourseByID | GET /courses/{id} | Get courses by ID | 
| CoursesApi | getCourses | GET /courses | Get Courses | 
| CustomProfileFieldDefinitionsApi | getCustomProfileFields | GET /custom_profile_field_definitions | Get Custom profile field definition | 
| EnrollmentsApi | createEnrollment | POST /enrollments | Create enrollment | 
| EnrollmentsApi | getEnrollments | GET /enrollments | Get Enrollments | 
| EnrollmentsApi | getEnrollmentsByID | GET /enrollments/{id} | Get enrollments by ID | 
| EnrollmentsApi | updateEnrollment | PUT /enrollments/{id} | Update enrollment | 
| ExternalOrdersApi | createExternalOrder | POST /external_orders | Create a new external order | 
| ExternalOrdersApi | externalOrdersIdTransactionsPurchasePost | POST /external_orders/{id}/transactions/purchase | purchase transaction | 
| ExternalOrdersApi | externalOrdersIdTransactionsRefundPost | POST /external_orders/{id}/transactions/refund | refund transaction | 
| GroupAnalystsApi | addGroupToAnalyst | POST /group_analysts/{user_id}/groups | Add Analyst to Groups | 
| GroupAnalystsApi | removeGroupFromAnalyst | DELETE /group_analysts/{user_id}/groups/{group_id} | Delete Analyst | 
| GroupUsersApi | createGroupUsers | POST /group_users | Create a User to existing Groups | 
| GroupsApi | createGroup | POST /groups | Create Group | 
| GroupsApi | deleteGroupByID | DELETE /groups/{id} | Delete Group by ID | 
| GroupsApi | getGroup | GET /groups/{id} | Get Group | 
| GroupsApi | getGroupAnalysts | GET /groups/{group_id}/analysts | Get Group Analysts | 
| GroupsApi | getGroups | GET /groups | Get Groups | 
| GroupsApi | postGroupAnalysts | POST /groups/{group_id}/analysts | Assign Analysts to a Group | 
| GroupsApi | removeAnalystFromGroup | DELETE /groups/{group_id}/analysts/{user_id} | Delete Analyst | 
| InstructorsApi | createInstructor | POST /instructors | Create instructor | 
| InstructorsApi | deleteInstructorByID | DELETE /instructors/{id} | Delete instructor | 
| InstructorsApi | getInstructorByID | GET /instructors/{id} | Get Instructor by ID | 
| InstructorsApi | getInstructors | GET /instructors | Get Instructors | 
| InstructorsApi | updateInstructor | PUT /instructors/{id} | Update instructor | 
| OrdersApi | getOrderByID | GET /orders/{id} | Get orders by ID | 
| OrdersApi | getOrders | GET /orders | Get Orders | 
| ProductPublishRequestApi | approvePublishRequest | POST /product_publish_requests/{id}/approve | Approves Product Publish Request | 
| ProductPublishRequestApi | denyPublicationRequest | POST /product_publish_requests/{id}/deny | Denies Product Publish Request | 
| ProductPublishRequestApi | getProductPublishRequestByID | GET /product_publish_requests/{id} | Get product publish request by ID | 
| ProductPublishRequestApi | getProductPublishRequests | GET /product_publish_requests | Get List of unhandled product publish requests | 
| ProductsApi | getProductByID | GET /products/{id} | Get product by ID | 
| ProductsApi | getProducts | GET /products | List products | 
| ProductsApi | getRelatedProductByProductID | GET /products/{id}/related | Get related products | 
| PromotionsApi | createPromotion | POST /promotions | Create a new promotion | 
| PromotionsApi | deletePromotionByID | DELETE /promotions/{id} | Delete promotion by provided ID | 
| PromotionsApi | getPromotionByID | GET /promotions/{id} | Get promotion by provided ID | 
| PromotionsApi | getPromotions | GET /promotions | List promotions | 
| PromotionsApi | promotionsByCouponGet | GET /promotions/by_coupon | Get Promotion associated with the provided Coupon code. | 
| PromotionsApi | updatePromotionByID | PUT /promotions/{id} | Update promotion by provided ID | 
| SiteScriptsApi | createSiteScript | POST /site_scripts | Create Site Script | 
| SiteScriptsApi | deleteSiteScriptByID | DELETE /site_scripts/{id} | Delete Site Script by ID | 
| SiteScriptsApi | getSiteScriptByID | GET /site_scripts/{id} | Get Site Script by ID | 
| SiteScriptsApi | getSiteScripts | GET /site_scripts | List Site Scripts | 
| SiteScriptsApi | updateSiteScriptByID | PUT /site_scripts/{id} | Update Site Script by ID | 
| UsersApi | createUser | POST /users | Create user | 
| UsersApi | deleteUserByID | DELETE /users/{id} | Delete user by ID | 
| UsersApi | getUserAuthByIDAndProvider | GET /users/{id}/authentications/{provider} | Get User Auth data by ID and Provider | 
| UsersApi | getUserByID | GET /users/{id} | List Users by ID | 
| UsersApi | getUsers | GET /users | List Users | 
| UsersApi | updateUserByID | PUT /users/{id} | Update user by ID | 
Models
- AuthenticationResponse
 - BulkCreateCouponRequest
 - BundleResponse
 - ChapterResponse
 - CollectionRequest
 - CollectionResponse
 - ContentResponse
 - CouponResponse
 - CourseResponse
 - CourseReviewResponse
 - CreateBulkCouponResponse
 - CreateCouponRequest
 - CreateCourseReviewRequest
 - CreateEnrollmentRequest
 - CreateExternalOrder201Response
 - CreateGroupUsersRequest
 - CreateUserRequest
 - CustomProfileField
 - CustomProfileFieldDefinitionsResponse
 - CustomProfileFieldRequest
 - EnrollmentResponse
 - ErrorBadRequest
 - ErrorForbiddenAppsNotAvailable
 - ErrorForbiddenInsufficientScope
 - ErrorNotFound
 - ExternalOrderRequest
 - ExternalOrderTransaction
 - GetChaptersResponse
 - GetCollectionsResponse
 - GetContentsResponse
 - GetCouponResponse
 - GetCourseReviewsResponse
 - GetCoursesResponse
 - GetCustomProfileFieldDefinitions
 - GetEnrollmentsResponse
 - GetGroupAnalystsResponse
 - GetGroupsResponse
 - GetInstructorsResponse
 - GetOrdersResponse
 - GetProductPublishResponse
 - GetProductsResponse
 - GetPromotionsResponse
 - GetSiteScriptsResponse
 - GetUsersResponse
 - GroupAddAnalystRequest
 - GroupAnalystsAddGroupRequest
 - GroupRequest
 - GroupResponse
 - InstructorRequest
 - InstructorResponse
 - Item
 - MembershipsRequest
 - Meta
 - OrderResponse
 - Pagination
 - ProductPriceResponse
 - ProductPublishRequest
 - ProductPublishRequestBody
 - ProductResponse
 - PromotionRequest
 - PromotionResponse
 - SiteScriptRequest
 - SiteScriptResponse
 - UnprocessableEntityError
 - UpdateCoupon
 - UpdateEnrollmentRequest
 - UpdateEnrollmentsInBundleRequest
 - UpdateUserRequest
 - UserResponse
 - ValidationError
 
Authorization
OAuthAccessToken
- Type: Bearer authentication
 
ApiKey
- Type: API key
 - API key parameter name: X-Auth-API-Key
 - Location: HTTP header
 
ApiKeySubdomain
- Type: API key
 - API key parameter name: X-Auth-Subdomain
 - Location: HTTP header
 
Tests
To run the tests, use:
composer install
vendor/bin/phpunit
Author
developers@thinkific.com
About this package
This PHP package is automatically generated by the OpenAPI Generator project:
- API version: 
v1 - Build package: 
org.openapitools.codegen.languages.PhpClientCodegen