# Send your first notification with curl

Move a project's first notification out of chat and into the central FYInbox record with one authenticated HTTP request.

The shortest path from a project to FYInbox is an API key and a POST request. The result becomes one structured notification for people and agents instead of another chat message.

Published: 2026-07-31. Updated: 2026-09-03.

## Keep the source key outside the command

1. **Create a source.** Open the inbox onboarding flow, name the producer and create a revocable key for that source.
2. **Store the key.** Put the once-visible value in your shell or deployment secret store as FYINBOX_API_KEY.

> **The placeholder is intentional.** Do not paste a real key into source control, documentation, a notification body or command history shared with someone else.

## POST the event

**Send a backup completion event**

```bash
curl --fail-with-body \
  --request POST \
  --url "$FYINBOX_URL/api/v1/notifications" \
  --header "Authorization: Bearer $FYINBOX_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"title":"Backup completed","body":"Nightly PostgreSQL backup finished and passed restore verification.","severity":"success","source":"backup-worker","tags":["backup","production"],"deduplicationKey":"backup:2026-07-31","metadata":{"duration":"42s","size":"1.8 GB"},"actions":[{"id":"open-backup","type":"link","label":"Open backup","href":"https://example.com/backups/2026-07-31","style":"primary"}]}'
```

A successful request returns the notification identifier and whether a new record was created. Reusing the same deduplication key returns the existing record instead of creating another inbox item.

## Frequently asked questions

### Does the producer need a special integration?

No. The examples use an authenticated HTTPS request, so any script, service or visual workflow that can send HTTP can use the same contract.

### Should credentials be included in notification data?

No. Keep credentials in the producer's secret store and send only the context needed to understand or locate the event.

### Why send this to FYInbox instead of chat or email?

FYInbox gives project notifications one structured, reviewable home instead of scattering them through Slack, Telegram and email. Those tools remain useful for conversations and intentional messages.

### Why structure notifications for people and agents?

People and agents both need stable source, outcome and next-action context. FYInbox keeps that context in one notification record outside conversation streams.

## Sources

- [curl man page](https://curl.se/docs/manpage.html) — curl project; verified 2026-09-03.
- [RFC 9110: HTTP Semantics](https://www.rfc-editor.org/rfc/rfc9110.html) — RFC Editor; verified 2026-09-03.
- [FYInbox OpenAPI 3.1 contract](https://fyinbox.com/openapi.json) — FYInbox; verified 2026-09-03.

[Guides index](/guides)
