> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spenza.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API Status & Maintenance

> Check whether the Spenza API is up, see planned maintenance before it happens, and get notified about incidents.

**[status.spenza.com](https://status.spenza.com)** is the source of truth for the Spenza API's availability. It's monitored independently of the API, so it stays up when the API doesn't. Check it before you start debugging a sudden spike in errors, and before you schedule anything time-critical.

> **[Current status](https://status.spenza.com)**
>
> Live state of each service, with 90 days of uptime history.

> **[Scheduled maintenance](https://status.spenza.com/maintenance)**
>
> Planned work, listed by month for the months ahead.

> **[Previous incidents](https://status.spenza.com/incidents)**
>
> What went wrong, when, and how it was resolved.

## What's monitored

| Service | What it covers |
| - | - |
| **API** | Spenza API availability: `https://api.spenza.com`, every endpoint in this documentation. |
| **Website** | Spenza's website. |

Each service shows its current status and a 90-day uptime bar. Hover over a day for that day's details.

## What each status means for your integration

| Status | What it means | What to do |
| - | - | - |
| **Operational** | The service is up and responding normally. | Nothing. If you're still seeing errors, the problem is probably in your request or your network. See [Is it an outage or my integration?](#is-it-an-outage-or-my-integration) below. |
| **Degraded** | The service is up, but slower than normal or failing some requests. | Expect timeouts and intermittent `5xx`. Retry with backoff, and hold off on bulk jobs until it recovers. |
| **Downtime** | The service is unavailable. | Stop sending new work, and queue it on your side. Don't retry in a tight loop — back off until the status changes. |
| **Maintenance** | Planned work is in progress. | Treat it as downtime for the announced window. Resume once it's over. |
| **Not monitored** | No monitoring data for this period. | Not a signal either way. |
| **Recovered** | An earlier problem has been resolved. | Resume normal traffic, and replay anything you queued. |

## Planned maintenance

Planned work is announced on **[status.spenza.com/maintenance](https://status.spenza.com/maintenance)**, grouped by month for the current month and the months ahead. Each entry gives the window and which service is affected.

Check it before you:

* launch an integration or roll out a release that depends on the API,
* run a bulk job such as mass eSIM provisioning, plan purchases or user imports,
* schedule a customer-facing event that relies on activations or number assignments going through.

During a maintenance window, API requests can fail or time out. Pause billable and state-changing work (purchases, top-ups, port-ins, provisioning) until the window closes, rather than relying on retries to get through it.

> [!NOTE]
>
> The months shown say **No maintenance scheduled** when nothing is planned. If you need a quiet period guaranteed around a launch, email [support@spenza.com](mailto:support@spenza.com) in advance.

## Get notified

The status page publishes incident and maintenance announcements as an RSS feed:

```
https://status.spenza.com/feed.rss
```

Add it to a feed reader, an RSS connector in Slack or Microsoft Teams, or your own monitoring, which can poll it every few minutes and raise an internal alert when a new item appears. The feed is meant for those tools. Opening it in a browser shows raw XML or downloads a file.

> [!NOTE]
>
> **The feed is empty until the first announcement.** It lists only incidents and planned maintenance, so it has no items until one is posted, and some readers show an empty feed as "no updates" or refuse to add it. Email and SMS subscriptions aren't offered on the status page today. Until the feed has history, bookmark **[status.spenza.com](https://status.spenza.com)** and check it as described below.

## Is it an outage or my integration?

1. **Check [status.spenza.com](https://status.spenza.com).** If the API is shown as **Degraded**, **Downtime** or **Maintenance**, you're probably affected by that. Back off and wait for it to recover.
2. **Look at the status code.** `400`, `401`, `403`, `404` and `409` come from the request itself and won't fix themselves. Check the `error.code` against **[Errors](https://docs.spenza.com/errors.md)**. `429` means you've hit a rate limit (see **[Rate Limits](https://docs.spenza.com/rate-limits.md)**), not that the API is down.
3. **The status page says Operational but you're getting repeated `5xx` or timeouts?** Retry a `GET` with backoff. If it keeps failing, email [support@spenza.com](mailto:support@spenza.com) with the details listed on **[Support](https://docs.spenza.com/support.md#what-to-include-when-you-report-an-issue)**: the request, the response, and a UTC timestamp.

## Building for resilience

Plan for outages up front, so an incident slows your integration down rather than breaking it:

* **Retry `5xx`, timeouts and `429` with exponential backoff and jitter**, and give up after a bounded number of attempts. Don't retry other `4xx` responses unchanged. See **[Errors → Retry recommendations](https://docs.spenza.com/errors.md#retry-recommendations)** and **[Rate Limits → Recommended backoff strategy](https://docs.spenza.com/rate-limits.md#recommended-backoff-strategy)**.
* **Send an `Idempotency-Key` on writes** that support it, so a retry after a timeout can't buy, provision or top up twice. See **[Core Concepts → Idempotency](https://docs.spenza.com/core-concepts.md#idempotency)**.
* **Keep polling async operations.** A `transactionId` stays valid through a blip, so resume polling `GET /api/v3/transactions/{transactionId}` instead of resubmitting the original request.
* **Queue work during an outage** and replay it once the status page shows the API as recovered, rather than dropping it or hammering the API.
* **Use a circuit breaker.** After repeated failures, stop calling for a short cool-down and show your users a clear "temporarily unavailable" state.

## Contact

The **Get in touch** link on the status page goes to [support@spenza.com](mailto:support@spenza.com), the same address as **[Support](https://docs.spenza.com/support.md)**. Use it to report a problem the status page doesn't show yet.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.