All seven resource classes extend AbstractResource and provide a consistent set of CRUD methods. Specialised methods are documented per class below.
Common Methods (All Resource Classes) #
// List resources with optional filters, pagination, and sorting
$resource->list(array $params = []): array
// Iterate through all pages automatically
$resource->listAll(array $params = []): PageIterator
// Get a single resource by ID
$resource->get(int $id): array
// Create a new resource
$resource->create(array $data): array
// Update an existing resource
$resource->update(int $id, array $data): array
// Delete a resource
$resource->delete(int $id): array
List parameters:
$client->licenses->list([
'page' => 2,
'per_page' => 50,
'filter' => ['status' => 'active', 'product_id' => 5],
'sort' => '-created_at',
'include' => 'customer,product',
]);
Customers #
$client->customers->list(array $params = []): array
$client->customers->listAll(array $params = []): PageIterator
$client->customers->get(int $id): array
$client->customers->create(array $data): array
$client->customers->update(int $id, array $data): array
$client->customers->delete(int $id): array
Create required fields: email
Products #
$client->products->list(array $params = []): array
$client->products->listAll(array $params = []): PageIterator
$client->products->get(int $id): array
$client->products->create(array $data): array
$client->products->update(int $id, array $data): array
$client->products->delete(int $id): array
Create required fields: name, slug
Licenses #
$client->licenses->list(array $params = []): array
$client->licenses->listAll(array $params = []): PageIterator
$client->licenses->get(int $id): array
$client->licenses->create(array $data): array
$client->licenses->update(int $id, array $data): array
$client->licenses->delete(int $id): array
// Validate a license key against a domain
$client->licenses->validate(string $licenseKey, string $domain): array
Create required fields: customer_id, product_id
validate() example:
$result = $client->licenses->validate('LICENSE-KEY-HERE', 'https://customer-site.com');
// Returns validation status and license details
Versions #
$client->versions->list(array $params = []): array
$client->versions->listAll(array $params = []): PageIterator
$client->versions->get(int $id): array
$client->versions->create(array $data): array
$client->versions->update(int $id, array $data): array
$client->versions->delete(int $id): array
Create required fields: product_id, version
Subscriptions #
$client->subscriptions->list(array $params = []): array
$client->subscriptions->listAll(array $params = []): PageIterator
$client->subscriptions->get(int $id): array
$client->subscriptions->create(array $data): array
$client->subscriptions->update(int $id, array $data): array
$client->subscriptions->delete(int $id): array
// Cancel a subscription with an optional reason
$client->subscriptions->cancel(int $id, string $reason = ''): array
Create required fields: customer_id, product_id
cancel() example:
$client->subscriptions->cancel(15, 'Customer requested cancellation');
Downloads #
$client->downloads->list(array $params = []): array
$client->downloads->listAll(array $params = []): PageIterator
$client->downloads->get(int $id): array
$client->downloads->create(array $data): array
$client->downloads->update(int $id, array $data): array
$client->downloads->delete(int $id): array
// Generate a signed download URL
$client->downloads->generateUrl(int $licenseId, int $versionId): array
generateUrl() example:
$result = $client->downloads->generateUrl(licenseId: 42, versionId: 7);
$downloadUrl = $result['data']['url'];
Activations #
$client->activations->list(array $params = []): array
$client->activations->listAll(array $params = []): PageIterator
$client->activations->get(int $id): array
$client->activations->create(array $data): array
$client->activations->update(int $id, array $data): array
$client->activations->delete(int $id): array
// Activate a license on a domain
$client->activations->activate(string $licenseKey, string $domain): array
// Deactivate a license from a domain
$client->activations->deactivate(string $licenseKey, string $domain): array
activate() / deactivate() example:
// Activate
$client->activations->activate('LICENSE-KEY-HERE', 'https://customer-site.com');
// Deactivate
$client->activations->deactivate('LICENSE-KEY-HERE', 'https://customer-site.com');
