# Send Signature Request — Lumin PDF

> Send a signature request to signers. See the documentation

- Key: `lumin_pdf-send-signature-request`
- Type: Action (Write)
- Version: 0.0.4
- App: Lumin PDF (`lumin_pdf`) — https://pipedream.com/apps/lumin-pdf.md
- This page (HTML): https://pipedream.com/apps/lumin-pdf/actions/send-signature-request
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/lumin_pdf/actions/send-signature-request/send-signature-request.mjs

## Description

Send a signature request to signers. [See the documentation](https://developers.luminpdf.com/api/send-signature-request/)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `fileUrl` | `string` | No | The URL of a single file to be downloaded and signed. This field is mutually exclusive with file, files, and File URLs. Only one of these fields should be provided in the request. |
| `file` | `string` | No | A single path to a file in the /tmp directory (for example, /tmp/myFile.pdf) to be sent for signature. This field is mutually exclusive with File URL, Files, and File URLs. Only one of these fields should be provided in the request. |
| `fileUrls` | `string[]` | No | An array of URLs of files to be downloaded and signed. This field is mutually exclusive with File, Files, and File URL. Only one of these fields should be provided in the request. |
| `files` | `string[]` | No | An array of path to files in the /tmp directory (for example, /tmp/myFile.pdf) to be sent for signature. This field is mutually exclusive with File URL, Files, and File URLs. Only one of these fields should be provided in the request. |
| `signers` | `string[]` | No | A list of objects of signers to add to your Signature Request. Format: [{'email_address': 'email@example.com', 'name': 'John Doe', 'group': 1}, {'email_address': 'email2@example.com', 'name': 'Jane Doe', 'group': 2}]. See the documentation for more information. |
| `viewers` | `string[]` | No | A list of objects of viewers to add to your Signature Request. Format: [{'email_address': 'email@example.com', 'name': 'John Doe'}, {'email_address': 'email2@example.com', 'name': 'Jane Doe'}]. See the documentation for more information. |
| `title` | `string` | Yes | The title you want to give the Signature Request. |
| `expiresAt` | `string` | Yes | When the Signature Request will expire. Should be later than today. In ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ). |
| `useTextTags` | `boolean` | No | Set to true to enable Text Tag parsing in your document. Your Text Tags will be converted into UI components for the user to interact with. |
| `signingType` | `string` | No | The signing order for the Signature Request. |
| `senderEmail` | `string` | No | The email address of the sender. |
| `subject` | `string` | No | The subject of the email. |
| `customEmailTitle` | `string` | No | The title of the email. |
| `syncDir` | `dir` | No | SyncDir |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "lumin_pdf",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "lumin_pdf-send-signature-request",
  arguments: {
    fileUrl: "File URL",
    file: "File",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "lumin_pdf-send-signature-request",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    lumin_pdf: { authProvisionId: "apn_xxxxxxx" },
    fileUrl: "File URL",
    file: "File",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "lumin_pdf-send-signature-request",
    "configured_props": {
      "lumin_pdf": { "authProvisionId": "apn_xxxxxxx" },
      "fileUrl": "File URL",
      "file": "File"
    }
  }'
```

---

- App: https://pipedream.com/apps/lumin-pdf.md · All apps: https://pipedream.com/apps
