---
title: "Introduction"
description: "Welcome to the Uptimeify API documentation. With this REST API, you can programmatically manage your monitoring infrastructure: e.g., organizations, customers, websites, and alerts."
---

## Base URL

All API requests should be sent to the following base URL:

```text
https://uptimeify.io/api
```

## Authentication

The API supports **Bearer Token** authentication for integrations.

### Create API Token

1. Log in to the Uptimeify dashboard.
2. Open **Settings** > **API** in the dashboard.
3. Click on **Create Token**, enter a name, and copy the generated secret.

Add the token to the `Authorization` header of your requests:

```http
Authorization: Bearer wsm_<your_api_token>
```

Uptimeify API tokens always start with `wsm_`. If your token does not have that prefix, you are likely using the wrong credential (and requests will return `401 Unauthorized`).

### Token Scopes (Organization vs Customer)

API tokens can optionally be created with a **Customer Scope**:

- **Organization-wide Token**: can read/modify resources across all customers of the organization.
- **Customer-Scoped Token**: can only read/modify resources (websites, maintenance windows, etc.) within that specific customer.

Customer-scoped tokens are recommended for agencies and external integrations. Requests outside the scope return `403 Forbidden`.

> **Note:** Session-based authentication (cookies) is used for the web interface but is not recommended for integrations.

## Response Format

All responses are returned in JSON format.

### Success Response

```json
{
  "id": 123,
  "name": "example-resource",
  "createdAt": "2023-01-01T12:00:00Z"
}
```

### Error Response

Errors are returned with an appropriate HTTP status code and a JSON body containing details.

```json
{
  "statusCode": 400,
  "statusMessage": "Bad Request",
  "message": "Validation failed: 'url' is required."
}
```

## Rate Limiting

To ensure service stability, the API is rate-limited.

- **Limit**: 600 requests per minute per IP
- **Header**: `X-RateLimit-Remaining` shows your remaining quota
- **Exceeded**: `429 Too Many Requests`

## Pages

- [Generate API Token](./generate-api-token)
- [Token Scopes (Organization vs Customer)](./token-scopes-organization-vs-customer)
- [Success Response](./success-response)
- [Error Response](./error-response)

