curl --request POST \
--url https://api-sandbox.argyle.com/partners/v2/user-uploads \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: multipart/form-data' \
--form user=3c90c3cc-0d44-4b50-8888-8dd25736052a \
--form upload='@example-file'import requests
url = "https://api-sandbox.argyle.com/partners/v2/user-uploads"
files = { "upload": ("example-file", open("example-file", "rb")) }
payload = { "user": "3c90c3cc-0d44-4b50-8888-8dd25736052a" }
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('user', '3c90c3cc-0d44-4b50-8888-8dd25736052a');
form.append('upload', '<string>');
const options = {method: 'POST', headers: {Authorization: 'Basic <encoded-value>'}};
options.body = form;
fetch('https://api-sandbox.argyle.com/partners/v2/user-uploads', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-sandbox.argyle.com/partners/v2/user-uploads",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"user\"\r\n\r\n3c90c3cc-0d44-4b50-8888-8dd25736052a\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"upload\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: multipart/form-data"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.argyle.com/partners/v2/user-uploads"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"user\"\r\n\r\n3c90c3cc-0d44-4b50-8888-8dd25736052a\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"upload\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-sandbox.argyle.com/partners/v2/user-uploads")
.header("Authorization", "Basic <encoded-value>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"user\"\r\n\r\n3c90c3cc-0d44-4b50-8888-8dd25736052a\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"upload\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.argyle.com/partners/v2/user-uploads")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"user\"\r\n\r\n3c90c3cc-0d44-4b50-8888-8dd25736052a\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"upload\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"id": "01320596-2c3d-189c-53e7-a8ce6d625b33",
"account": "01856c65-43b6-8b5d-b32a-56b8fbda5c28",
"document_type": "paystubs",
"file_url": "www.argyle.com/storagename",
"file_name": "combined_paystubs.pdf",
"metadata": {
"employment": {},
"ocr_documents": [
{
"ocr_data": {},
"ocr_authenticity": {},
"ocr_authenticity_score": null
},
{
"ocr_data": {},
"ocr_authenticity": {},
"ocr_authenticity_score": null
}
],
"ocr_data": {},
"ocr_authenticity": {},
"ocr_authenticity_score": null
},
"processing": {
"classification": "completed",
"ocr": "completed",
"authenticity": "completed"
},
"created_at": "2024-07-08T13:43:49.864Z",
"updated_at": "2024-07-08T13:43:51.868Z"
}Upload a document
Upload a document via the API.
curl --request POST \
--url https://api-sandbox.argyle.com/partners/v2/user-uploads \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: multipart/form-data' \
--form user=3c90c3cc-0d44-4b50-8888-8dd25736052a \
--form upload='@example-file'import requests
url = "https://api-sandbox.argyle.com/partners/v2/user-uploads"
files = { "upload": ("example-file", open("example-file", "rb")) }
payload = { "user": "3c90c3cc-0d44-4b50-8888-8dd25736052a" }
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('user', '3c90c3cc-0d44-4b50-8888-8dd25736052a');
form.append('upload', '<string>');
const options = {method: 'POST', headers: {Authorization: 'Basic <encoded-value>'}};
options.body = form;
fetch('https://api-sandbox.argyle.com/partners/v2/user-uploads', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-sandbox.argyle.com/partners/v2/user-uploads",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"user\"\r\n\r\n3c90c3cc-0d44-4b50-8888-8dd25736052a\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"upload\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: multipart/form-data"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.argyle.com/partners/v2/user-uploads"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"user\"\r\n\r\n3c90c3cc-0d44-4b50-8888-8dd25736052a\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"upload\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-sandbox.argyle.com/partners/v2/user-uploads")
.header("Authorization", "Basic <encoded-value>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"user\"\r\n\r\n3c90c3cc-0d44-4b50-8888-8dd25736052a\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"upload\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.argyle.com/partners/v2/user-uploads")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"user\"\r\n\r\n3c90c3cc-0d44-4b50-8888-8dd25736052a\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"upload\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"id": "01320596-2c3d-189c-53e7-a8ce6d625b33",
"account": "01856c65-43b6-8b5d-b32a-56b8fbda5c28",
"document_type": "paystubs",
"file_url": "www.argyle.com/storagename",
"file_name": "combined_paystubs.pdf",
"metadata": {
"employment": {},
"ocr_documents": [
{
"ocr_data": {},
"ocr_authenticity": {},
"ocr_authenticity_score": null
},
{
"ocr_data": {},
"ocr_authenticity": {},
"ocr_authenticity_score": null
}
],
"ocr_data": {},
"ocr_authenticity": {},
"ocr_authenticity_score": null
},
"processing": {
"classification": "completed",
"ocr": "completed",
"authenticity": "completed"
},
"created_at": "2024-07-08T13:43:49.864Z",
"updated_at": "2024-07-08T13:43:51.868Z"
}Authorizations
Username = api_key_id, Password = api_key_secret
Body
Response
A user upload object.
Unique ID of the uploaded document.
ID of the account associated with the uploaded document.
The document category in Link the user selected, or the document_type provided when uploading via the API.
If OCR processing is enabled, this value is overwritten when the document is found to be a different type.
Possible values:
paystubsW-21099proof-of-identityproof-of-addressmiscellaneous
URL linking to the original uploaded document file.
This static URL redirects to a download page that requires Argyle authentication headers.
Implementation requirements for client-side applications
- Ensure your HTTP client or library (for example, Axios or Python requests) is configured to follow redirects.
- Append Basic authentication headers for Argyle to the file download request.
File name of the uploaded document on the user's computer or phone.
Contains document OCR and authenticity information.
Show child attributes
Show child attributes
Contains OCR processing statuses.
Show child attributes
Show child attributes