The Foreman API gives developers and operators programmatic access to Foreman's mine management platform. Use it to build custom integrations, automate workflows, pull miner metrics into your own dashboards, or trigger actions from external systems.
For the full interactive reference, including every endpoint, request/response schemas, and a live "Try it out" feature, visit our API docs on SwaggerHub: → View the Foreman API Reference on SwaggerHub
Base URL
All requests are made to:
https://api.foreman.mn/api/v2/
All requests must be made over HTTPS. Plain HTTP is not supported.
Authentication
The API uses API key authentication. Include your key in the Authorization header of every request:
Authorization: Token YOUR_API_KEY Content-Type: application/json
Where to find your API key: Log in to the Foreman dashboard, and navigate to the Man with a Tie icon in the top-right corner. Select My Account from the drop-down menu, then scroll down to the API Information section. Treat your API key like a password — never commit it to source control or share it publicly.
What you can do with the API
The API is organized into resource groups covering the core areas of mine management:
| Resource group | What you can do |
|---|---|
| Miners | List, add, update, delete, and reboot miners. Retrieve real-time metrics including hashrate, temperature, fan speed, and power consumption. |
| Pickaxes | Manage Pickaxe agents — the local agents that communicate between your miners and Foreman. Register agents and check connection status. |
| Alerts | Configure alert thresholds for hashrate drops, high temperatures, and offline equipment. Retrieve active alerts and alert history. |
| Pools | Manage mining pool configurations. Add, update, or switch pools for individual miners or groups programmatically. |
| Farms & groups | Organize miners into farms or groups. Perform bulk operations — such as rebooting all miners at a site or switching pools for an entire farm. |
| Power controls | Retrieve power consumption data and trigger power management actions on supported hardware. |
| Events & audit logs | Pull operational event history for audit, reporting, or integration with external monitoring tools. |
Making requests
HTTP methods
The API follows standard REST conventions:
-
GET— Retrieve a resource or list of resources -
POST— Create a new resource -
PUT/PATCH— Update an existing resource -
DELETE— Remove a resource
Example request
Retrieve all miners in your account:
curl -X GET \ "https://api.foreman.mn/api/v2/miners" \ -H "Authorization: Token YOUR_API_KEY" \ -H "Content-Type: application/json"
Response format
All responses are returned as JSON. Successful responses contain the requested data; error responses include a message field describing what went wrong.
| Status code | Meaning |
|---|---|
200 OK |
Request succeeded. |
201 Created |
A new resource was successfully created. |
204 No Content |
Request succeeded with no response body (e.g. a DELETE). |
400 Bad Request |
The request was malformed or missing required parameters. |
401 Unauthorized |
Missing or invalid API key. |
403 Forbidden |
Your API key does not have permission to perform this action. |
404 Not Found |
The requested resource does not exist. |
429 Too Many Requests |
You've exceeded the rate limit. Implement exponential backoff and retry. |
500 Server Error |
An unexpected error on the Foreman side. Contact support if this persists. |
Rate limits & pagination
The API enforces rate limits to maintain platform stability. If you hit the limit, you'll receive a 429 response — implement exponential backoff in your client to handle this gracefully.
Endpoints that return lists support pagination via query parameters:
-
page— Page number to return (default: 1) -
per_page— Results per page (default: 25, max: 100)
Tip: For high-volume use cases like polling miner metrics, cache responses locally and fetch on a reasonable interval rather than querying on every page load.
Need help?
If you run into issues with the API, our support team is here to help! When contacting support, include your endpoint, request payload, and the response received.
Comments
0 comments
Please sign in to leave a comment.