Upload a file asynchronously
curl --request POST \
--url https://public-api.cambio-ai.com/async/upload \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"file_name": "<string>",
"extract_args": {}
}
'import requests
url = "https://public-api.cambio-ai.com/async/upload"
payload = {
"file_name": "<string>",
"extract_args": {}
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({file_name: '<string>', extract_args: {}})
};
fetch('https://public-api.cambio-ai.com/async/upload', 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://public-api.cambio-ai.com/async/upload",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'file_name' => '<string>',
'extract_args' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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://public-api.cambio-ai.com/async/upload"
payload := strings.NewReader("{\n \"file_name\": \"<string>\",\n \"extract_args\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://public-api.cambio-ai.com/async/upload")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"file_name\": \"<string>\",\n \"extract_args\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.cambio-ai.com/async/upload")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"file_name\": \"<string>\",\n \"extract_args\": {}\n}"
response = http.request(request)
puts response.read_body{
"file_id": "<string>",
"presignedUrl": "<string>"
}Async Endpoint Examples
Async Upload
This endpoint provides a pre-signed URL for uploading a file and a unique file ID.
POST
/
async
/
upload
Upload a file asynchronously
curl --request POST \
--url https://public-api.cambio-ai.com/async/upload \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"file_name": "<string>",
"extract_args": {}
}
'import requests
url = "https://public-api.cambio-ai.com/async/upload"
payload = {
"file_name": "<string>",
"extract_args": {}
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({file_name: '<string>', extract_args: {}})
};
fetch('https://public-api.cambio-ai.com/async/upload', 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://public-api.cambio-ai.com/async/upload",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'file_name' => '<string>',
'extract_args' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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://public-api.cambio-ai.com/async/upload"
payload := strings.NewReader("{\n \"file_name\": \"<string>\",\n \"extract_args\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://public-api.cambio-ai.com/async/upload")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"file_name\": \"<string>\",\n \"extract_args\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.cambio-ai.com/async/upload")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"file_name\": \"<string>\",\n \"extract_args\": {}\n}"
response = http.request(request)
puts response.read_body{
"file_id": "<string>",
"presignedUrl": "<string>"
}Authorizations
Headers
Your API key.
Body
application/json
The name of the file to be uploaded.
The type of processing to apply to the uploaded file. Default is file, which will parse full content from the input file. table will extract tables from the input file. json will extract key-value pairs from the input file. file_refined_quick will parse the full content from the input file with a larger model. extract_pii will extract PII (personally identifiable information) from the input file.
Available options:
file, table, json, file_refined_quick, extract_pii Arguments for extraction processing.

