# GET /v1/server

Read this key's server

The server the key belongs to, whether it is live or a test server, every limit a send on it is held to with how much of it this minute and this month have used, and the sending domains a from address on it may use.

Takes a server key (`sk_…`, or `sk_test_…` on a test server) as a bearer token. TypeScript: `sendora.server.get()`. Python: `sendora.server.get()`.

## Responses

### 200 The server this key belongs to, its mode, its limits with their use and the domains it may send from.

- `serverId` (string (uuid), required): The id every server key, stream and message of the server refers to.
- `name` (string (at least 1, at most 100 characters), required): The name given at creation, unique within the account.
- `mode` ("live" | "test", required): live delivers; test goes through everything but delivery, so nothing reaches a recipient. Fixed when the server is created.
- `createdAt` (string (date-time), required)
- `limits` (array of object, required): Every limit a single send is held to: on a live server the account's per-minute limit and monthly cap, and the server's own where Sendora set them; on a test server the test cap its account's test servers share.
  - `scope` ("account" | "server" | "test", required): Whose limit it is: `account` for the account's, `server` for the server's own, `test` for the cap the account's test servers share.
  - `period` ("minute" | "month", required): The UTC minute or the calendar month in UTC the limit counts over.
  - `limit` (integer, required): Emails allowed in the period, one per recipient.
  - `used` (integer, required): Emails the period has taken so far.
  - `resetsAt` (string (date-time), required): When the period ends and the count starts again.
- `sendingDomains` (array of object, required): The account's sending domains a from address on this server may use now: every verified one, one in its 24-hour warning with failingSince set. Sending domains are the account's; an account key or the dashboard adds one.
  - `domain` (string, required): The domain, as the part of a from address after the @.
  - `failingSince` (string (date-time) or null, required): When a check first found one of its records missing or wrong; mail keeps going out, and the first check 24 hours after this that still misses one ends the verification. Null while every record is in place.

Example:

```json
{
  "serverId": "7c1e4d2a-0b9f-4a3e-8d6c-5e2f1a9b8c70",
  "name": "Invoicing",
  "mode": "live",
  "createdAt": "2026-09-20T12:00:00.000Z",
  "limits": [
    {
      "scope": "account",
      "period": "minute",
      "limit": 300,
      "used": 4,
      "resetsAt": "2026-09-24T10:01:00.000Z"
    },
    {
      "scope": "account",
      "period": "month",
      "limit": 10000,
      "used": 812,
      "resetsAt": "2026-10-01T00:00:00.000Z"
    }
  ],
  "sendingDomains": [
    {
      "domain": "example.se",
      "failingSince": null
    }
  ]
}
```

## Errors

Every error answers `error`, the code, and `message`, a sentence for a person. A code that adds fields is shown in full below the table.

| Code | Status | Meaning |
| --- | --- | --- |
| `unauthorized` | 401 | The key is missing, malformed or revoked. |
| `wrong_token_kind` | 403 | The key is of the other kind: a server key (sk_) where an account key (ak_) is needed, or the reverse. The message names the kind the operation takes. |
