> For the complete documentation index, see [llms.txt](https://support.pipefile.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://support.pipefile.com/api-reference/models.md).

# Models

## The Error object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"Error":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"]}}}}
```

## The ValidationErrors object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"ValidationErrors":{"type":"object","additionalProperties":true,"description":"Field name to a list of error messages. Nested fields (such as checklist items) return nested objects or lists in the same shape."}}}}
```

## The PageInfo object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"PageInfo":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of results."},"num_pages":{"type":"integer"},"next":{"type":"string","nullable":true,"description":"URL of the next page, or null on the last page."},"previous":{"type":"string","nullable":true,"description":"URL of the previous page, or null on the first page."}},"required":["count","num_pages","next","previous"]}}}}
```

## The FileRequestPage object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"FileRequestPage":{"allOf":[{"$ref":"#/components/schemas/PageInfo"},{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/FileRequestSummary"}}},"required":["results"]}]},"PageInfo":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of results."},"num_pages":{"type":"integer"},"next":{"type":"string","nullable":true,"description":"URL of the next page, or null on the last page."},"previous":{"type":"string","nullable":true,"description":"URL of the previous page, or null on the first page."}},"required":["count","num_pages","next","previous"]},"FileRequestSummary":{"type":"object","properties":{"id":{"type":"string"},"user":{"$ref":"#/components/schemas/UserSummary"},"assigned_to":{"type":"array","items":{"$ref":"#/components/schemas/UserSummary"}},"status":{"$ref":"#/components/schemas/RequestStatus"},"unread":{"type":"boolean"},"recipients":{"type":"array","items":{"$ref":"#/components/schemas/Recipient"}},"subject":{"type":"string"},"message":{"type":"string"},"checklist_metadata":{"type":"object","nullable":true,"description":"Item counts, or null when the request has no checklist items.","properties":{"responded":{"type":"integer"},"items":{"type":"integer"}}},"is_trash":{"type":"boolean"},"last_modified":{"type":"string","format":"date-time"},"created_at":{"type":"string","format":"date-time"}}},"UserSummary":{"type":"object","description":"A Pipefile user.","properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"}}},"RequestStatus":{"type":"string","description":"`draft` not yet sent. `sent` waiting on the recipient. `responded` every\nchecklist item has a response. `completed` closed by your team.\n`archived` archived. `expired` the expiration date passed before the\nrecipient responded.\n","enum":["draft","sent","responded","completed","archived","expired"]},"Recipient":{"allOf":[{"$ref":"#/components/schemas/Contact"},{"type":"object","properties":{"client_link":{"type":"string","format":"uri","description":"This recipient's personal link to the request."}}}]},"Contact":{"type":"object","properties":{"id":{"type":"string","description":"The contact ID (32 hex characters)."},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string","description":"Phone number in international format, or an empty string."},"email_bounced":{"type":"boolean","description":"Email to this address bounced."},"email_complained":{"type":"boolean","description":"The recipient marked an email from Pipefile as spam."},"phone_unreachable":{"type":"boolean","description":"Text messages to this number could not be delivered."}},"required":["id","name","email","phone","email_bounced","email_complained","phone_unreachable"]}}}}
```

## The ContactPage object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"ContactPage":{"allOf":[{"$ref":"#/components/schemas/PageInfo"},{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/Contact"}}},"required":["results"]}]},"PageInfo":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of results."},"num_pages":{"type":"integer"},"next":{"type":"string","nullable":true,"description":"URL of the next page, or null on the last page."},"previous":{"type":"string","nullable":true,"description":"URL of the previous page, or null on the first page."}},"required":["count","num_pages","next","previous"]},"Contact":{"type":"object","properties":{"id":{"type":"string","description":"The contact ID (32 hex characters)."},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string","description":"Phone number in international format, or an empty string."},"email_bounced":{"type":"boolean","description":"Email to this address bounced."},"email_complained":{"type":"boolean","description":"The recipient marked an email from Pipefile as spam."},"phone_unreachable":{"type":"boolean","description":"Text messages to this number could not be delivered."}},"required":["id","name","email","phone","email_bounced","email_complained","phone_unreachable"]}}}}
```

## The UserSummary object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"UserSummary":{"type":"object","description":"A Pipefile user.","properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"}}}}}}
```

## The RequestStatus object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"RequestStatus":{"type":"string","description":"`draft` not yet sent. `sent` waiting on the recipient. `responded` every\nchecklist item has a response. `completed` closed by your team.\n`archived` archived. `expired` the expiration date passed before the\nrecipient responded.\n","enum":["draft","sent","responded","completed","archived","expired"]}}}}
```

## The Contact object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"Contact":{"type":"object","properties":{"id":{"type":"string","description":"The contact ID (32 hex characters)."},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string","description":"Phone number in international format, or an empty string."},"email_bounced":{"type":"boolean","description":"Email to this address bounced."},"email_complained":{"type":"boolean","description":"The recipient marked an email from Pipefile as spam."},"phone_unreachable":{"type":"boolean","description":"Text messages to this number could not be delivered."}},"required":["id","name","email","phone","email_bounced","email_complained","phone_unreachable"]}}}}
```

## The Recipient object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"Recipient":{"allOf":[{"$ref":"#/components/schemas/Contact"},{"type":"object","properties":{"client_link":{"type":"string","format":"uri","description":"This recipient's personal link to the request."}}}]},"Contact":{"type":"object","properties":{"id":{"type":"string","description":"The contact ID (32 hex characters)."},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string","description":"Phone number in international format, or an empty string."},"email_bounced":{"type":"boolean","description":"Email to this address bounced."},"email_complained":{"type":"boolean","description":"The recipient marked an email from Pipefile as spam."},"phone_unreachable":{"type":"boolean","description":"Text messages to this number could not be delivered."}},"required":["id","name","email","phone","email_bounced","email_complained","phone_unreachable"]}}}}
```

## The ContactInput object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"ContactInput":{"type":"object","description":"A name plus an email address, a phone number, or both.","properties":{"name":{"type":"string","maxLength":255},"email":{"type":"string","format":"email"},"phone":{"type":"string","description":"International format, for example `+15555550123`."}},"required":["name"]}}}}
```

## The RecipientInput object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"RecipientInput":{"type":"object","description":"Either an existing contact, by `id`, or a new recipient by `name` plus\n`email` and/or `phone`. A new recipient is added to your contacts, or\nmatched to an existing contact with the same name, email and phone.\n","properties":{"id":{"type":"string","description":"An existing contact's ID."},"name":{"type":"string","maxLength":255},"email":{"type":"string","format":"email"},"phone":{"type":"string"}}}}}}
```

## The Attachment object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"Attachment":{"type":"object","description":"A file you attached for the recipient to see.","properties":{"attachment_id":{"type":"string"},"filename":{"type":"string"},"size":{"type":"integer","description":"Size in bytes."},"form":{"type":"object","nullable":true,"description":"The fillable form built on this attachment, if any."},"can_create_form":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"}}}}}}
```

## The AttachmentRef object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"AttachmentRef":{"type":"object","properties":{"attachment_id":{"type":"string"}},"required":["attachment_id"]}}}}
```

## The ItemReview object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"ItemReview":{"type":"object","properties":{"status":{"type":"string","enum":["approved","rejected","incomplete"]},"user":{"$ref":"#/components/schemas/UserSummary"},"message":{"type":"string"},"resolved":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"}}},"UserSummary":{"type":"object","description":"A Pipefile user.","properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"}}}}}}
```

## The ChecklistItem object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"ChecklistItem":{"type":"object","properties":{"id":{"type":"integer"},"type":{"type":"string","enum":["item"]},"name":{"type":"string"},"instructions":{"type":"string"},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/Attachment"}},"status":{"type":"string","enum":["incomplete","pending_review","approved","rejected","marked_not_applicable"],"description":"`incomplete` nothing submitted yet, or a review marked it incomplete.\n`pending_review` the recipient responded and it awaits review.\n`approved` / `rejected` the review result. `marked_not_applicable`\nthe recipient marked it as not applicable.\n"},"required":{"type":"boolean"},"file_types":{"type":"array","items":{"type":"string"},"description":"Allowed file extensions, without the dot. Empty means any type."},"not_applicable":{"type":"boolean"},"responded":{"type":"boolean"},"reviews":{"type":"array","items":{"$ref":"#/components/schemas/ItemReview"}},"num_files":{"type":"integer"},"num_comments":{"type":"integer"},"num_unread_comments":{"type":"integer"},"editable":{"type":"boolean"},"list_index":{"type":"integer"}}},"Attachment":{"type":"object","description":"A file you attached for the recipient to see.","properties":{"attachment_id":{"type":"string"},"filename":{"type":"string"},"size":{"type":"integer","description":"Size in bytes."},"form":{"type":"object","nullable":true,"description":"The fillable form built on this attachment, if any."},"can_create_form":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"}}},"ItemReview":{"type":"object","properties":{"status":{"type":"string","enum":["approved","rejected","incomplete"]},"user":{"$ref":"#/components/schemas/UserSummary"},"message":{"type":"string"},"resolved":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"}}},"UserSummary":{"type":"object","description":"A Pipefile user.","properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"}}}}}}
```

## The ChecklistSection object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"ChecklistSection":{"type":"object","properties":{"id":{"type":"integer"},"type":{"type":"string","enum":["section"]},"title":{"type":"string"},"description":{"type":"string"},"list_index":{"type":"integer"},"items":{"type":"array","items":{"$ref":"#/components/schemas/ChecklistItem"}}}},"ChecklistItem":{"type":"object","properties":{"id":{"type":"integer"},"type":{"type":"string","enum":["item"]},"name":{"type":"string"},"instructions":{"type":"string"},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/Attachment"}},"status":{"type":"string","enum":["incomplete","pending_review","approved","rejected","marked_not_applicable"],"description":"`incomplete` nothing submitted yet, or a review marked it incomplete.\n`pending_review` the recipient responded and it awaits review.\n`approved` / `rejected` the review result. `marked_not_applicable`\nthe recipient marked it as not applicable.\n"},"required":{"type":"boolean"},"file_types":{"type":"array","items":{"type":"string"},"description":"Allowed file extensions, without the dot. Empty means any type."},"not_applicable":{"type":"boolean"},"responded":{"type":"boolean"},"reviews":{"type":"array","items":{"$ref":"#/components/schemas/ItemReview"}},"num_files":{"type":"integer"},"num_comments":{"type":"integer"},"num_unread_comments":{"type":"integer"},"editable":{"type":"boolean"},"list_index":{"type":"integer"}}},"Attachment":{"type":"object","description":"A file you attached for the recipient to see.","properties":{"attachment_id":{"type":"string"},"filename":{"type":"string"},"size":{"type":"integer","description":"Size in bytes."},"form":{"type":"object","nullable":true,"description":"The fillable form built on this attachment, if any."},"can_create_form":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"}}},"ItemReview":{"type":"object","properties":{"status":{"type":"string","enum":["approved","rejected","incomplete"]},"user":{"$ref":"#/components/schemas/UserSummary"},"message":{"type":"string"},"resolved":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"}}},"UserSummary":{"type":"object","description":"A Pipefile user.","properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"}}}}}}
```

## The ChecklistEntry object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"ChecklistEntry":{"oneOf":[{"$ref":"#/components/schemas/ChecklistItem"},{"$ref":"#/components/schemas/ChecklistSection"}],"discriminator":{"propertyName":"type","mapping":{"item":"#/components/schemas/ChecklistItem","section":"#/components/schemas/ChecklistSection"}}},"ChecklistItem":{"type":"object","properties":{"id":{"type":"integer"},"type":{"type":"string","enum":["item"]},"name":{"type":"string"},"instructions":{"type":"string"},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/Attachment"}},"status":{"type":"string","enum":["incomplete","pending_review","approved","rejected","marked_not_applicable"],"description":"`incomplete` nothing submitted yet, or a review marked it incomplete.\n`pending_review` the recipient responded and it awaits review.\n`approved` / `rejected` the review result. `marked_not_applicable`\nthe recipient marked it as not applicable.\n"},"required":{"type":"boolean"},"file_types":{"type":"array","items":{"type":"string"},"description":"Allowed file extensions, without the dot. Empty means any type."},"not_applicable":{"type":"boolean"},"responded":{"type":"boolean"},"reviews":{"type":"array","items":{"$ref":"#/components/schemas/ItemReview"}},"num_files":{"type":"integer"},"num_comments":{"type":"integer"},"num_unread_comments":{"type":"integer"},"editable":{"type":"boolean"},"list_index":{"type":"integer"}}},"Attachment":{"type":"object","description":"A file you attached for the recipient to see.","properties":{"attachment_id":{"type":"string"},"filename":{"type":"string"},"size":{"type":"integer","description":"Size in bytes."},"form":{"type":"object","nullable":true,"description":"The fillable form built on this attachment, if any."},"can_create_form":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"}}},"ItemReview":{"type":"object","properties":{"status":{"type":"string","enum":["approved","rejected","incomplete"]},"user":{"$ref":"#/components/schemas/UserSummary"},"message":{"type":"string"},"resolved":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"}}},"UserSummary":{"type":"object","description":"A Pipefile user.","properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"}}},"ChecklistSection":{"type":"object","properties":{"id":{"type":"integer"},"type":{"type":"string","enum":["section"]},"title":{"type":"string"},"description":{"type":"string"},"list_index":{"type":"integer"},"items":{"type":"array","items":{"$ref":"#/components/schemas/ChecklistItem"}}}}}}}
```

## The ChecklistItemInput object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"ChecklistItemInput":{"type":"object","properties":{"type":{"type":"string","enum":["item"],"description":"Required at the top level of `contents`. Omit it for items inside a section."},"name":{"type":"string","maxLength":100},"instructions":{"type":"string"},"required":{"type":"boolean","default":false},"file_types":{"type":"array","items":{"type":"string","maxLength":10},"description":"Allowed file extensions without the dot, such as `pdf`. Leave empty to accept any type."},"attachments":{"type":"array","description":"Required. Send an empty array when the item has no attachments.","items":{"$ref":"#/components/schemas/AttachmentRef"}}},"required":["attachments"]},"AttachmentRef":{"type":"object","properties":{"attachment_id":{"type":"string"}},"required":["attachment_id"]}}}}
```

## The ChecklistSectionInput object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"ChecklistSectionInput":{"type":"object","properties":{"type":{"type":"string","enum":["section"]},"title":{"type":"string","description":"Defaults to \"Section N\" when blank."},"items":{"type":"array","items":{"$ref":"#/components/schemas/ChecklistItemInput"}}},"required":["type","items"]},"ChecklistItemInput":{"type":"object","properties":{"type":{"type":"string","enum":["item"],"description":"Required at the top level of `contents`. Omit it for items inside a section."},"name":{"type":"string","maxLength":100},"instructions":{"type":"string"},"required":{"type":"boolean","default":false},"file_types":{"type":"array","items":{"type":"string","maxLength":10},"description":"Allowed file extensions without the dot, such as `pdf`. Leave empty to accept any type."},"attachments":{"type":"array","description":"Required. Send an empty array when the item has no attachments.","items":{"$ref":"#/components/schemas/AttachmentRef"}}},"required":["attachments"]},"AttachmentRef":{"type":"object","properties":{"attachment_id":{"type":"string"}},"required":["attachment_id"]}}}}
```

## The FileRequestCreate object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"FileRequestCreate":{"type":"object","properties":{"recipients":{"type":"array","minItems":1,"maxItems":10,"items":{"$ref":"#/components/schemas/RecipientInput"}},"subject":{"type":"string","maxLength":255},"message":{"type":"string"},"file_pipe":{"type":"object","description":"Where uploads are stored and which key encrypts them.","properties":{"key":{"type":"integer","description":"The ID of one of your encryption keys. Read it from `file_pipe.key.id` on an existing request."}},"required":["key"]},"attachments":{"type":"array","description":"Files attached to the whole request. Required; send an empty array for none.","items":{"$ref":"#/components/schemas/AttachmentRef"}},"contents":{"type":"array","description":"The checklist. Use all items or all sections, not both.","items":{"oneOf":[{"$ref":"#/components/schemas/ChecklistItemInput"},{"$ref":"#/components/schemas/ChecklistSectionInput"}]}},"tags":{"type":"array","description":"Required; send an empty array for no tags.","items":{"type":"string"}},"language":{"type":"string","enum":["en","es","fr","pt","ru","zh"],"default":"en","description":"The language the recipient sees the request in."},"reminder_frequency":{"type":"integer","minimum":0,"default":0,"description":"Days between automatic reminders. `0` turns them off."},"notification_sequence":{"type":"integer","nullable":true,"description":"The ID of one of your notification sequences."},"expiration_date":{"type":"string","format":"date-time","description":"When the request link expires."}},"required":["recipients","file_pipe","attachments","tags","expiration_date"]},"RecipientInput":{"type":"object","description":"Either an existing contact, by `id`, or a new recipient by `name` plus\n`email` and/or `phone`. A new recipient is added to your contacts, or\nmatched to an existing contact with the same name, email and phone.\n","properties":{"id":{"type":"string","description":"An existing contact's ID."},"name":{"type":"string","maxLength":255},"email":{"type":"string","format":"email"},"phone":{"type":"string"}}},"AttachmentRef":{"type":"object","properties":{"attachment_id":{"type":"string"}},"required":["attachment_id"]},"ChecklistItemInput":{"type":"object","properties":{"type":{"type":"string","enum":["item"],"description":"Required at the top level of `contents`. Omit it for items inside a section."},"name":{"type":"string","maxLength":100},"instructions":{"type":"string"},"required":{"type":"boolean","default":false},"file_types":{"type":"array","items":{"type":"string","maxLength":10},"description":"Allowed file extensions without the dot, such as `pdf`. Leave empty to accept any type."},"attachments":{"type":"array","description":"Required. Send an empty array when the item has no attachments.","items":{"$ref":"#/components/schemas/AttachmentRef"}}},"required":["attachments"]},"ChecklistSectionInput":{"type":"object","properties":{"type":{"type":"string","enum":["section"]},"title":{"type":"string","description":"Defaults to \"Section N\" when blank."},"items":{"type":"array","items":{"$ref":"#/components/schemas/ChecklistItemInput"}}},"required":["type","items"]}}}}
```

## The SignerInput object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"SignerInput":{"type":"object","description":"One signer for a template role. Give an existing contact (`uuid` or `contact_uuid`) or a `name` plus `email`.","properties":{"role_key":{"type":"string","description":"A `role_key` from the template's `template_data.roles`."},"uuid":{"type":"string"},"contact_uuid":{"type":"string"},"name":{"type":"string"},"email":{"type":"string","format":"email"},"phone":{"type":"string"}},"required":["role_key"]}}}}
```

## The FileRequestFromTemplateCreate object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"FileRequestFromTemplateCreate":{"type":"object","properties":{"template":{"type":"string","description":"The template `id`."},"name":{"type":"string","description":"Recipient name. Required unless you send `signers`."},"email":{"type":"string","format":"email","description":"Recipient email. Required unless you send `signers`."},"phone":{"type":"string"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags for the new request."},"signers":{"type":"array","items":{"$ref":"#/components/schemas/SignerInput"}},"roles":{"type":"array","description":"Signer roles, used only when the template defines none. Each needs a unique `role_key`.","items":{"type":"object","properties":{"role_key":{"type":"string"},"label":{"type":"string"}},"required":["role_key"]}}},"required":["template"]},"SignerInput":{"type":"object","description":"One signer for a template role. Give an existing contact (`uuid` or `contact_uuid`) or a `name` plus `email`.","properties":{"role_key":{"type":"string","description":"A `role_key` from the template's `template_data.roles`."},"uuid":{"type":"string"},"contact_uuid":{"type":"string"},"name":{"type":"string"},"email":{"type":"string","format":"email"},"phone":{"type":"string"}},"required":["role_key"]}}}}
```

## The PGPKey object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"PGPKey":{"type":"object","properties":{"id":{"type":"integer"},"fingerprint":{"type":"string"},"public_key":{"type":"string"},"managed":{"type":"boolean","description":"True when Pipefile manages the key for you."},"primary":{"type":"boolean"},"active":{"type":"boolean"}}}}}}
```

## The FilePipe object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"FilePipe":{"type":"object","description":"Where the request's uploads are stored, and the key that encrypts them.","properties":{"id":{"type":"string"},"key":{"$ref":"#/components/schemas/PGPKey"},"enabled":{"type":"boolean"},"num_files":{"type":"integer"},"created_at":{"type":"string","format":"date-time"}}},"PGPKey":{"type":"object","properties":{"id":{"type":"integer"},"fingerprint":{"type":"string"},"public_key":{"type":"string"},"managed":{"type":"boolean","description":"True when Pipefile manages the key for you."},"primary":{"type":"boolean"},"active":{"type":"boolean"}}}}}}
```

## The TrackingEvent object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"TrackingEvent":{"type":"object","description":"One time the request link was opened.","properties":{"id":{"type":"integer"},"contact":{"allOf":[{"$ref":"#/components/schemas/Contact"}],"nullable":true},"ip_address":{"type":"string"},"viewed_ts":{"type":"string","format":"date-time"}}},"Contact":{"type":"object","properties":{"id":{"type":"string","description":"The contact ID (32 hex characters)."},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string","description":"Phone number in international format, or an empty string."},"email_bounced":{"type":"boolean","description":"Email to this address bounced."},"email_complained":{"type":"boolean","description":"The recipient marked an email from Pipefile as spam."},"phone_unreachable":{"type":"boolean","description":"Text messages to this number could not be delivered."}},"required":["id","name","email","phone","email_bounced","email_complained","phone_unreachable"]}}}}
```

## The Role object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"Role":{"type":"object","description":"A signer role on the request.","properties":{"role_key":{"type":"string"},"label":{"type":"string"},"order_index":{"type":"integer"},"color":{"type":"string"},"coupled_field_count":{"type":"integer"},"standard_field_count":{"type":"integer"},"has_signed_fields":{"type":"boolean"},"signers":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"}}}}}}}}}
```

## The FileRequestSummary object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"FileRequestSummary":{"type":"object","properties":{"id":{"type":"string"},"user":{"$ref":"#/components/schemas/UserSummary"},"assigned_to":{"type":"array","items":{"$ref":"#/components/schemas/UserSummary"}},"status":{"$ref":"#/components/schemas/RequestStatus"},"unread":{"type":"boolean"},"recipients":{"type":"array","items":{"$ref":"#/components/schemas/Recipient"}},"subject":{"type":"string"},"message":{"type":"string"},"checklist_metadata":{"type":"object","nullable":true,"description":"Item counts, or null when the request has no checklist items.","properties":{"responded":{"type":"integer"},"items":{"type":"integer"}}},"is_trash":{"type":"boolean"},"last_modified":{"type":"string","format":"date-time"},"created_at":{"type":"string","format":"date-time"}}},"UserSummary":{"type":"object","description":"A Pipefile user.","properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"}}},"RequestStatus":{"type":"string","description":"`draft` not yet sent. `sent` waiting on the recipient. `responded` every\nchecklist item has a response. `completed` closed by your team.\n`archived` archived. `expired` the expiration date passed before the\nrecipient responded.\n","enum":["draft","sent","responded","completed","archived","expired"]},"Recipient":{"allOf":[{"$ref":"#/components/schemas/Contact"},{"type":"object","properties":{"client_link":{"type":"string","format":"uri","description":"This recipient's personal link to the request."}}}]},"Contact":{"type":"object","properties":{"id":{"type":"string","description":"The contact ID (32 hex characters)."},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string","description":"Phone number in international format, or an empty string."},"email_bounced":{"type":"boolean","description":"Email to this address bounced."},"email_complained":{"type":"boolean","description":"The recipient marked an email from Pipefile as spam."},"phone_unreachable":{"type":"boolean","description":"Text messages to this number could not be delivered."}},"required":["id","name","email","phone","email_bounced","email_complained","phone_unreachable"]}}}}
```

## The FileRequestDetail object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"FileRequestDetail":{"type":"object","properties":{"id":{"type":"string"},"subject":{"type":"string"},"message":{"type":"string"},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/Attachment"}},"contents":{"type":"array","items":{"$ref":"#/components/schemas/ChecklistEntry"}},"tags":{"type":"array","items":{"type":"string"}},"language":{"type":"string","enum":["en","es","fr","pt","ru","zh"]},"reminder_frequency":{"type":"integer"},"notification_sequence":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time"},"file_pipe":{"$ref":"#/components/schemas/FilePipe"},"user":{"$ref":"#/components/schemas/UserSummary"},"assigned_to":{"type":"array","items":{"$ref":"#/components/schemas/UserSummary"}},"recipients":{"type":"array","items":{"$ref":"#/components/schemas/Recipient"}},"unsubscribed_recipients":{"type":"array","description":"Recipients who unsubscribed from this request's emails.","items":{"$ref":"#/components/schemas/Contact"}},"unread":{"type":"boolean"},"num_comments":{"type":"integer"},"num_unread_comments":{"type":"integer"},"status":{"$ref":"#/components/schemas/RequestStatus"},"is_active":{"type":"boolean"},"is_trash":{"type":"boolean"},"tracking_events":{"type":"array","items":{"$ref":"#/components/schemas/TrackingEvent"}},"reminder_last_sent":{"type":"string","format":"date-time","nullable":true},"expiration_date":{"type":"string","format":"date-time"},"last_modified":{"type":"string","format":"date-time"},"deleted_at":{"type":"string","format":"date-time","nullable":true},"storage_integration":{"type":"object","nullable":true,"description":"The cloud storage connection files export to, if set."},"destination_path":{"type":"string","nullable":true},"destination_folder_parents":{"type":"array","nullable":true,"items":{"type":"string"}},"destination_folder_id":{"type":"string","nullable":true},"destination_context":{"type":"object","nullable":true},"destination_display_path":{"type":"string","nullable":true},"destination_link":{"type":"string","nullable":true,"description":"Link to the export folder, when there is one."},"roles":{"type":"array","items":{"$ref":"#/components/schemas/Role"}}},"additionalProperties":true},"Attachment":{"type":"object","description":"A file you attached for the recipient to see.","properties":{"attachment_id":{"type":"string"},"filename":{"type":"string"},"size":{"type":"integer","description":"Size in bytes."},"form":{"type":"object","nullable":true,"description":"The fillable form built on this attachment, if any."},"can_create_form":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"}}},"ChecklistEntry":{"oneOf":[{"$ref":"#/components/schemas/ChecklistItem"},{"$ref":"#/components/schemas/ChecklistSection"}],"discriminator":{"propertyName":"type","mapping":{"item":"#/components/schemas/ChecklistItem","section":"#/components/schemas/ChecklistSection"}}},"ChecklistItem":{"type":"object","properties":{"id":{"type":"integer"},"type":{"type":"string","enum":["item"]},"name":{"type":"string"},"instructions":{"type":"string"},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/Attachment"}},"status":{"type":"string","enum":["incomplete","pending_review","approved","rejected","marked_not_applicable"],"description":"`incomplete` nothing submitted yet, or a review marked it incomplete.\n`pending_review` the recipient responded and it awaits review.\n`approved` / `rejected` the review result. `marked_not_applicable`\nthe recipient marked it as not applicable.\n"},"required":{"type":"boolean"},"file_types":{"type":"array","items":{"type":"string"},"description":"Allowed file extensions, without the dot. Empty means any type."},"not_applicable":{"type":"boolean"},"responded":{"type":"boolean"},"reviews":{"type":"array","items":{"$ref":"#/components/schemas/ItemReview"}},"num_files":{"type":"integer"},"num_comments":{"type":"integer"},"num_unread_comments":{"type":"integer"},"editable":{"type":"boolean"},"list_index":{"type":"integer"}}},"ItemReview":{"type":"object","properties":{"status":{"type":"string","enum":["approved","rejected","incomplete"]},"user":{"$ref":"#/components/schemas/UserSummary"},"message":{"type":"string"},"resolved":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"}}},"UserSummary":{"type":"object","description":"A Pipefile user.","properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"}}},"ChecklistSection":{"type":"object","properties":{"id":{"type":"integer"},"type":{"type":"string","enum":["section"]},"title":{"type":"string"},"description":{"type":"string"},"list_index":{"type":"integer"},"items":{"type":"array","items":{"$ref":"#/components/schemas/ChecklistItem"}}}},"FilePipe":{"type":"object","description":"Where the request's uploads are stored, and the key that encrypts them.","properties":{"id":{"type":"string"},"key":{"$ref":"#/components/schemas/PGPKey"},"enabled":{"type":"boolean"},"num_files":{"type":"integer"},"created_at":{"type":"string","format":"date-time"}}},"PGPKey":{"type":"object","properties":{"id":{"type":"integer"},"fingerprint":{"type":"string"},"public_key":{"type":"string"},"managed":{"type":"boolean","description":"True when Pipefile manages the key for you."},"primary":{"type":"boolean"},"active":{"type":"boolean"}}},"Recipient":{"allOf":[{"$ref":"#/components/schemas/Contact"},{"type":"object","properties":{"client_link":{"type":"string","format":"uri","description":"This recipient's personal link to the request."}}}]},"Contact":{"type":"object","properties":{"id":{"type":"string","description":"The contact ID (32 hex characters)."},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string","description":"Phone number in international format, or an empty string."},"email_bounced":{"type":"boolean","description":"Email to this address bounced."},"email_complained":{"type":"boolean","description":"The recipient marked an email from Pipefile as spam."},"phone_unreachable":{"type":"boolean","description":"Text messages to this number could not be delivered."}},"required":["id","name","email","phone","email_bounced","email_complained","phone_unreachable"]},"RequestStatus":{"type":"string","description":"`draft` not yet sent. `sent` waiting on the recipient. `responded` every\nchecklist item has a response. `completed` closed by your team.\n`archived` archived. `expired` the expiration date passed before the\nrecipient responded.\n","enum":["draft","sent","responded","completed","archived","expired"]},"TrackingEvent":{"type":"object","description":"One time the request link was opened.","properties":{"id":{"type":"integer"},"contact":{"allOf":[{"$ref":"#/components/schemas/Contact"}],"nullable":true},"ip_address":{"type":"string"},"viewed_ts":{"type":"string","format":"date-time"}}},"Role":{"type":"object","description":"A signer role on the request.","properties":{"role_key":{"type":"string"},"label":{"type":"string"},"order_index":{"type":"integer"},"color":{"type":"string"},"coupled_field_count":{"type":"integer"},"standard_field_count":{"type":"integer"},"has_signed_fields":{"type":"boolean"},"signers":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"}}}}}}}}}
```

## The TemplateData object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"TemplateData":{"type":"object","properties":{"subject":{"type":"string"},"message":{"type":"string"},"reminder_frequency":{"type":"integer"},"expiration_days":{"type":"integer","description":"Days from sending until a request made from this template expires."},"contents":{"type":"array","items":{"type":"object","description":"A template checklist item (`type` = `item`) or section (`type` = `section`).","properties":{"id":{"type":"integer"},"type":{"type":"string","enum":["item","section"]},"name":{"type":"string"},"title":{"type":"string"},"instructions":{"type":"string"},"required":{"type":"boolean"},"file_types":{"type":"array","items":{"type":"string"}},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/Attachment"}},"items":{"type":"array","items":{"type":"object"}}}}},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/Attachment"}},"tags":{"type":"array","items":{"type":"string"}},"language":{"type":"string"},"notification_sequence":{"type":"integer","nullable":true},"storage_integration":{"type":"object","nullable":true},"destination_path":{"type":"string","nullable":true},"destination_folder_parents":{"type":"array","nullable":true,"items":{"type":"string"}},"destination_folder_id":{"type":"string","nullable":true},"destination_context":{"type":"object","nullable":true},"roles":{"type":"array","nullable":true,"description":"Signer roles defined on the template, or null.","items":{"type":"object","properties":{"role_key":{"type":"string"},"label":{"type":"string"},"color":{"type":"string"},"order_index":{"type":"integer"}}}}}},"Attachment":{"type":"object","description":"A file you attached for the recipient to see.","properties":{"attachment_id":{"type":"string"},"filename":{"type":"string"},"size":{"type":"integer","description":"Size in bytes."},"form":{"type":"object","nullable":true,"description":"The fillable form built on this attachment, if any."},"can_create_form":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"}}}}}}
```

## The Template object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"Template":{"type":"object","properties":{"id":{"type":"string"},"uuid":{"type":"string","description":"Same value as `id`."},"user":{"type":"integer","description":"The owner's user ID."},"name":{"type":"string"},"is_owner":{"type":"boolean"},"shared":{"type":"boolean","description":"Shared with your team."},"locked":{"type":"boolean","description":"The template is locked against edits."},"modifiable":{"type":"boolean","description":"Whether you can edit it."},"groups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"uuid":{"type":"string"},"name":{"type":"string"}}}},"public":{"type":"boolean","description":"Published to Pipefile's public template library."},"template_data":{"$ref":"#/components/schemas/TemplateData"},"lead_form_count":{"type":"integer","description":"How many lead forms use this template."}}},"TemplateData":{"type":"object","properties":{"subject":{"type":"string"},"message":{"type":"string"},"reminder_frequency":{"type":"integer"},"expiration_days":{"type":"integer","description":"Days from sending until a request made from this template expires."},"contents":{"type":"array","items":{"type":"object","description":"A template checklist item (`type` = `item`) or section (`type` = `section`).","properties":{"id":{"type":"integer"},"type":{"type":"string","enum":["item","section"]},"name":{"type":"string"},"title":{"type":"string"},"instructions":{"type":"string"},"required":{"type":"boolean"},"file_types":{"type":"array","items":{"type":"string"}},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/Attachment"}},"items":{"type":"array","items":{"type":"object"}}}}},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/Attachment"}},"tags":{"type":"array","items":{"type":"string"}},"language":{"type":"string"},"notification_sequence":{"type":"integer","nullable":true},"storage_integration":{"type":"object","nullable":true},"destination_path":{"type":"string","nullable":true},"destination_folder_parents":{"type":"array","nullable":true,"items":{"type":"string"}},"destination_folder_id":{"type":"string","nullable":true},"destination_context":{"type":"object","nullable":true},"roles":{"type":"array","nullable":true,"description":"Signer roles defined on the template, or null.","items":{"type":"object","properties":{"role_key":{"type":"string"},"label":{"type":"string"},"color":{"type":"string"},"order_index":{"type":"integer"}}}}}},"Attachment":{"type":"object","description":"A file you attached for the recipient to see.","properties":{"attachment_id":{"type":"string"},"filename":{"type":"string"},"size":{"type":"integer","description":"Size in bytes."},"form":{"type":"object","nullable":true,"description":"The fillable form built on this attachment, if any."},"can_create_form":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"}}}}}}
```

## The WebhookEvent object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"WebhookEvent":{"type":"string","enum":["file_request.created","file_request.opened","file_request.reminder_sent","file_request.file_uploaded","file_request.item_reviewed","file_request.responded","file_request.completed","file_request.exported","file_request.expired","team_member.joined","team_member.removed"],"description":"`created` a request was sent (from the dashboard, the API, a template,\nbulk send, a lead form or your profile page). `opened` the request link\nwas opened. `reminder_sent` a reminder went out. `file_uploaded` a file\nfinished uploading. `item_reviewed` a checklist item was reviewed.\n`responded` every checklist item has a response. `completed` the request\nwas marked complete. `exported` files were exported to cloud storage.\n`expired` the request expired. `team_member.joined` /\n`team_member.removed` someone joined or left your team (team admins only).\n"}}}}
```

## The Webhook object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"Webhook":{"type":"object","properties":{"id":{"type":"integer"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"event":{"$ref":"#/components/schemas/WebhookEvent"},"target":{"type":"string","format":"uri"},"user":{"type":"integer","description":"Your user ID."}}},"WebhookEvent":{"type":"string","enum":["file_request.created","file_request.opened","file_request.reminder_sent","file_request.file_uploaded","file_request.item_reviewed","file_request.responded","file_request.completed","file_request.exported","file_request.expired","team_member.joined","team_member.removed"],"description":"`created` a request was sent (from the dashboard, the API, a template,\nbulk send, a lead form or your profile page). `opened` the request link\nwas opened. `reminder_sent` a reminder went out. `file_uploaded` a file\nfinished uploading. `item_reviewed` a checklist item was reviewed.\n`responded` every checklist item has a response. `completed` the request\nwas marked complete. `exported` files were exported to cloud storage.\n`expired` the request expired. `team_member.joined` /\n`team_member.removed` someone joined or left your team (team admins only).\n"}}}}
```

## The WebhookCreate object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"WebhookCreate":{"type":"object","properties":{"event":{"$ref":"#/components/schemas/WebhookEvent"},"target":{"type":"string","format":"uri","maxLength":255,"description":"The URL Pipefile POSTs to."}},"required":["event","target"]},"WebhookEvent":{"type":"string","enum":["file_request.created","file_request.opened","file_request.reminder_sent","file_request.file_uploaded","file_request.item_reviewed","file_request.responded","file_request.completed","file_request.exported","file_request.expired","team_member.joined","team_member.removed"],"description":"`created` a request was sent (from the dashboard, the API, a template,\nbulk send, a lead form or your profile page). `opened` the request link\nwas opened. `reminder_sent` a reminder went out. `file_uploaded` a file\nfinished uploading. `item_reviewed` a checklist item was reviewed.\n`responded` every checklist item has a response. `completed` the request\nwas marked complete. `exported` files were exported to cloud storage.\n`expired` the request expired. `team_member.joined` /\n`team_member.removed` someone joined or left your team (team admins only).\n"}}}}
```

## The WebhookFileRequest object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"WebhookFileRequest":{"type":"object","description":"The request, as sent in a webhook delivery's `data`.","properties":{"id":{"type":"string"},"user":{"$ref":"#/components/schemas/UserSummary"},"assigned_to":{"type":"array","items":{"$ref":"#/components/schemas/UserSummary"}},"status":{"$ref":"#/components/schemas/RequestStatus"},"unread":{"type":"boolean"},"recipients":{"type":"array","items":{"$ref":"#/components/schemas/Recipient"}},"tags":{"type":"array","items":{"type":"string"}},"subject":{"type":"string"},"message":{"type":"string"},"contents":{"type":"array","items":{"$ref":"#/components/schemas/ChecklistEntry"}},"unreviewed_files":{"type":"integer"},"file_pipe":{"$ref":"#/components/schemas/FilePipe"},"destination_link":{"type":"string","nullable":true},"last_modified":{"type":"string","format":"date-time"},"created_at":{"type":"string","format":"date-time"},"export_destination":{"type":"string","nullable":true,"description":"Only on `file_request.exported`. Link to where the files were exported."}}},"UserSummary":{"type":"object","description":"A Pipefile user.","properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"}}},"RequestStatus":{"type":"string","description":"`draft` not yet sent. `sent` waiting on the recipient. `responded` every\nchecklist item has a response. `completed` closed by your team.\n`archived` archived. `expired` the expiration date passed before the\nrecipient responded.\n","enum":["draft","sent","responded","completed","archived","expired"]},"Recipient":{"allOf":[{"$ref":"#/components/schemas/Contact"},{"type":"object","properties":{"client_link":{"type":"string","format":"uri","description":"This recipient's personal link to the request."}}}]},"Contact":{"type":"object","properties":{"id":{"type":"string","description":"The contact ID (32 hex characters)."},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string","description":"Phone number in international format, or an empty string."},"email_bounced":{"type":"boolean","description":"Email to this address bounced."},"email_complained":{"type":"boolean","description":"The recipient marked an email from Pipefile as spam."},"phone_unreachable":{"type":"boolean","description":"Text messages to this number could not be delivered."}},"required":["id","name","email","phone","email_bounced","email_complained","phone_unreachable"]},"ChecklistEntry":{"oneOf":[{"$ref":"#/components/schemas/ChecklistItem"},{"$ref":"#/components/schemas/ChecklistSection"}],"discriminator":{"propertyName":"type","mapping":{"item":"#/components/schemas/ChecklistItem","section":"#/components/schemas/ChecklistSection"}}},"ChecklistItem":{"type":"object","properties":{"id":{"type":"integer"},"type":{"type":"string","enum":["item"]},"name":{"type":"string"},"instructions":{"type":"string"},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/Attachment"}},"status":{"type":"string","enum":["incomplete","pending_review","approved","rejected","marked_not_applicable"],"description":"`incomplete` nothing submitted yet, or a review marked it incomplete.\n`pending_review` the recipient responded and it awaits review.\n`approved` / `rejected` the review result. `marked_not_applicable`\nthe recipient marked it as not applicable.\n"},"required":{"type":"boolean"},"file_types":{"type":"array","items":{"type":"string"},"description":"Allowed file extensions, without the dot. Empty means any type."},"not_applicable":{"type":"boolean"},"responded":{"type":"boolean"},"reviews":{"type":"array","items":{"$ref":"#/components/schemas/ItemReview"}},"num_files":{"type":"integer"},"num_comments":{"type":"integer"},"num_unread_comments":{"type":"integer"},"editable":{"type":"boolean"},"list_index":{"type":"integer"}}},"Attachment":{"type":"object","description":"A file you attached for the recipient to see.","properties":{"attachment_id":{"type":"string"},"filename":{"type":"string"},"size":{"type":"integer","description":"Size in bytes."},"form":{"type":"object","nullable":true,"description":"The fillable form built on this attachment, if any."},"can_create_form":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"}}},"ItemReview":{"type":"object","properties":{"status":{"type":"string","enum":["approved","rejected","incomplete"]},"user":{"$ref":"#/components/schemas/UserSummary"},"message":{"type":"string"},"resolved":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"}}},"ChecklistSection":{"type":"object","properties":{"id":{"type":"integer"},"type":{"type":"string","enum":["section"]},"title":{"type":"string"},"description":{"type":"string"},"list_index":{"type":"integer"},"items":{"type":"array","items":{"$ref":"#/components/schemas/ChecklistItem"}}}},"FilePipe":{"type":"object","description":"Where the request's uploads are stored, and the key that encrypts them.","properties":{"id":{"type":"string"},"key":{"$ref":"#/components/schemas/PGPKey"},"enabled":{"type":"boolean"},"num_files":{"type":"integer"},"created_at":{"type":"string","format":"date-time"}}},"PGPKey":{"type":"object","properties":{"id":{"type":"integer"},"fingerprint":{"type":"string"},"public_key":{"type":"string"},"managed":{"type":"boolean","description":"True when Pipefile manages the key for you."},"primary":{"type":"boolean"},"active":{"type":"boolean"}}}}}}
```

## The TeamMember object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"TeamMember":{"type":"object","description":"The team member, as sent in a `team_member.*` delivery's `data`.","properties":{"id":{"type":"integer"},"team":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"is_admin":{"type":"boolean"},"is_owner":{"type":"boolean"},"is_active":{"type":"boolean"},"totp_enabled":{"type":"boolean"},"mfa_enabled":{"type":"boolean"},"groups":{"type":"array","items":{"type":"object"}}}}}}}
```

## The WebhookDelivery object

```json
{"openapi":"3.0.3","info":{"title":"Pipefile API","version":"1.0"},"components":{"schemas":{"WebhookDelivery":{"type":"object","description":"The JSON body Pipefile POSTs to your webhook's target URL.","properties":{"hook":{"type":"object","properties":{"id":{"type":"integer"},"event":{"$ref":"#/components/schemas/WebhookEvent"},"target":{"type":"string","format":"uri"}}},"data":{"oneOf":[{"$ref":"#/components/schemas/WebhookFileRequest"},{"$ref":"#/components/schemas/TeamMember"}]}}},"WebhookEvent":{"type":"string","enum":["file_request.created","file_request.opened","file_request.reminder_sent","file_request.file_uploaded","file_request.item_reviewed","file_request.responded","file_request.completed","file_request.exported","file_request.expired","team_member.joined","team_member.removed"],"description":"`created` a request was sent (from the dashboard, the API, a template,\nbulk send, a lead form or your profile page). `opened` the request link\nwas opened. `reminder_sent` a reminder went out. `file_uploaded` a file\nfinished uploading. `item_reviewed` a checklist item was reviewed.\n`responded` every checklist item has a response. `completed` the request\nwas marked complete. `exported` files were exported to cloud storage.\n`expired` the request expired. `team_member.joined` /\n`team_member.removed` someone joined or left your team (team admins only).\n"},"WebhookFileRequest":{"type":"object","description":"The request, as sent in a webhook delivery's `data`.","properties":{"id":{"type":"string"},"user":{"$ref":"#/components/schemas/UserSummary"},"assigned_to":{"type":"array","items":{"$ref":"#/components/schemas/UserSummary"}},"status":{"$ref":"#/components/schemas/RequestStatus"},"unread":{"type":"boolean"},"recipients":{"type":"array","items":{"$ref":"#/components/schemas/Recipient"}},"tags":{"type":"array","items":{"type":"string"}},"subject":{"type":"string"},"message":{"type":"string"},"contents":{"type":"array","items":{"$ref":"#/components/schemas/ChecklistEntry"}},"unreviewed_files":{"type":"integer"},"file_pipe":{"$ref":"#/components/schemas/FilePipe"},"destination_link":{"type":"string","nullable":true},"last_modified":{"type":"string","format":"date-time"},"created_at":{"type":"string","format":"date-time"},"export_destination":{"type":"string","nullable":true,"description":"Only on `file_request.exported`. Link to where the files were exported."}}},"UserSummary":{"type":"object","description":"A Pipefile user.","properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"}}},"RequestStatus":{"type":"string","description":"`draft` not yet sent. `sent` waiting on the recipient. `responded` every\nchecklist item has a response. `completed` closed by your team.\n`archived` archived. `expired` the expiration date passed before the\nrecipient responded.\n","enum":["draft","sent","responded","completed","archived","expired"]},"Recipient":{"allOf":[{"$ref":"#/components/schemas/Contact"},{"type":"object","properties":{"client_link":{"type":"string","format":"uri","description":"This recipient's personal link to the request."}}}]},"Contact":{"type":"object","properties":{"id":{"type":"string","description":"The contact ID (32 hex characters)."},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string","description":"Phone number in international format, or an empty string."},"email_bounced":{"type":"boolean","description":"Email to this address bounced."},"email_complained":{"type":"boolean","description":"The recipient marked an email from Pipefile as spam."},"phone_unreachable":{"type":"boolean","description":"Text messages to this number could not be delivered."}},"required":["id","name","email","phone","email_bounced","email_complained","phone_unreachable"]},"ChecklistEntry":{"oneOf":[{"$ref":"#/components/schemas/ChecklistItem"},{"$ref":"#/components/schemas/ChecklistSection"}],"discriminator":{"propertyName":"type","mapping":{"item":"#/components/schemas/ChecklistItem","section":"#/components/schemas/ChecklistSection"}}},"ChecklistItem":{"type":"object","properties":{"id":{"type":"integer"},"type":{"type":"string","enum":["item"]},"name":{"type":"string"},"instructions":{"type":"string"},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/Attachment"}},"status":{"type":"string","enum":["incomplete","pending_review","approved","rejected","marked_not_applicable"],"description":"`incomplete` nothing submitted yet, or a review marked it incomplete.\n`pending_review` the recipient responded and it awaits review.\n`approved` / `rejected` the review result. `marked_not_applicable`\nthe recipient marked it as not applicable.\n"},"required":{"type":"boolean"},"file_types":{"type":"array","items":{"type":"string"},"description":"Allowed file extensions, without the dot. Empty means any type."},"not_applicable":{"type":"boolean"},"responded":{"type":"boolean"},"reviews":{"type":"array","items":{"$ref":"#/components/schemas/ItemReview"}},"num_files":{"type":"integer"},"num_comments":{"type":"integer"},"num_unread_comments":{"type":"integer"},"editable":{"type":"boolean"},"list_index":{"type":"integer"}}},"Attachment":{"type":"object","description":"A file you attached for the recipient to see.","properties":{"attachment_id":{"type":"string"},"filename":{"type":"string"},"size":{"type":"integer","description":"Size in bytes."},"form":{"type":"object","nullable":true,"description":"The fillable form built on this attachment, if any."},"can_create_form":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"}}},"ItemReview":{"type":"object","properties":{"status":{"type":"string","enum":["approved","rejected","incomplete"]},"user":{"$ref":"#/components/schemas/UserSummary"},"message":{"type":"string"},"resolved":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"}}},"ChecklistSection":{"type":"object","properties":{"id":{"type":"integer"},"type":{"type":"string","enum":["section"]},"title":{"type":"string"},"description":{"type":"string"},"list_index":{"type":"integer"},"items":{"type":"array","items":{"$ref":"#/components/schemas/ChecklistItem"}}}},"FilePipe":{"type":"object","description":"Where the request's uploads are stored, and the key that encrypts them.","properties":{"id":{"type":"string"},"key":{"$ref":"#/components/schemas/PGPKey"},"enabled":{"type":"boolean"},"num_files":{"type":"integer"},"created_at":{"type":"string","format":"date-time"}}},"PGPKey":{"type":"object","properties":{"id":{"type":"integer"},"fingerprint":{"type":"string"},"public_key":{"type":"string"},"managed":{"type":"boolean","description":"True when Pipefile manages the key for you."},"primary":{"type":"boolean"},"active":{"type":"boolean"}}},"TeamMember":{"type":"object","description":"The team member, as sent in a `team_member.*` delivery's `data`.","properties":{"id":{"type":"integer"},"team":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"is_admin":{"type":"boolean"},"is_owner":{"type":"boolean"},"is_active":{"type":"boolean"},"totp_enabled":{"type":"boolean"},"mfa_enabled":{"type":"boolean"},"groups":{"type":"array","items":{"type":"object"}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://support.pipefile.com/api-reference/models.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
