# Frequently asked questions

> How to request access, who to contact for support and the questions that usually come up when integrating.

Page: https://safeonuba.com/en/developers/faq · SafeOnuba API v1 (`api_version: "2026-09-24"`), in preview: the contract may change.

## Access and support

### How do I request access to the API?

Write to us at [info@safeonuba.com](mailto:info@safeonuba.com?subject=SafeOnuba%20API%20access) with your company, the plant and what you want to integrate. We register access ourselves, customer by customer, with a reason that is recorded and that the plant sees in its dashboard.

### Can I try it before I have production access?

Yes, and it is the recommended way: you integrate in the [sandbox](https://safeonuba.com/en/developers/sandbox), with simulated watches. Production is activated when the customer is registered.

### Is the production API open yet?

It is not yet open to the public. `https://api.safeonuba.com` is activated when each customer is registered.

### Who do I write to if something doesn’t work?

To [info@safeonuba.com](mailto:info@safeonuba.com?subject=SafeOnuba%20API%20support). If it is an API error, include the `code` and the `instance` from the error body, the time (UTC) and, if it is a webhook, the `X-SafeOnuba-Event-Id`. **Never send the `client_secret`, a token or a webhook secret.**

## Integration

### Can I call the API from a browser or from an intranet page?

Not directly. The API has no CORS, and the `client_secret` must never be in a browser anyway. Put a service of your own in between: your server calls the API and your page talks to your server.

### Can I start an evacuation from my control room?

Not in v1. The system proposes and a person decides in the SafeOnuba dashboard. Your control room receives the evacuation as soon as it starts.

### How long does an alert take to arrive?

From the moment an SOS goes off until it reaches your receiver, it normally takes 1 or 2 seconds. That is a typical measurement, not a service commitment.

### The same event reached me twice.

That is normal: delivery is “at least once”. Deduplicate by the event’s `id`. See [Duplicates](https://safeonuba.com/en/developers/webhooks#duplicates).

### Events reach me out of order.

That is also normal: urgent ones go out first and retries arrive when they arrive. Keep the most recent one. See [Order](https://safeonuba.com/en/developers/webhooks#order).

### My receiver has been down. Have I lost events?

No, if you recover them within 30 days: `GET /v1/events` returns the same events, byte for byte. See [Catching up on what you missed](https://safeonuba.com/en/developers/events#catching-up-on-what-you-missed).

### The signature doesn’t match.

Almost always it is being calculated over the JSON after it has been parsed and re-serialised, and not over the raw body. See [Verifying a webhook signature](https://safeonuba.com/en/developers/webhooks/verify-signature#common-mistakes).

### An alert arrives without a position.

That is the plant’s privacy level: the alert is below the severity at which the position can be seen, and it carries `location_withheld: true`. See [Positions](https://safeonuba.com/en/developers/concepts/positions).

### Why can’t I see the workers’ names?

Names are optional by contract. Without them, each person is identified by their `external_id`. See [Workers and watches](https://safeonuba.com/en/developers/concepts/workers-and-watches#no-names).

### Can I use an AI assistant to integrate?

Yes. Every page has the **Copy** button, at the top right, which copies it as Markdown, and its text version by adding `.md` to the address. To give it everything at once, [/en/llms-full.txt](https://safeonuba.com/en/llms-full.txt). See [Using this documentation with AI](https://safeonuba.com/en/developers#using-this-documentation-with-ai).

### Can SafeOnuba receive alarms from my systems?

There is an input for third-party alarms, but it is configured on request and is not part of this public API. Write to us if you need it.
