# Get an inbox filter

Source: https://docs.maylee.app/api-reference/inbox-filters/get-inbox-filter

`GET https://api.maylee.app/api/v1/filters/{filterId}`

Scope: `read`.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `filterId` | path | string | yes |  |

## Example request

```bash
curl -X GET "https://api.maylee.app/api/v1/filters/<filterId>" \
  -H "Authorization: Bearer $MAYLEE_KEY"
```

## Responses

### 200

The filter.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `filter` | InboxFilter | yes | Hides matching emails from the main inbox without moving them. Evaluated when listing, so it applies to past emails too and is undone by deleting the filter. |
| `filter.createdAt` | string (date-time) | yes |  |
| `filter.id` | string | yes |  |
| `filter.label` | LabelRef or null | yes | The targeted label when `type` is `label`, null otherwise. |
| `filter.type` | string | yes | `sender`: exact address, case-insensitive. `domain`: sender domain such as `acme.com`. `subject`: text contained in the subject. `label`: id of a label (manual or AI) carried by the email. One of: `sender`, `domain`, `subject`, `label`. |
| `filter.updatedAt` | string (date-time) | yes |  |
| `filter.value` | string | yes |  |

```json
{
  "filter": {
    "createdAt": "2026-07-15T08:30:00.000Z",
    "id": "cmfl1a2b3c4d5e6f7g8h9i0j",
    "label": null,
    "type": "domain",
    "updatedAt": "2026-07-15T08:30:00.000Z",
    "value": "newsletter.example.com"
  }
}
```

### 401

Missing, malformed, revoked or expired API key.

### 403

Key lacks the required scope, or outbound sending is not enabled on it.

### 404

Not found, or belongs to another workspace.

### 429

Per-minute rate limit (`RATE_LIMIT_EXCEEDED`) or monthly quota (`QUOTA_EXCEEDED`) exhausted.

Errors use the format `{ "code", "error", "details" }`: see [Errors](/errors.md).
