Get File Upload URL
POST https://%7B%7Bvault_uri%7D%7D.vault.skyflowapis.com/v2/vaults/{vaultID}/files/uploadURLContent-Type: application/jsonReturns the file upload URLs for provided file columns.
Authentication
Section titled “Authentication”Authorizationheader (bearer token, required) — Access token, prefixed byBearer.
Servers
Section titled “Servers”https://%7B%7Bvault_uri%7D%7D.vault.skyflowapis.com(Production, default)https://%7B%7Bvault_uri%7D%7D.vault.skyflowapis-preview.com(Sandbox)
Request
Section titled “Request”Path parameters
Section titled “Path parameters”vaultID(string, required)
Body (application/json)
Section titled “Body (application/json)”This endpoint expects an object.
records(list of object, required) — List of records where the files to be uploaded.tableName(string, required) — Name of the table where file is being uploaded.fileColumns(list of object, required) — List of FileColumnRecord objects.columnName(string, required) — Name of the column where file is being uploaded to.fileName(string, required) — Name of the file being uploaded.
skyflowID(string, optional) — Skyflow ID of the record where file to be uploaded.
Response
Section titled “Response”OK
records(list of object, optional) — List of records corresponding to the list of given fileColumns.fields(object, optional) — Fields and signedURLs for the record.error(string, optional) — Error if unable to fetch URLs.http_code(integer, optional) — HTTP code of the response.
Returned when a bulk request partially succeeds. Check per-record status codes and error messages in the response body.
map from string to any
Errors
Section titled “Errors”400 Bad Request Error
Section titled “400 Bad Request Error”Returned when the request is invalid or cannot be served.
error(object, required)grpc_code(integer, required) — gRPC status codes. See https://grpc.io/docs/guides/status-codes.http_code(integer, required) — HTTP status codes. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Status.http_status(string, required)message(string, required)details(list of map from string to any, optional)
401 Unauthorized Error
Section titled “401 Unauthorized Error”Returned when the request is unauthorized.
error(object, required)grpc_code(integer, required) — gRPC status codes. See https://grpc.io/docs/guides/status-codes.http_code(integer, required) — HTTP status codes. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Status.http_status(string, required)message(string, required)details(list of map from string to any, optional)
404 Not Found Error
Section titled “404 Not Found Error”Returned when a resource doesn’t exist.
error(object, required)grpc_code(integer, required) — gRPC status codes. See https://grpc.io/docs/guides/status-codes.http_code(integer, required) — HTTP status codes. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Status.http_status(string, required)message(string, required)details(list of map from string to any, optional)
500 Internal Server Error
Section titled “500 Internal Server Error”An unexpected error response.
error(object, required)grpc_code(integer, required) — gRPC status codes. See https://grpc.io/docs/guides/status-codes.http_code(integer, required) — HTTP status codes. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Status.http_status(string, required)message(string, required)details(list of map from string to any, optional)
Examples
Section titled “Examples”Example 1
Section titled “Example 1”Request
{ "records": [ { "tableName": "user_documents", "fileColumns": [ { "columnName": "passport_scan", "fileName": "passport_john_doe.pdf" } ] } ]}Response
{ "records": [ { "fields": {}, "error": "", "http_code": 200 } ]}SDK Code
import requests
url = "https://{{vault_uri}}.vault.skyflowapis.com/v2/vaults/vaultID/files/uploadURL"
payload = { "records": [ { "tableName": "user_documents", "fileColumns": [ { "columnName": "passport_scan", "fileName": "passport_john_doe.pdf" } ] } ] }headers = { "Authorization": "Bearer <token>", "Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.json())const url = 'https://{{vault_uri}}.vault.skyflowapis.com/v2/vaults/vaultID/files/uploadURL';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"records":[{"tableName":"user_documents","fileColumns":[{"columnName":"passport_scan","fileName":"passport_john_doe.pdf"}]}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://{{vault_uri}}.vault.skyflowapis.com/v2/vaults/vaultID/files/uploadURL"
payload := strings.NewReader("{\n \"records\": [\n {\n \"tableName\": \"user_documents\",\n \"fileColumns\": [\n {\n \"columnName\": \"passport_scan\",\n \"fileName\": \"passport_john_doe.pdf\"\n }\n ]\n }\n ]\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(res) fmt.Println(string(body))
}require 'uri'require 'net/http'
url = URI("https://{{vault_uri}}.vault.skyflowapis.com/v2/vaults/vaultID/files/uploadURL")
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 \"records\": [\n {\n \"tableName\": \"user_documents\",\n \"fileColumns\": [\n {\n \"columnName\": \"passport_scan\",\n \"fileName\": \"passport_john_doe.pdf\"\n }\n ]\n }\n ]\n}"
response = http.request(request)puts response.read_bodyimport com.mashape.unirest.http.HttpResponse;import com.mashape.unirest.http.Unirest;
HttpResponse<String> response = Unirest.post("https://{{vault_uri}}.vault.skyflowapis.com/v2/vaults/vaultID/files/uploadURL") .header("Authorization", "Bearer <token>") .header("Content-Type", "application/json") .body("{\n \"records\": [\n {\n \"tableName\": \"user_documents\",\n \"fileColumns\": [\n {\n \"columnName\": \"passport_scan\",\n \"fileName\": \"passport_john_doe.pdf\"\n }\n ]\n }\n ]\n}") .asString();<?phprequire_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://{{vault_uri}}.vault.skyflowapis.com/v2/vaults/vaultID/files/uploadURL', [ 'body' => '{ "records": [ { "tableName": "user_documents", "fileColumns": [ { "columnName": "passport_scan", "fileName": "passport_john_doe.pdf" } ] } ]}', 'headers' => [ 'Authorization' => 'Bearer <token>', 'Content-Type' => 'application/json', ],]);
echo $response->getBody();using RestSharp;
var client = new RestClient("https://{{vault_uri}}.vault.skyflowapis.com/v2/vaults/vaultID/files/uploadURL");var request = new RestRequest(Method.POST);request.AddHeader("Authorization", "Bearer <token>");request.AddHeader("Content-Type", "application/json");request.AddParameter("application/json", "{\n \"records\": [\n {\n \"tableName\": \"user_documents\",\n \"fileColumns\": [\n {\n \"columnName\": \"passport_scan\",\n \"fileName\": \"passport_john_doe.pdf\"\n }\n ]\n }\n ]\n}", ParameterType.RequestBody);IRestResponse response = client.Execute(request);import Foundation
let headers = [ "Authorization": "Bearer <token>", "Content-Type": "application/json"]let parameters = ["records": [ [ "tableName": "user_documents", "fileColumns": [ [ "columnName": "passport_scan", "fileName": "passport_john_doe.pdf" ] ] ] ]] as [String : Any]
let postData = JSONSerialization.data(withJSONObject: parameters, options: [])
let request = NSMutableURLRequest(url: NSURL(string: "https://{{vault_uri}}.vault.skyflowapis.com/v2/vaults/vaultID/files/uploadURL")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0)request.httpMethod = "POST"request.allHTTPHeaderFields = headersrequest.httpBody = postData as Data
let session = URLSession.sharedlet dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) }})
dataTask.resume()Example 2
Section titled “Example 2”Request
{ "records": [ { "tableName": "user_documents", "fileColumns": [ { "columnName": "passport_scan", "fileName": "passport_john_doe.pdf" } ] } ]}Response
{ "records": [ { "fields": {}, "error": "", "http_code": 200 } ]}SDK Code
import requests
url = "https://{{vault_uri}}.vault.skyflowapis.com/v2/vaults/vaultID/files/uploadURL"
payload = { "records": [ { "tableName": "user_documents", "fileColumns": [ { "columnName": "passport_scan", "fileName": "passport_john_doe.pdf" } ] } ] }headers = { "Authorization": "Bearer <token>", "Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.json())const url = 'https://{{vault_uri}}.vault.skyflowapis.com/v2/vaults/vaultID/files/uploadURL';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"records":[{"tableName":"user_documents","fileColumns":[{"columnName":"passport_scan","fileName":"passport_john_doe.pdf"}]}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://{{vault_uri}}.vault.skyflowapis.com/v2/vaults/vaultID/files/uploadURL"
payload := strings.NewReader("{\n \"records\": [\n {\n \"tableName\": \"user_documents\",\n \"fileColumns\": [\n {\n \"columnName\": \"passport_scan\",\n \"fileName\": \"passport_john_doe.pdf\"\n }\n ]\n }\n ]\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(res) fmt.Println(string(body))
}require 'uri'require 'net/http'
url = URI("https://{{vault_uri}}.vault.skyflowapis.com/v2/vaults/vaultID/files/uploadURL")
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 \"records\": [\n {\n \"tableName\": \"user_documents\",\n \"fileColumns\": [\n {\n \"columnName\": \"passport_scan\",\n \"fileName\": \"passport_john_doe.pdf\"\n }\n ]\n }\n ]\n}"
response = http.request(request)puts response.read_bodyimport com.mashape.unirest.http.HttpResponse;import com.mashape.unirest.http.Unirest;
HttpResponse<String> response = Unirest.post("https://{{vault_uri}}.vault.skyflowapis.com/v2/vaults/vaultID/files/uploadURL") .header("Authorization", "Bearer <token>") .header("Content-Type", "application/json") .body("{\n \"records\": [\n {\n \"tableName\": \"user_documents\",\n \"fileColumns\": [\n {\n \"columnName\": \"passport_scan\",\n \"fileName\": \"passport_john_doe.pdf\"\n }\n ]\n }\n ]\n}") .asString();<?phprequire_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://{{vault_uri}}.vault.skyflowapis.com/v2/vaults/vaultID/files/uploadURL', [ 'body' => '{ "records": [ { "tableName": "user_documents", "fileColumns": [ { "columnName": "passport_scan", "fileName": "passport_john_doe.pdf" } ] } ]}', 'headers' => [ 'Authorization' => 'Bearer <token>', 'Content-Type' => 'application/json', ],]);
echo $response->getBody();using RestSharp;
var client = new RestClient("https://{{vault_uri}}.vault.skyflowapis.com/v2/vaults/vaultID/files/uploadURL");var request = new RestRequest(Method.POST);request.AddHeader("Authorization", "Bearer <token>");request.AddHeader("Content-Type", "application/json");request.AddParameter("application/json", "{\n \"records\": [\n {\n \"tableName\": \"user_documents\",\n \"fileColumns\": [\n {\n \"columnName\": \"passport_scan\",\n \"fileName\": \"passport_john_doe.pdf\"\n }\n ]\n }\n ]\n}", ParameterType.RequestBody);IRestResponse response = client.Execute(request);import Foundation
let headers = [ "Authorization": "Bearer <token>", "Content-Type": "application/json"]let parameters = ["records": [ [ "tableName": "user_documents", "fileColumns": [ [ "columnName": "passport_scan", "fileName": "passport_john_doe.pdf" ] ] ] ]] as [String : Any]
let postData = JSONSerialization.data(withJSONObject: parameters, options: [])
let request = NSMutableURLRequest(url: NSURL(string: "https://{{vault_uri}}.vault.skyflowapis.com/v2/vaults/vaultID/files/uploadURL")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0)request.httpMethod = "POST"request.allHTTPHeaderFields = headersrequest.httpBody = postData as Data
let session = URLSession.sharedlet dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) }})
dataTask.resume()