> ## Documentation Index
> Fetch the complete documentation index at: https://upstash-dx-3081-agentkit-tanstack-ai-backends.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Receiving Messages

> What do we send to your API?

When you publish a message, QStash will deliver it to your chosen destination. This is a brief overview of how a request to your API looks like.

## Headers

We are forwarding all headers that have been prefixed with `Upstash-Forward-` to your API. [Learn more](/qstash/howto/publishing#sending-custom-http-headers)

In addition to your custom headers, we're sending these headers as well:

| Header | Description |
| - | - |
| `User-Agent` | Will be set to `Upstash-QStash` |
| `Content-Type` | The original `Content-Type` header |
| `Upstash-Topic-Name` | The URL Group (topic) name if sent to a URL Group |
| `Upstash-Signature` | The signature you need to verify [See here](/qstash/howto/signature) |
| `Upstash-Retried` | How often the message has been retried so far. Starts with 0. |
| `Upstash-Message-Id` | The message id of the message. |
| `Upstash-Schedule-Id` | The schedule id of the message if it is related to a schedule. |
| `Upstash-Caller-Ip` | The IP address of the publisher of this message. |

## Body

The body is passed as is, we do not modify it at all. If you send a JSON body, you will receive a JSON body. If you send a string, you will receive a string.

## Verifying the signature

[See here](/qstash/howto/signature)


## Related topics

- [Select a Region](/qstash/howto/multi-region.md)
- [Changelog](/qstash/overall/changelog.md)
- [Receiver](/qstash/sdks/py/examples/receiver.md)
- [At-Least-Once Delivery](/qstash/features/at-least-once.md)
