# API v1 API

> API v1 API on Apizie: 35 endpoints (Test Authentication, Get a list of all combined submissions, Merge generated PDFs together, Check the status of a combined submission (merged PDFs), …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://apizie.tech/v1/ai:formapi/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `ai:formapi`
- Category: Artificial Intelligence
- Status: byok
- Source: https://formapi.io
- Page: https://apizie.tech/api/ai/formapi
- OpenAPI: https://apizie.tech/api/ai/formapi/openapi.json

DocSpring is a service that helps you fill out and sign PDF templates.

## Endpoints

### Test Authentication
`GET https://apizie.tech/v1/ai:formapi/test-authentication` (byok)

### Get a list of all combined submissions
`GET https://apizie.tech/v1/ai:formapi/list-combined-submissions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| page | integer | no | Default: 1 |
| per_page | integer | no | Default: 50 |

### Merge generated PDFs together
`POST https://apizie.tech/v1/ai:formapi/combine-submissions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Check the status of a combined submission (merged PDFs)
`GET https://apizie.tech/v1/ai:formapi/get-combined-submission` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| combined_submission_id | string | yes |  |

### Expire a combined submission
`POST https://apizie.tech/v1/ai:formapi/expire-combined-submission` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| combined_submission_id | string | yes |  |

### Merge submission PDFs, template PDFs, or custom files
`POST https://apizie.tech/v1/ai:formapi/combine-pdfs` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Create a new custom file from a cached presign upload
`POST https://apizie.tech/v1/ai:formapi/create-custom-file-from-upload` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Look up a submission data request
`GET https://apizie.tech/v1/ai:formapi/get-data-request` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| data_request_id | string | yes |  |

### Update a submission data request
`POST https://apizie.tech/v1/ai:formapi/update-data-request` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| data_request_id | string | yes |  |
| body | object | yes | JSON request body |

### Creates a new data request token for form authentication
`POST https://apizie.tech/v1/ai:formapi/create-data-request-token` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| data_request_id | string | yes |  |

### Get a list of all folders
`GET https://apizie.tech/v1/ai:formapi/list-folders` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| parent_folder_id | string | no | Filter By Folder Id |

### Create a folder
`POST https://apizie.tech/v1/ai:formapi/create-folder` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Delete a folder
`POST https://apizie.tech/v1/ai:formapi/delete-folder` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| folder_id | string | yes |  |

### Move a folder
`POST https://apizie.tech/v1/ai:formapi/move-folder-to-folder` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| folder_id | string | yes |  |
| body | object | yes | JSON request body |

### Rename a folder
`POST https://apizie.tech/v1/ai:formapi/rename-folder` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| folder_id | string | yes |  |
| body | object | yes | JSON request body |

### List all submissions
`GET https://apizie.tech/v1/ai:formapi/list-submissions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| cursor | string | no |  |
| limit | number | no |  |
| created_after | string | no |  |
| created_before | string | no |  |
| type | string | no |  |
| include_data | boolean | no |  |

### Generates multiple PDFs
`POST https://apizie.tech/v1/ai:formapi/batch-generate-pdfs` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Check the status of a submission batch job
`GET https://apizie.tech/v1/ai:formapi/get-submission-batch` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| submission_batch_id | string | yes |  |
| include_submissions | boolean | no |  |

### Check the status of a PDF
`GET https://apizie.tech/v1/ai:formapi/get-submission` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| submission_id | string | yes |  |
| include_data | boolean | no |  |

### Expire a PDF submission
`POST https://apizie.tech/v1/ai:formapi/expire-submission` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| submission_id | string | yes |  |

### Get a list of all templates
`GET https://apizie.tech/v1/ai:formapi/list-templates` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | no | Search By Name |
| parent_folder_id | string | no | Filter By Folder Id |
| page | integer | no | Default: 1 |
| per_page | integer | no | Default: 50 |

### Create a new PDF template with a form POST file upload
`POST https://apizie.tech/v1/ai:formapi/create-pdftemplate` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | Form fields as a JSON object |

### Check the status of an uploaded template
`GET https://apizie.tech/v1/ai:formapi/get-template` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| template_id | string | yes |  |

### Update a Template
`POST https://apizie.tech/v1/ai:formapi/update-template` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| template_id | string | yes |  |
| body | object | yes | JSON request body |

### Add new fields to a Template
`POST https://apizie.tech/v1/ai:formapi/add-fields-to-template` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| template_id | string | yes |  |
| body | object | yes | JSON request body |

### Copy a Template
`POST https://apizie.tech/v1/ai:formapi/copy-template` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| template_id | string | yes |  |
| body | object | no | JSON request body |

### Move Template to folder
`POST https://apizie.tech/v1/ai:formapi/move-template-to-folder` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| template_id | string | yes |  |
| body | object | yes | JSON request body |

### Fetch the JSON schema for a template
`GET https://apizie.tech/v1/ai:formapi/get-template-schema` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| template_id | string | yes |  |

### List all submissions for a given template
`GET https://apizie.tech/v1/ai:formapi/get-templates-template-id-submissions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| template_id | string | yes |  |
| cursor | string | no |  |
| limit | number | no |  |
| created_after | string | no |  |
| created_before | string | no |  |
| type | string | no |  |
| include_data | boolean | no |  |

### Generates a new PDF
`POST https://apizie.tech/v1/ai:formapi/generate-pdf` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| template_id | string | yes |  |
| body | object | yes | JSON request body |

### Generates multiple PDFs
`POST https://apizie.tech/v1/ai:formapi/batch-generate-pdf-v1` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| template_id | string | yes |  |
| body | object | yes | JSON request body |

### Fetch the full template attributes
`GET https://apizie.tech/v1/ai:formapi/get-full-template` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| template_id | string | yes |  |

### Create a new PDF template from a cached presign upload
`POST https://apizie.tech/v1/ai:formapi/create-pdftemplate-from-upload` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Create a new HTML template
`POST https://apizie.tech/v1/ai:formapi/create-htmltemplate` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Get a presigned URL so that you can upload a file to our AWS S3 bucket
`GET https://apizie.tech/v1/ai:formapi/get-presign-url` (byok)

## Example
```
curl "https://apizie.tech/v1/ai:formapi/test-authentication" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the API v1 API?
Create a free Apizie key, then send GET https://apizie.tech/v1/ai:formapi/test-authentication with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the API v1 API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. API v1 itself also needs your own key from formapi.io.

### Can AI agents use the API v1 API?
Yes. Add the Apizie MCP server (https://apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key ai:formapi.

### What is the status of the API v1 API?
Needs your own provider key (bring your own key)
