Batch Operation
POST https://%7B%7Bvault_uri%7D%7D.vault.skyflowapis.com/v1/vaults/{vaultID}Content-Type: application/jsonPerforms multiple record operations in a single transaction.
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) — ID of the vault.
Body (application/json)
Section titled “Body (application/json)”This endpoint expects an object.
records(list of object, required) — Record operations to perform.fields(map from string to any, required) — Field and value key pairs. For example,{'field_1':'value_1', 'field_2':'value_2'}. Only valid whenmethodisPOSTorPUT.tableName(string, required) — Name of the table to perform the operation on.method(enum, required) — Method of the operation.- Allowed values:
POST,PUT,GET,DELETE
- Allowed values:
batchID(string, optional) — ID to group operations by. Operations in the same group are executed sequentially.redaction(enum, optional, default: DEFAULT) — Redaction level to enforce for the returned record. Subject to policies assigned to the API caller.- Allowed values:
DEFAULT,REDACTED,MASKED,PLAIN_TEXT
- Allowed values:
tokenization(boolean, optional, default: false) — Iftrue, this operation returns tokens for fields with tokenization enabled. Only applicable ifskyflow_idvalues are specified.ID(string, optional) —skyflow_idfor the record. Only valid whenmethodisGET,DELETE, orPUT.downloadURL(boolean, optional, default: false) — Iftrue, returns download URLs for fields with a file data type. URLs are valid for 15 minutes. If virus scanning is enabled, only returns if the file is clean.upsert(string, optional) — Column that stores primary keys for upsert operations. The column must be marked as unique in the vault schema. Only valid whenmethodisPOST.tokens(map from string to any, optional) — Fields and tokens for the record. For example,{'field_1':'token_1', 'field_2':'token_2'}.returnFileMetadata(boolean, optional, default: false) — Iftrue, returns metadata for files.
continueOnError(boolean, optional, default: false) — Iftrue, continues processing remaining operations when one operation returns an error. Iffalse, stops processing remaining operations when one operation returns an error.
Response
Section titled “Response”OK
vaultID(string, optional) — ID of the vault.responses(list of object, optional) — Responses in the same order as in the request. Responses have the same payload structure as their corresponding APIs:POSTreturns an Insert Records response.PUTreturns an Update Record response.GETreturns a Get Record response.DELETEreturns a Delete Record 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)
422 Unprocessable Entity Error
Section titled “422 Unprocessable Entity Error”Returned when the request is well-formed but contains semantic errors that prevent it from being processed.
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": [ { "fields": { "drivers_license_number": "89867453", "name": "Connor", "phone_number": "8794523160", "ssn": "143-89-2306" }, "tableName": "persons", "method": "POST", "batchID": "persons-12345", "redaction": "PLAIN_TEXT", "tokenization": false, "downloadURL": false, "upsert": "drivers_license_number" }, { "fields": {}, "tableName": "persons", "method": "GET", "batchID": "persons-12345", "redaction": "PLAIN_TEXT", "tokenization": false, "ID": "f1dbc55c-7c9b-495d-9a36-72bb2b619202", "downloadURL": true } ]}Response
{ "vaultID": "cd1d815aa09b4cbfbb803bd20349f202", "responses": [ { "records": [ { "fields": { "drivers_license_number": "*REDACTED*", "id_proof": "https://<aws-url>/f244fg04bgh876qemk6c3a32256e2k90/record_file/cd1d815aa09b4cbfbb803bd20349f202/c2d1debe468923c08f32470a9dh789f9/f1dbc55c-7c9b-495d-9a36-72bb2b619202/8fa99367cf58h5w296eaf15d6f42a4d237cbab65?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=<aws-credential>&X-Amz-Date=20230622T100910Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=<aws-signature>", "name": "B***ok", "phone_number": "XXXXXX7533", "skyflow_id": "f1dbc55c-7c9b-495d-9a36-72bb2b619202", "ssn": "XXX-XX-7645" }, "skyflow_id": "4bc4a3a6-dfba-4314-809d-5ca63d43c732" } ] } ]}SDK Code
import requests
url = "https://{{vault_uri}}.vault.skyflowapis.com/v1/vaults/vaultID"
payload = { "records": [ { "fields": { "drivers_license_number": "89867453", "name": "Connor", "phone_number": "8794523160", "ssn": "143-89-2306" }, "tableName": "persons", "method": "POST", "batchID": "persons-12345", "redaction": "PLAIN_TEXT", "tokenization": False, "downloadURL": False, "upsert": "drivers_license_number" }, { "fields": {}, "tableName": "persons", "method": "GET", "batchID": "persons-12345", "redaction": "PLAIN_TEXT", "tokenization": False, "ID": "f1dbc55c-7c9b-495d-9a36-72bb2b619202", "downloadURL": True } ] }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/v1/vaults/vaultID';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"records":[{"fields":{"drivers_license_number":"89867453","name":"Connor","phone_number":"8794523160","ssn":"143-89-2306"},"tableName":"persons","method":"POST","batchID":"persons-12345","redaction":"PLAIN_TEXT","tokenization":false,"downloadURL":false,"upsert":"drivers_license_number"},{"fields":{},"tableName":"persons","method":"GET","batchID":"persons-12345","redaction":"PLAIN_TEXT","tokenization":false,"ID":"f1dbc55c-7c9b-495d-9a36-72bb2b619202","downloadURL":true}]}'};
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/v1/vaults/vaultID"
payload := strings.NewReader("{\n \"records\": [\n {\n \"fields\": {\n \"drivers_license_number\": \"89867453\",\n \"name\": \"Connor\",\n \"phone_number\": \"8794523160\",\n \"ssn\": \"143-89-2306\"\n },\n \"tableName\": \"persons\",\n \"method\": \"POST\",\n \"batchID\": \"persons-12345\",\n \"redaction\": \"PLAIN_TEXT\",\n \"tokenization\": false,\n \"downloadURL\": false,\n \"upsert\": \"drivers_license_number\"\n },\n {\n \"fields\": {},\n \"tableName\": \"persons\",\n \"method\": \"GET\",\n \"batchID\": \"persons-12345\",\n \"redaction\": \"PLAIN_TEXT\",\n \"tokenization\": false,\n \"ID\": \"f1dbc55c-7c9b-495d-9a36-72bb2b619202\",\n \"downloadURL\": true\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/v1/vaults/vaultID")
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 \"fields\": {\n \"drivers_license_number\": \"89867453\",\n \"name\": \"Connor\",\n \"phone_number\": \"8794523160\",\n \"ssn\": \"143-89-2306\"\n },\n \"tableName\": \"persons\",\n \"method\": \"POST\",\n \"batchID\": \"persons-12345\",\n \"redaction\": \"PLAIN_TEXT\",\n \"tokenization\": false,\n \"downloadURL\": false,\n \"upsert\": \"drivers_license_number\"\n },\n {\n \"fields\": {},\n \"tableName\": \"persons\",\n \"method\": \"GET\",\n \"batchID\": \"persons-12345\",\n \"redaction\": \"PLAIN_TEXT\",\n \"tokenization\": false,\n \"ID\": \"f1dbc55c-7c9b-495d-9a36-72bb2b619202\",\n \"downloadURL\": true\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/v1/vaults/vaultID") .header("Authorization", "Bearer <token>") .header("Content-Type", "application/json") .body("{\n \"records\": [\n {\n \"fields\": {\n \"drivers_license_number\": \"89867453\",\n \"name\": \"Connor\",\n \"phone_number\": \"8794523160\",\n \"ssn\": \"143-89-2306\"\n },\n \"tableName\": \"persons\",\n \"method\": \"POST\",\n \"batchID\": \"persons-12345\",\n \"redaction\": \"PLAIN_TEXT\",\n \"tokenization\": false,\n \"downloadURL\": false,\n \"upsert\": \"drivers_license_number\"\n },\n {\n \"fields\": {},\n \"tableName\": \"persons\",\n \"method\": \"GET\",\n \"batchID\": \"persons-12345\",\n \"redaction\": \"PLAIN_TEXT\",\n \"tokenization\": false,\n \"ID\": \"f1dbc55c-7c9b-495d-9a36-72bb2b619202\",\n \"downloadURL\": true\n }\n ]\n}") .asString();<?phprequire_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://{{vault_uri}}.vault.skyflowapis.com/v1/vaults/vaultID', [ 'body' => '{ "records": [ { "fields": { "drivers_license_number": "89867453", "name": "Connor", "phone_number": "8794523160", "ssn": "143-89-2306" }, "tableName": "persons", "method": "POST", "batchID": "persons-12345", "redaction": "PLAIN_TEXT", "tokenization": false, "downloadURL": false, "upsert": "drivers_license_number" }, { "fields": {}, "tableName": "persons", "method": "GET", "batchID": "persons-12345", "redaction": "PLAIN_TEXT", "tokenization": false, "ID": "f1dbc55c-7c9b-495d-9a36-72bb2b619202", "downloadURL": true } ]}', 'headers' => [ 'Authorization' => 'Bearer <token>', 'Content-Type' => 'application/json', ],]);
echo $response->getBody();using RestSharp;
var client = new RestClient("https://{{vault_uri}}.vault.skyflowapis.com/v1/vaults/vaultID");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 \"fields\": {\n \"drivers_license_number\": \"89867453\",\n \"name\": \"Connor\",\n \"phone_number\": \"8794523160\",\n \"ssn\": \"143-89-2306\"\n },\n \"tableName\": \"persons\",\n \"method\": \"POST\",\n \"batchID\": \"persons-12345\",\n \"redaction\": \"PLAIN_TEXT\",\n \"tokenization\": false,\n \"downloadURL\": false,\n \"upsert\": \"drivers_license_number\"\n },\n {\n \"fields\": {},\n \"tableName\": \"persons\",\n \"method\": \"GET\",\n \"batchID\": \"persons-12345\",\n \"redaction\": \"PLAIN_TEXT\",\n \"tokenization\": false,\n \"ID\": \"f1dbc55c-7c9b-495d-9a36-72bb2b619202\",\n \"downloadURL\": true\n }\n ]\n}", ParameterType.RequestBody);IRestResponse response = client.Execute(request);import Foundation
let headers = [ "Authorization": "Bearer <token>", "Content-Type": "application/json"]let parameters = ["records": [ [ "fields": [ "drivers_license_number": "89867453", "name": "Connor", "phone_number": "8794523160", "ssn": "143-89-2306" ], "tableName": "persons", "method": "POST", "batchID": "persons-12345", "redaction": "PLAIN_TEXT", "tokenization": false, "downloadURL": false, "upsert": "drivers_license_number" ], [ "fields": [], "tableName": "persons", "method": "GET", "batchID": "persons-12345", "redaction": "PLAIN_TEXT", "tokenization": false, "ID": "f1dbc55c-7c9b-495d-9a36-72bb2b619202", "downloadURL": true ] ]] as [String : Any]
let postData = JSONSerialization.data(withJSONObject: parameters, options: [])
let request = NSMutableURLRequest(url: NSURL(string: "https://{{vault_uri}}.vault.skyflowapis.com/v1/vaults/vaultID")! 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": [ { "fields": { "drivers_license_number": "89867453", "name": "Connor", "phone_number": "8794523160", "ssn": "143-89-2306" }, "tableName": "persons", "method": "POST", "batchID": "persons-12345", "redaction": "PLAIN_TEXT", "tokenization": false, "downloadURL": false, "upsert": "drivers_license_number" }, { "fields": {}, "tableName": "persons", "method": "GET", "batchID": "persons-12345", "redaction": "PLAIN_TEXT", "tokenization": false, "ID": "f1dbc55c-7c9b-495d-9a36-72bb2b619202", "downloadURL": true } ]}Response
{}SDK Code
import requests
url = "https://{{vault_uri}}.vault.skyflowapis.com/v1/vaults/vaultID"
payload = { "records": [ { "fields": { "drivers_license_number": "89867453", "name": "Connor", "phone_number": "8794523160", "ssn": "143-89-2306" }, "tableName": "persons", "method": "POST", "batchID": "persons-12345", "redaction": "PLAIN_TEXT", "tokenization": False, "downloadURL": False, "upsert": "drivers_license_number" }, { "fields": {}, "tableName": "persons", "method": "GET", "batchID": "persons-12345", "redaction": "PLAIN_TEXT", "tokenization": False, "ID": "f1dbc55c-7c9b-495d-9a36-72bb2b619202", "downloadURL": True } ] }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/v1/vaults/vaultID';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"records":[{"fields":{"drivers_license_number":"89867453","name":"Connor","phone_number":"8794523160","ssn":"143-89-2306"},"tableName":"persons","method":"POST","batchID":"persons-12345","redaction":"PLAIN_TEXT","tokenization":false,"downloadURL":false,"upsert":"drivers_license_number"},{"fields":{},"tableName":"persons","method":"GET","batchID":"persons-12345","redaction":"PLAIN_TEXT","tokenization":false,"ID":"f1dbc55c-7c9b-495d-9a36-72bb2b619202","downloadURL":true}]}'};
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/v1/vaults/vaultID"
payload := strings.NewReader("{\n \"records\": [\n {\n \"fields\": {\n \"drivers_license_number\": \"89867453\",\n \"name\": \"Connor\",\n \"phone_number\": \"8794523160\",\n \"ssn\": \"143-89-2306\"\n },\n \"tableName\": \"persons\",\n \"method\": \"POST\",\n \"batchID\": \"persons-12345\",\n \"redaction\": \"PLAIN_TEXT\",\n \"tokenization\": false,\n \"downloadURL\": false,\n \"upsert\": \"drivers_license_number\"\n },\n {\n \"fields\": {},\n \"tableName\": \"persons\",\n \"method\": \"GET\",\n \"batchID\": \"persons-12345\",\n \"redaction\": \"PLAIN_TEXT\",\n \"tokenization\": false,\n \"ID\": \"f1dbc55c-7c9b-495d-9a36-72bb2b619202\",\n \"downloadURL\": true\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/v1/vaults/vaultID")
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 \"fields\": {\n \"drivers_license_number\": \"89867453\",\n \"name\": \"Connor\",\n \"phone_number\": \"8794523160\",\n \"ssn\": \"143-89-2306\"\n },\n \"tableName\": \"persons\",\n \"method\": \"POST\",\n \"batchID\": \"persons-12345\",\n \"redaction\": \"PLAIN_TEXT\",\n \"tokenization\": false,\n \"downloadURL\": false,\n \"upsert\": \"drivers_license_number\"\n },\n {\n \"fields\": {},\n \"tableName\": \"persons\",\n \"method\": \"GET\",\n \"batchID\": \"persons-12345\",\n \"redaction\": \"PLAIN_TEXT\",\n \"tokenization\": false,\n \"ID\": \"f1dbc55c-7c9b-495d-9a36-72bb2b619202\",\n \"downloadURL\": true\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/v1/vaults/vaultID") .header("Authorization", "Bearer <token>") .header("Content-Type", "application/json") .body("{\n \"records\": [\n {\n \"fields\": {\n \"drivers_license_number\": \"89867453\",\n \"name\": \"Connor\",\n \"phone_number\": \"8794523160\",\n \"ssn\": \"143-89-2306\"\n },\n \"tableName\": \"persons\",\n \"method\": \"POST\",\n \"batchID\": \"persons-12345\",\n \"redaction\": \"PLAIN_TEXT\",\n \"tokenization\": false,\n \"downloadURL\": false,\n \"upsert\": \"drivers_license_number\"\n },\n {\n \"fields\": {},\n \"tableName\": \"persons\",\n \"method\": \"GET\",\n \"batchID\": \"persons-12345\",\n \"redaction\": \"PLAIN_TEXT\",\n \"tokenization\": false,\n \"ID\": \"f1dbc55c-7c9b-495d-9a36-72bb2b619202\",\n \"downloadURL\": true\n }\n ]\n}") .asString();<?phprequire_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://{{vault_uri}}.vault.skyflowapis.com/v1/vaults/vaultID', [ 'body' => '{ "records": [ { "fields": { "drivers_license_number": "89867453", "name": "Connor", "phone_number": "8794523160", "ssn": "143-89-2306" }, "tableName": "persons", "method": "POST", "batchID": "persons-12345", "redaction": "PLAIN_TEXT", "tokenization": false, "downloadURL": false, "upsert": "drivers_license_number" }, { "fields": {}, "tableName": "persons", "method": "GET", "batchID": "persons-12345", "redaction": "PLAIN_TEXT", "tokenization": false, "ID": "f1dbc55c-7c9b-495d-9a36-72bb2b619202", "downloadURL": true } ]}', 'headers' => [ 'Authorization' => 'Bearer <token>', 'Content-Type' => 'application/json', ],]);
echo $response->getBody();using RestSharp;
var client = new RestClient("https://{{vault_uri}}.vault.skyflowapis.com/v1/vaults/vaultID");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 \"fields\": {\n \"drivers_license_number\": \"89867453\",\n \"name\": \"Connor\",\n \"phone_number\": \"8794523160\",\n \"ssn\": \"143-89-2306\"\n },\n \"tableName\": \"persons\",\n \"method\": \"POST\",\n \"batchID\": \"persons-12345\",\n \"redaction\": \"PLAIN_TEXT\",\n \"tokenization\": false,\n \"downloadURL\": false,\n \"upsert\": \"drivers_license_number\"\n },\n {\n \"fields\": {},\n \"tableName\": \"persons\",\n \"method\": \"GET\",\n \"batchID\": \"persons-12345\",\n \"redaction\": \"PLAIN_TEXT\",\n \"tokenization\": false,\n \"ID\": \"f1dbc55c-7c9b-495d-9a36-72bb2b619202\",\n \"downloadURL\": true\n }\n ]\n}", ParameterType.RequestBody);IRestResponse response = client.Execute(request);import Foundation
let headers = [ "Authorization": "Bearer <token>", "Content-Type": "application/json"]let parameters = ["records": [ [ "fields": [ "drivers_license_number": "89867453", "name": "Connor", "phone_number": "8794523160", "ssn": "143-89-2306" ], "tableName": "persons", "method": "POST", "batchID": "persons-12345", "redaction": "PLAIN_TEXT", "tokenization": false, "downloadURL": false, "upsert": "drivers_license_number" ], [ "fields": [], "tableName": "persons", "method": "GET", "batchID": "persons-12345", "redaction": "PLAIN_TEXT", "tokenization": false, "ID": "f1dbc55c-7c9b-495d-9a36-72bb2b619202", "downloadURL": true ] ]] as [String : Any]
let postData = JSONSerialization.data(withJSONObject: parameters, options: [])
let request = NSMutableURLRequest(url: NSURL(string: "https://{{vault_uri}}.vault.skyflowapis.com/v1/vaults/vaultID")! 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()