> For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

# SWAIG function signature request

POST 

Sent once per [`SWAIG.includes`](/docs/swml/reference/calling/ai/swaig/includes) entry when an AI
agent loads, to discover the functions your server hosts. Every way of building an agent sends it —
SWML you write yourself, SWML a Server SDK generates, or an agent you configure in your Dashboard —
because they all resolve `includes` the same way. Return a JSON array of function definitions, each
shaped like an entry in
[`SWAIG.functions`](/docs/swml/reference/calling/ai/swaig/functions#properties) — `function`,
`description`, and `parameters`. Functions the agent can call are the ones you return here.

This is not the payload a function call sends. It goes to the `includes` entry's `url`, using
`auth_user` and `auth_password` when set. Your endpoint can also receive it outside of a call, as a
check that it answers, so answer it the same way. When your project has a signing key, the request
carries an `X-SignalWire-Signature` header you can verify.

Reference: https://signalwire.com/docs/apis/rest/calls/webhooks/swaig-signature-request

## Request

### Payload

- `action` (string, required) — What the request is asking of you. Always `get_signature`.
- `functions` (list of string, required) — The function names the `includes` entry asked for. This list can be empty, and it does not limit your reply: every definition you return is registered, whether or not it is named here.
- `content_type` (string, required) — The content type of the request body. Always `text/swaig`.
- `content_disposition` (string, required) — How the body is delivered. Always `function signature request`.
- `version` (string, required) — The SWAIG protocol version.
- `meta_data` (object, optional) — The `meta_data` you set on the `includes` entry. Omitted when you set none.
- `meta_data_token` (string, optional) — The token scoping `meta_data`. Present on the check your endpoint can receive outside of a call, where it is a fixed value with nothing to interpret, and absent during a call.
- `project_id` (string, optional) — Your project ID, when available.
- `space_id` (string, optional) — Your Space ID, when available.