Files & Requests
Create a file upload session
Create a file record and return a pre-signed upload URL and the fields to submit the file with.
POST
/
v1
/
files
Create a file upload session
curl --request POST \
--url https://api.slate.inc/files/v1/files \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"matterId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fileName": "<string>",
"fileType": "<string>"
}
'import requests
url = "https://api.slate.inc/files/v1/files"
payload = {
"matterId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fileName": "<string>",
"fileType": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
matterId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
fileName: '<string>',
fileType: '<string>'
})
};
fetch('https://api.slate.inc/files/v1/files', 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.slate.inc/files/v1/files",
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([
'matterId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'fileName' => '<string>',
'fileType' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.slate.inc/files/v1/files"
payload := strings.NewReader("{\n \"matterId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"fileName\": \"<string>\",\n \"fileType\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.slate.inc/files/v1/files")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"matterId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"fileName\": \"<string>\",\n \"fileType\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.slate.inc/files/v1/files")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"matterId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"fileName\": \"<string>\",\n \"fileType\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"uploadUrl": "<string>",
"fields": {},
"key": "<string>",
"fileName": "<string>",
"maxFileSize": 123
}{
"message": "<string>",
"reason": "MISSING_TOKEN_OR_PERMISSIONS"
}{
"message": "<string>",
"reason": "MISSING_TOKEN_OR_PERMISSIONS"
}{
"message": "<string>",
"reason": "MISSING_TOKEN_OR_PERMISSIONS"
}Authorizations
Cognito-issued JWT access token. Send it as Authorization: Bearer <token>.
Body
application/json
Response
Upload URL and metadata for the file
Identifier for the created file record
Pre-signed upload URL to use when uploading the file
Form fields that must accompany the upload
Show child attributes
Show child attributes
Storage key that should be used when uploading the file
Original filename including extension (e.g. example.pdf)
Maximum allowed upload size in bytes, enforced by the upload URL
⌘I
Create a file upload session
curl --request POST \
--url https://api.slate.inc/files/v1/files \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"matterId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fileName": "<string>",
"fileType": "<string>"
}
'import requests
url = "https://api.slate.inc/files/v1/files"
payload = {
"matterId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fileName": "<string>",
"fileType": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
matterId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
fileName: '<string>',
fileType: '<string>'
})
};
fetch('https://api.slate.inc/files/v1/files', 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.slate.inc/files/v1/files",
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([
'matterId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'fileName' => '<string>',
'fileType' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.slate.inc/files/v1/files"
payload := strings.NewReader("{\n \"matterId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"fileName\": \"<string>\",\n \"fileType\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.slate.inc/files/v1/files")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"matterId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"fileName\": \"<string>\",\n \"fileType\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.slate.inc/files/v1/files")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"matterId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"fileName\": \"<string>\",\n \"fileType\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"uploadUrl": "<string>",
"fields": {},
"key": "<string>",
"fileName": "<string>",
"maxFileSize": 123
}{
"message": "<string>",
"reason": "MISSING_TOKEN_OR_PERMISSIONS"
}{
"message": "<string>",
"reason": "MISSING_TOKEN_OR_PERMISSIONS"
}{
"message": "<string>",
"reason": "MISSING_TOKEN_OR_PERMISSIONS"
}