Skip to main content

Imara Cloud API

Manage hosting accounts, billing, domains and support programmatically.

OpenAPI 3.1.0 vv1 Download openapi.json ↓

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/whoami

Account

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

  • 200 The authenticated account
  • 401 Unauthorized
  • 429 RateLimited
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

  • 201 The new token, shown once only
  • 401 Unauthorized
  • 429 RateLimited

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

  • 200 Invoices on this account
  • 401 Unauthorized
  • 429 RateLimited
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

  • 200 The invoice, with line items
  • 404 NotFound
  • 401 Unauthorized
  • 429 RateLimited

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

  • 200 Services on this account
  • 401 Unauthorized
  • 429 RateLimited

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

  • 200 Domains on this account
  • 401 Unauthorized
  • 429 RateLimited

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

  • 200 Tickets on this account
  • 401 Unauthorized
  • 429 RateLimited
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

  • 201 The created ticket
  • 401 Unauthorized
  • 429 RateLimited

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

  • 200 JSON-RPC result
  • 401 Unauthorized
  • 429 RateLimited
GET /mcp/discover Discover MCP tools (public)

Example

curl -X GET "https://host.mrbismarck.co.ke/mcp/discover" \
  -H "Authorization: Bearer <token>"

Responses

  • 200 Server 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

CodeMeaning
200Success
201Created
400Malformed request body
401Missing, invalid or expired token
403Token lacks the required ability
404Not found, or not on your account
429Rate limit exceeded — retry after the window resets
500Server error — please report it

Errors always return JSON shaped {"error": "message"}.