---
title: Errors
description: Every error response is an RFC 9457 problem details object with a status, a title, and a detail message.
sidebar:
  icon: triangle-alert
  order: 3
---

When a request fails, the API returns a `4xx` or `5xx` status with a body of type `application/problem+json`. The body follows [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457), so the same fields are present on every endpoint.

```json
{
  "$schema": "https://api.steamsets.com/schemas/ErrorModel.json",
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "validation failed",
  "errors": [
    {
      "location": "body.id.steamId64",
      "message": "expected length >= 17",
      "value": "7656119"
    }
  ]
}
```

| Field | Description |
| --- | --- |
| `status` | The HTTP status code, repeated in the body. |
| `title` | A short summary of the problem type. |
| `detail` | A human-readable explanation of this problem. |
| `errors` | For validation errors, one entry for each invalid field, with its `location` in the request. |

## Status codes

| Status | Meaning | What to do |
| --- | --- | --- |
| `400` | The request body is not valid JSON, or a value has the wrong type. | Fix the request. |
| `401` | The API key is missing or not valid. | Send a valid key. See [Authentication](/authentication). |
| `403` | The key is valid, but it cannot use this endpoint. | Use a different endpoint, or ask for access. |
| `404` | The account, badge, or app does not exist on SteamSets. | Check the identifier. |
| `422` | One or more fields failed validation. | Read `errors` to find the fields. |
| `429` | You sent too many requests. | Wait, then send the request again. See [Rate limits](/rate-limits). |
| `500` | The API had an internal problem. | Send the request again later. |

## Request IDs

Each response has a `request-id` header. Include it when you report a problem, so that we can find the request in our logs.
