# Nachricht senden

Der eine Aufruf, mit dem dein Tool eine Nachricht schickt, und alle Felder dazu.

## Aufruf

```http
POST https://api-production-e537a.up.railway.app/v1/push
Authorization: Bearer <SAMY_KEY>
Content-Type: application/json
```

Der Schlüssel bestimmt, in welchem Kanal die Nachricht landet. Eine Kanal-Angabe im Body gibt es nicht.

## Felder

| Feld | Typ | Pflicht | Bedeutung |
|---|---|---|---|
| `text` | Text, 1 bis 10.000 Zeichen | ja | Die Nachricht. Der Push zeigt den Anfang, die App den ganzen Text. Einfache [Formatierung](https://samy.sinio.io/docs/formatierung.md) ist erlaubt. |
| `title` | Text, bis 80 Zeichen | nein | Überschrift. Ohne Titel steht nur der Name des Packlets im Push. |
| `url` | http(s)-Adresse, bis 2.048 Zeichen | nein | Link, der in der Nachricht angezeigt wird. |
| `image` | http(s)-Adresse, bis 2.048 Zeichen | nein | Vorschaubild. |
| `buttons` | Liste, bis 3 Einträge | nein | Knöpfe unter der Nachricht, siehe [Knöpfe](https://samy.sinio.io/docs/knoepfe.md). |
| `priority` | `normal`, `high` oder `silent` | nein | Standard ist `normal`, siehe [Push, Ton und Ruhezeit](https://samy.sinio.io/docs/push.md). |

Leere Texte (`""`) und `null` bei optionalen Feldern zählen als nicht angegeben.

## Beispiel

```bash
curl https://api-production-e537a.up.railway.app/v1/push \
  -H "Authorization: Bearer $SAMY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Neue Bestellung #1042",
    "text": "2× Kaffeebecher, 89,00 €",
    "url": "https://shop.example.com/orders/1042",
    "priority": "normal"
  }'
```

## Antwort

```json
{ "message_id": "5b0c1a52-…" }
```

Status 200 heißt: Die Nachricht ist gespeichert und erscheint im Kanal. Das gilt auch, wenn der Push einmal nicht zugestellt werden kann. Alle anderen Antworten stehen unter [Antworten und Fehler](https://samy.sinio.io/docs/antworten.md).
