Appearance
Environments
What you can access
| Environment | Address | Who can use it |
|---|---|---|
| Production API | https://api.onehazel.com | You. Every customer integration uses this. |
| Production app | https://app.onehazel.com | You. The dashboard. |
| Staging | none | Internal only. OneHazel's own pre-release environment. It is not customer-facing, there are no customer accounts or keys for it, and we do not support integrations against it. |
There is one customer environment: production. Integrate, test and go live against https://api.onehazel.com.
API keys
- Every API key starts with
oh_live_. There is no test-mode key, nooh_test_prefix, and no key that switches the API into a sandbox. A key always acts on your real production account. - Keys are shared across your account: they all see the same data and share one rate limit.
- Create separate keys for separate purposes (for example one for pre-launch testing, one for production traffic) so you can revoke one without touching the other.
Testing safely in production
Because there is no sandbox, keep test activity contained:
| Activity | What really happens | How to keep it safe |
|---|---|---|
| Sending data (ingest) | Records are stored in your account and can trigger your workflows. | Prefix test external ids, for example test-player-<uuid>, so they are easy to filter and delete. Delete test players with DELETE /operator-data-api/entities/:externalId. |
| Workflow test runs | Real calls. Steps call real supplier APIs, send real messages and count against your usage. There is no dry run. | Use test data, and point steps at test accounts on the supplier side. |
| Gateway calls | Real calls to the supplier with your stored credentials. | Use the supplier's own sandbox credentials where the supplier offers them. |
MCP tools/call | Real calls. The workflow behind the tool runs for real. | Keep write-heavy workflows off the key's tool allowlist while testing. |
Trying OneHazel without real data: the demo casino simulator
The demo casino simulator generates synthetic player activity into your own account so you can see dashboards and workflows working before you connect real systems. It is the only built-in way to try OneHazel without real data.
| Method | Path | Purpose |
|---|---|---|
POST | /onehazel-api/operators/me/simulator/attach | Start the simulator. Body: { "profile": "small" | "medium" | "large" } |
GET | /onehazel-api/operators/me/simulator/status | Check whether it is attached |
DELETE | /onehazel-api/operators/me/simulator/detach | Stop it |
All three are on https://api.onehazel.com. Things to know:
- Signed-in session only. These endpoints take your dashboard session token, not an API key. An
oh_live_key is not accepted. In practice you use them from the dashboard. - Operator accounts only. Admin accounts are refused.
- Not on live accounts. Attach is refused (
SIMULATOR_REAL_INGEST_ACTIVE) if your account received more than 100 real ingest events in the last 24 hours. - One at a time. Attaching twice returns
SIMULATOR_ALREADY_ATTACHED. Detach first to change the profile. - Not billed. Simulator traffic is excluded from your usage counters.
What does not exist
So you do not go looking for it:
- No sandbox or test environment for customers.
- No customer access to staging.
- No test-mode API keys.
- No dry-run mode for workflows, gateway calls or MCP tools.
- No way to try OneHazel without real data other than the demo casino simulator above.
Outbound IP address
Some partner integrations need to allowlist the address OneHazel calls them from. For those dedicated partner integrations, and for a small number of supplier hosts that require it, outbound calls leave from 65.21.107.110.
This address is not used for:
- Gateway calls to the connectors you configure. They leave from rotating cloud addresses.
- Webhook deliveries to your endpoints. They are sent directly, not through this address.
If you need a fixed source address for your integration, contact us before you allowlist anything.