Providing Files

Four ways to submit documents to a workflow execution

When you create a workflow execution, you need to provide the documents that the workflow will process. Further AI supports four file submission methods, determined by the file access configuration set on your workflow.

The file access type is configured per workflow. Contact your Further AI representative to set or change the file access method for your workflow.

Method Overview

MethodAccess TypeContent-TypeBest For
A. Multipart Uploadmultipartmultipart/form-dataDirect file uploads from your server
B. Public URLspublic_urlsapplication/jsonFiles accessible via public URLs
C. OAuth2-Protected URLsoauth2application/jsonFiles behind OAuth2 authentication
D. Box Shared Linksboxapplication/jsonFiles hosted on Box

A. Multipart File Upload

Upload files directly as multipart form data. This is the most common method and works well when your application has local access to the files.

Request Format

  • Content-Type: multipart/form-data
  • Field name: files (repeat for multiple files)

Single File Upload

1import requests
2
3url = f"https://api.further.ai/api/v1/workflow-builder/workflows/{workflow_id}/executions"
4headers = {"Authorization": f"Bearer {access_token}"}
5
6files = [
7 ("files", ("document.pdf", open("document.pdf", "rb"), "application/pdf"))
8]
9
10response = requests.post(url, headers=headers, files=files)
11print(response.json())

Multiple File Upload

1import requests
2
3url = f"https://api.further.ai/api/v1/workflow-builder/workflows/{workflow_id}/executions"
4headers = {"Authorization": f"Bearer {access_token}"}
5
6files = [
7 ("files", ("policy.pdf", open("policy.pdf", "rb"), "application/pdf")),
8 ("files", ("claim.pdf", open("claim.pdf", "rb"), "application/pdf")),
9 ("files", ("photos.zip", open("photos.zip", "rb"), "application/zip")),
10]
11
12response = requests.post(url, headers=headers, files=files)
13print(response.json())

Multipart Upload with Text Inputs

You can include additional text inputs alongside your files by adding a user_inputs field containing a JSON string:

1import json
2import requests
3
4url = f"https://api.further.ai/api/v1/workflow-builder/workflows/{workflow_id}/executions"
5headers = {"Authorization": f"Bearer {access_token}"}
6
7files = [
8 ("files", ("policy.pdf", open("policy.pdf", "rb"), "application/pdf")),
9]
10
11data = {
12 "user_inputs": json.dumps({
13 "claim_number": "CLM-2024-001",
14 "policy_type": "auto"
15 })
16}
17
18response = requests.post(url, headers=headers, files=files, data=data)
19print(response.json())

B. Public URLs

Provide publicly accessible URLs pointing to your documents. Further AI will download the files before processing.

Request Format

  • Content-Type: application/json
1{
2 "file_urls": [
3 "https://example.com/documents/policy.pdf",
4 "https://example.com/documents/claim.pdf"
5 ]
6}

Example

1import requests
2
3url = f"https://api.further.ai/api/v1/workflow-builder/workflows/{workflow_id}/executions"
4
5headers = {
6 "Authorization": f"Bearer {access_token}",
7 "Content-Type": "application/json"
8}
9
10payload = {
11 "file_urls": [
12 "https://example.com/documents/policy.pdf",
13 "https://example.com/documents/claim.pdf"
14 ]
15}
16
17response = requests.post(url, headers=headers, json=payload)
18print(response.json())

Public URLs with Text Inputs

1{
2 "file_urls": [
3 "https://example.com/documents/policy.pdf"
4 ],
5 "user_inputs": {
6 "claim_number": "CLM-2024-001",
7 "policy_type": "auto"
8 }
9}

URLs must be publicly accessible without authentication. If your files require auth, use OAuth2-Protected URLs or Box Shared Links instead.


C. OAuth2-Protected URLs

For files behind an OAuth2-protected service, you provide the file URLs and your OAuth2 credentials. Further AI uses your credentials to obtain an access token and download the files on your behalf.

Request Format

  • Content-Type: application/json
1{
2 "file_urls": [
3 "https://your-service.com/api/documents/12345",
4 "https://your-service.com/api/documents/67890"
5 ],
6 "oauth2_credentials": {
7 "token_url": "https://your-service.com/oauth/token",
8 "client_id": "your_oauth_client_id",
9 "client_secret": "your_oauth_client_secret",
10 "scope": "documents:read"
11 }
12}

Example

1import requests
2
3url = f"https://api.further.ai/api/v1/workflow-builder/workflows/{workflow_id}/executions"
4
5headers = {
6 "Authorization": f"Bearer {access_token}",
7 "Content-Type": "application/json"
8}
9
10payload = {
11 "file_urls": [
12 "https://your-service.com/api/documents/12345"
13 ],
14 "oauth2_credentials": {
15 "token_url": "https://your-service.com/oauth/token",
16 "client_id": "your_oauth_client_id",
17 "client_secret": "your_oauth_client_secret",
18 "scope": "documents:read"
19 }
20}
21
22response = requests.post(url, headers=headers, json=payload)
23print(response.json())

OAuth2 Credentials Fields

FieldTypeRequiredDescription
token_urlstringYesThe OAuth2 token endpoint URL
client_idstringYesOAuth2 client identifier
client_secretstringYesOAuth2 client secret
scopestringNoOAuth2 scope(s) required to access the files

For documents stored in your Box instance, provide Box shared links. You provide your Box credentials to Further AI during setup, and the system uses them to download files via the Box API.

Request Format

  • Content-Type: application/json
1{
2 "file_urls": [
3 "https://app.box.com/s/abc123def456",
4 "https://app.box.com/s/ghi789jkl012"
5 ]
6}

Example

1import requests
2
3url = f"https://api.further.ai/api/v1/workflow-builder/workflows/{workflow_id}/executions"
4
5headers = {
6 "Authorization": f"Bearer {access_token}",
7 "Content-Type": "application/json"
8}
9
10payload = {
11 "file_urls": [
12 "https://app.box.com/s/abc123def456",
13 "https://app.box.com/s/ghi789jkl012"
14 ]
15}
16
17response = requests.post(url, headers=headers, json=payload)
18print(response.json())

Box shared links must have the appropriate access level set (e.g., “People with the link” or “Company”). Restricted links that require Box authentication will not work with this method.


Supported File Types

Further AI supports a variety of document formats:

CategoryFormats
DocumentsPDF, DOCX, DOC, TXT, RTF
SpreadsheetsXLSX, XLS, CSV
ImagesPNG, JPG, JPEG, TIFF, BMP, GIF
ArchivesZIP (containing supported formats)
EmailEML, MSG

Maximum file size and count limits vary by workflow configuration. Contact your Further AI representative for your specific limits.