Download the PHP package exbil/reselling-api-client without Composer

On this page you can find all versions of the php package exbil/reselling-api-client. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package reselling-api-client

Exbil Reselling API Client

PHP API Client for the Exbil Reselling Portal.

Installation

Quick Start

Authentication

All API requests require an API key transmitted as Bearer Token:

For the sandbox environment use the sandbox base URL:

You can verify the configured key and inspect its scoped permissions at any time:


API Reference

Accounting

Billing, invoices, credit and usage.

Method Description
getUserData() Team/user billing information
getCreditStatus() Current credit status
getUsage() Current month usage summary
getUsageDetails(array $filters) Detailed usage records
getInvoices() All invoices
getInvoice(int $id) Single invoice

Domain

Domain registration, transfer, DNS management and handles.

Main Methods

Method Description
getAll() All domains
get(string $domain) Single domain
checkAvailability(string $domain) Check availability
checkBulkAvailability(array $domains) Bulk availability check (max 50)
register(string $domain, array $handles, array $nameservers, int $period) Register domain
transfer(string $domain, string $authcode, array $handles, array $nameservers) Transfer domain
sync(string $domain) Sync from registrar
getAuthcode(string $domain) Get authcode
updateHandles(string $domain, array $handles) Update handles
requestDeletion(string $domain) Request deletion
cancelDeletion(string $domain) Cancel deletion

Pricing ($client->domain()->pricing())

Method Description
getAll() All domain prices
getTlds() Available TLDs
getByTld(string $tld) Pricing for specific TLD

Handle ($client->domain()->handle())

Method Description
getTypes() Available handle types
getAll() All handles
get(string\|int $id) Single handle
create(array $data) Create handle
update(string\|int $id, array $data) Update handle
delete(string\|int $id) Delete handle
setDefault(string\|int $id) Set as default

Nameserver ($client->domain()->nameserver())

Method Description
get(string $domain) Get nameservers
update(string $domain, array $nameservers) Update nameservers

DNS ($client->domain()->dns())

Method Description
get(string $domain) Get DNS records
create(string $domain, array $record) Create record
update(string $domain, string\|int $recordId, array $data) Update record
bulkUpdate(string $domain, array $records) Bulk update records
delete(string $domain, string\|int $recordId) Delete record
getZones(string $domain) Get DNS zones
createZone(string $domain, array $zone) Create zone
updateZone(string $domain, string\|int $zoneId, array $data) Update zone
deleteZone(string $domain, string\|int $zoneId) Delete zone

Root Server

Manage virtual servers.

Main Methods

Method Description
getAll(array $filters) All servers (filters: state, datacenter_id, cluster_id)
get(int $vmId) Single server
create(string $clusterSlug, array $config) Create server
update(int $vmId, array $config) Resize server
delete(int $vmId) Delete server
resetRootPassword(int $vmId, ?string $password) Reset root password
reinstall(int $vmId, array $config) Reinstall server
getStats(int $vmId) Live statistics (CPU, RAM, network)
getLogs(int $vmId, int $limit) Server logs
getTasks(int $vmId, int $limit) Running/completed tasks

Location ($client->rootServer()->location())

Method Description
getAll() All datacenters
getClusters(string $datacenterSlug) Clusters of a datacenter

Cluster ($client->rootServer()->cluster())

Method Description
getAll() All clusters
get(string $clusterSlug) Single cluster
getOsList(string $clusterSlug) Available operating systems
getPrices(string $clusterSlug) Price list of a cluster
calculatePrice(string $clusterSlug, array $config) Calculate price

Power ($client->rootServer()->power())

Method Description
start(int $vmId) Start server
stop(int $vmId) Shutdown server (graceful)
reboot(int $vmId) Reboot server
forceStop(int $vmId) Power off server (force)

VPN

VPN accounts and configurations.

Main Methods

Method Description
getServers() All VPN servers
getPorts() Available ports
getPricing() Pricing
getGeoIP() GeoIP info of current request
checkUsername(string $username) Check username availability

Account ($client->vpn()->account())

Method Description
getAll() All VPN accounts
get(int $id) Single account
create(string $username, ?string $password) Create account
delete(int $id) Delete account
sync(int $id) Sync account
changePassword(int $id, string $password) Change password
enable(int $id) Enable account
disable(int $id) Disable account

Note: Suspended accounts cannot be enabled via API. Contact support to lift the suspension.

Config ($client->vpn()->config())

Method Description
getOpenVpn(int $accountId, int $serverId, int $portId) OpenVPN config (JSON)
downloadOpenVpn(int $accountId, int $serverId, int $portId) OpenVPN .ovpn download
getWireGuard(int $accountId, int $serverId) WireGuard config (JSON)
downloadWireGuard(int $accountId, int $serverId) WireGuard .conf download

Mailcow

Email domains, mailboxes and aliases.

Main Methods

Method Description
getNodes(?string $datacenter) All Mailcow nodes
getLoadBalancerStats(?string $datacenter) Load balancer statistics
calculatePrice(string $nodeOrDc, int $mailboxes, int $aliases, int $quotaMb) Calculate price
getAll(?string $id) All or single domain
get(string\|int $id) Single domain
create(string $nodeOrDc, array $config) Create domain
update(string\|int $id, array $config) Update domain
delete(string\|int $id) Delete domain

Mailbox ($client->mailcow()->mailbox())

Method Description
getAll(string $domain, ?int $id) Get mailboxes
get(string $domain, int $mailboxId) Single mailbox
create(string $domain, string $address, array $config) Create mailbox
update(string $domain, string $address, array $config) Update mailbox
delete(string $domain, string $localPart) Delete mailbox

Alias ($client->mailcow()->alias())

Method Description
getAll(string $domain, ?int $id) Get aliases
get(string $domain, int $aliasId) Single alias
create(string $domain, string $address, array $goto) Create alias
update(string $domain, string $address, array $goto, ?bool $active) Update alias
delete(string $domain, string $localPart) Delete alias

Domain Admin ($client->mailcow()->domainAdmin())

Method Description
getAll(string $domain, ?int $id) Get domain admins
get(string $domain, int $adminId) Single admin
create(string $domain, string $username, ?string $password) Create admin
update(string $domain, string $username, array $config) Update admin
delete(string $domain, string $username) Delete admin

Cloud Services

Container based services — game servers (Minecraft, TeamSpeak, CS2, Rust, Palworld, …), databases (MySQL, MariaDB, PostgreSQL, MongoDB, Redis, …), web stacks (Caddy, Apache+PHP, Node.js, Python, Bun, …), discord bots, and ~250 other templates. Services and backups are addressed by their UUID.

Main Methods

Method Description
templates() Order catalogue — every active template + node bindings + field_schema
getAll(array $filters = []) All cloud services (filters: status, per_page, team_id)
get(string $uuid) Service details incl. live status
create(array $config) Create a service (node_id, template_slug, name, memory_limit, disk_limit, cpu_limit, …)
delete(string $uuid) Delete a service
reinstall(string $uuid, array $options = []) Reinstall a service — see options below
status(string $uuid) Live resource usage / status
metrics(string $uuid, string $range = '24h') Recorded resource history — 1h, 24h, 7d or 30d
sendCommand(string $uuid, string $command) Send a console command (one-shot REST)
consoleToken(string $uuid, string $type = 'serial') Open a single-use console session and return its URL — serial or vnc
allocations(string $uuid) List every port allocation with role + protocol + description
setRootPassword(string $uuid, string $password) Change the container's root password (SSH, SFTP, console)
setDomain(string $uuid, ?string $domain) Point a domain at the service, or null to clear it

reinstall($uuid, $options) options array

Key Type Description
cloudservice string Switch to a different service template at the same time (template-switch reinstall).
environment array Override environment variables for the (possibly new) template.

consoleToken($uuid) — console session

Cloud Services run as Proxmox LXC containers. A container's console is an interactive TTY on the node, not a log stream, so this hands back a ready single-use URL rather than a token you assemble a socket from.

Open the URL directly — a browser tab, or an iframe:

The proxy consumes the ticket on first connect, so the URL cannot be reused; call consoleToken() again for another session. Log in as root with the password from the service record.

Changed: before the LXC backend this returned token, subprotocols, websocket_url and stats_websocket_url for a daemon WebSocket. Those keys are gone. sendCommand() is likewise unavailable — a container has no single foreground process to pipe stdin into — and answers 501.

Power ($client->cloudServices()->power())

Method Description
start(string $uuid) Start service
stop(string $uuid) Stop service (graceful)
restart(string $uuid) Restart service
kill(string $uuid) Kill service (force stop)

Files ($client->cloudServices()->files())

Method Description
list(string $uuid, string $dir = '/') List a directory
read(string $uuid, string $file) Read file contents
write(string $uuid, string $file, string $content) Write a file
upload(string $uuid, string $filePath, string $dir = '/') Upload a local file
download(string $uuid, string $file) Get a download URL
delete(string $uuid, array $files) Delete files
compress(string $uuid, array $files, string $output) Compress into an archive
decompress(string $uuid, string $file, string $target) Extract an archive

Backups ($client->cloudServices()->backups())

Each service has a slot quota (default 3) and a size cap (default 100 GB). Archives are encrypted at rest with AES-256-GCM and tagged with the team that created or uploaded them — restores across team boundaries are refused with 403 unless the caller passes force => true.

Method Description
getAll(string $uuid) All backups for a service (with team_id, cloudservice_id, origin, is_locked)
quota(string $uuid) Slot accounting: included, used, paid, ceiling and the monthly price of an extra slot
create(string $uuid, ?string $name = null, array $ignoredFiles = []) Create a backup of the current volume
upload(string $uuid, string $filePath) Upload a .tar.gz archive previously downloaded from this platform
delete(string $uuid, string $backupId) Delete a backup (sends a deletion-certificate mail to the owner)
restore(string $uuid, string $backupId, array $options = []) Restore a backup — stop, extract, chown, auto-start
toggleLock(string $uuid, string $backupId) Toggle the lock flag (locked backups skip retention sweeps)
download(string $uuid, string $backupId, string $targetPath) Stream the encrypted archive to a local path

Network ($client->cloudServices()->network())

Per-server IPv6 lifecycle. Up to four addresses out of the operator's routed prefix.

Method Description
status(string $uuid) Node prefix + upstream healthcheck snapshot
listIpv6(string $uuid) Addresses bound to the server (primary first)
orderIpv6(string $uuid) Allocate one more (HTTP 503 if transit down)
releaseIpv6(string $uuid, int $addressId) Release one by daemon-side id

A 503 response carries a detail.last_checked_at + detail.last_error explaining why the upstream is down; surface that to the operator rather than retrying blindly.

TeamSpeak

Order and manage TeamSpeak servers — power, slots, settings, channels, connected clients, privilege tokens, bans and snapshot backups.

Channels ($client->teamSpeak()->channels())

Clients ($client->teamSpeak()->clients())

Security ($client->teamSpeak()->security())

Backups ($client->teamSpeak()->backups())


Error Handling


Asynchronous Operations

Many operations are executed asynchronously and return a 202 status:

The response typically contains a job ID or task information for tracking.


License

BSD-2-Clause


All versions of reselling-api-client with dependencies

PHP Build Version
Package Version
Requires php Version >=8.1
guzzlehttp/guzzle Version ^7.9
ext-json Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package exbil/reselling-api-client contains the following files

Loading the files please wait ...