Imara Cloud API
Manage hosting accounts, billing, domains and support programmatically.
Authentication
Every request carries a bearer token. Create one under Client Area ▸ Security ▸ API Tokens. Tokens are scoped to their own account — they can never read another customer's data.
curl -H "Authorization: Bearer <your-token>" \
-H "Accept: application/json" \
https://host.mrbismarck.co.ke/api/v1/whoamiAccount
Who the token belongs to
GET
/api/v1/whoami
Identify the token holder
Example
curl -X GET "https://host.mrbismarck.co.ke/api/v1/whoami" \ -H "Authorization: Bearer <token>"
Responses
-
200The authenticated account -
401Unauthorized -
429RateLimited
POST
/api/v1/tokens
Issue a new API token
Request body
| name | string | required | ci-pipeline |
| abilities | array | optional | |
| ttl_days | integer | optional | 90 |
Example
curl -X POST "https://host.mrbismarck.co.ke/api/v1/tokens" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ … }'Responses
-
201The new token, shown once only -
401Unauthorized -
429RateLimited
Billing
Invoices and payments
GET
/api/v1/invoices
List invoices
Parameters
| status | query | string — paid | unpaid | cancelled | optional |
Example
curl -X GET "https://host.mrbismarck.co.ke/api/v1/invoices" \ -H "Authorization: Bearer <token>"
Responses
-
200Invoices on this account -
401Unauthorized -
429RateLimited
GET
/api/v1/invoices/{id}
Get one invoice
Parameters
| id | path | integer | required |
Example
curl -X GET "https://host.mrbismarck.co.ke/api/v1/invoices/{id}" \
-H "Authorization: Bearer <token>"Responses
-
200The invoice, with line items -
404NotFound -
401Unauthorized -
429RateLimited
Services
Hosting services
GET
/api/v1/services
List hosting services
Example
curl -X GET "https://host.mrbismarck.co.ke/api/v1/services" \ -H "Authorization: Bearer <token>"
Responses
-
200Services on this account -
401Unauthorized -
429RateLimited
Domains
Domain names
GET
/api/v1/domains
List domains
Example
curl -X GET "https://host.mrbismarck.co.ke/api/v1/domains" \ -H "Authorization: Bearer <token>"
Responses
-
200Domains on this account -
401Unauthorized -
429RateLimited
Support
Tickets
GET
/api/v1/tickets
List support tickets
Example
curl -X GET "https://host.mrbismarck.co.ke/api/v1/tickets" \ -H "Authorization: Bearer <token>"
Responses
-
200Tickets on this account -
401Unauthorized -
429RateLimited
POST
/api/v1/tickets
Open a support ticket
The department sets the ticket number prefix: Billing BILS-, Support SURP-, General Inquiries TKT-, Admin ADMN-, Sales SLS-, Abuse ABUS-.
Request body
| subject | string | required | Cannot access webmail |
| message | string | required | Webmail returns a 500 error. |
| department | string | optional | Support |
| priority | string | optional |
Example
curl -X POST "https://host.mrbismarck.co.ke/api/v1/tickets" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ … }'Responses
-
201The created ticket -
401Unauthorized -
429RateLimited
MCP
Model Context Protocol endpoint for AI agents
POST
/mcp
MCP JSON-RPC 2.0 endpoint
Model Context Protocol over streamable HTTP. Call initialize, then tools/list, then tools/call. Point any MCP-capable AI client at this URL with the same bearer token.
Request body
| jsonrpc | string | optional | 2.0 |
| id | integer | optional | 1 |
| method | string | optional | tools/call |
| params | object | optional |
Example
curl -X POST "https://host.mrbismarck.co.ke/mcp" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ … }'Responses
-
200JSON-RPC result -
401Unauthorized -
429RateLimited
GET
/mcp/discover
Discover MCP tools (public)
Example
curl -X GET "https://host.mrbismarck.co.ke/mcp/discover" \ -H "Authorization: Bearer <token>"
Responses
-
200Server metadata and tool catalogue
MCP tools for AI agents
Any MCP-capable agent can call these. Add the server to your client config with the same bearer token.
{
"mcpServers": {
"host.mrbismarck.co.ke": {
"url": "https://host.mrbismarck.co.ke/mcp",
"headers": { "Authorization": "Bearer <token>" }
}
}
}get_account
Get the authenticated account profile: name, email, company, country, currency, account credit balance and status.
list_services
List hosting services on the account with product, domain, status, billing cycle, amount and next due date.
get_service_usage
Get live disk, bandwidth and account usage for one hosting service from its server.
list_domains
List domains on the account with registrar, expiry date, days until expiry and auto-renew status.
check_domain
Check whether a domain name is available to register, with pricing when available.
list_invoices
List invoices on the account with number, status, total, balance due and due date.
get_invoice
Get one invoice in full, including its line items, payments applied and balance due.
pay_invoice_with_credit
Pay an unpaid invoice using the account credit balance. Fails safely if credit is insufficient. Does not charge a card.
list_tickets
List support tickets on the account with number, department, subject, status and last reply time.
get_ticket
Read one support ticket including the full reply thread.
open_ticket
Open a new support ticket. The department determines the ticket number prefix (Billing→BILS, Support→SURP, General Inquiries→TKT, Admin→ADMN).
reply_ticket
Post a reply to an existing support ticket on the account.
account_summary
One-call overview an agent can lead with: counts of active services, domains expiring within 30 days, unpaid invoices with total owed, and open tickets.
Errors
| Code | Meaning |
|---|---|
| 200 | Success |
| 201 | Created |
| 400 | Malformed request body |
| 401 | Missing, invalid or expired token |
| 403 | Token lacks the required ability |
| 404 | Not found, or not on your account |
| 429 | Rate limit exceeded — retry after the window resets |
| 500 | Server error — please report it |
Errors always return JSON shaped {"error": "message"}.