Skip to content

API Reference

FOSSBilling provides a REST API for integrating external systems and building custom functionality on top of the platform.

Three main entrypoints:

EndpointAccess LevelPurpose
/api/admin/*Admin onlySystem management
/api/client/*Authenticated clientsClient services
/api/guest/*PublicNo authentication needed
  • Method: All requests use POST
  • Format: JSON for both request and response
  • Naming: Lowercase with underscores (change_password)
  • Nulls: Blank fields are included as null, not omitted
  • Dates: ISO 8601 format

Use HTTP Basic Auth with base64 encoding:

  • Username: admin or client (depending on endpoint)
  • Password: Your API key (found in client profile or admin dashboard)
Authorization: Basic base64_encode('admin:YOUR_API_KEY')

Most HTTP clients (curl, Postman) handle the encoding automatically.

Terminal window
curl -X POST "https://example.com/api/admin/staff/create" \
-H "Authorization: Basic $(echo -n 'admin:YOUR_API_KEY' | base64)" \
-H "Content-Type: application/json" \
-d '{
"email": "hello@fossbilling.org",
"password": "Testing123+",
"name": "John Doe",
"admin_group_id": 1,
"status": "active"
}'

Success:

{
"result": { ... },
"error": null
}

Error:

{
"result": null,
"error": {
"message": "Error description",
"code": 123
}
}
/api/{role}/{module}/{action}

Examples:

  • /api/admin/client/get_list
  • /api/client/profile/get
  • /api/guest/system/version

List endpoints typically accept:

  • page — Page number (starting at 1)
  • per_page — Items per page

For assistance, join our Discord community.