Session Resource Documentation
Session sandbox management endpoints for exporting state snapshots as downloadable JSON files, restoring/importing snapshot payloads, and purging overlay data.
| Name | Type | Required | Location | Description |
|---|---|---|---|---|
resource |
String (Query) |
Optional |
curl -X
GET 'http://playground-api-xi.vercel.app/session/export' \
-H 'Content-Type: application/json' \
-b "pg_identity=your_cookie_uuid"
fetch('http://playground-api-xi.vercel.app/session/export', {
method: 'GET' ,
credentials: 'include'
})
.then(res=>
res.json())
.then(data => console.log(data));
import axios from 'axios';
axios.get('http://playground-api-xi.vercel.app/session/export', {
withCredentials: true
}).then(response =>
console.log(response.data));
import requests
response = requests.get('http://playground-api-xi.vercel.app/session/export')
print(response.json())
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "http://playground-api-xi.vercel.app/session/export"
req,
err := http.NewRequest("GET", url, nil)
if err != nil
{
panic(err)
}
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp,
err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ :=
io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import Foundation
let url = URL(string: "http://playground-api-xi.vercel.app/session/export")!
var request = URLRequest(url:
url)
request.httpMethod = "GET"
request.setValue("application/json", forHTTPHeaderField:
"Content-Type")
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data =
data, error == nil else { return }
let responseString = String(data: data, encoding: .utf8)
print(responseString
?? "")
}
task.resume()
import okhttp3.OkHttpClient
import okhttp3.Request
val client = OkHttpClient()
val request =
Request.Builder()
.url("http://playground-api-xi.vercel.app/session/export")
.get()
.addHeader("Content-Type",
"application/json")
.build()
client.newCall(request).execute().use { response ->
println(response.body?.string())
}
use reqwest::Error;
#[tokio::main]
async fn main() -> Result<(), Error> {
let client =
reqwest::Client::new();
let response = client
.get("http://playground-api-xi.vercel.app/session/export")
.header("Content-Type", "application/json")
.send()
.await?
.text()
.await?;
println!("{}", response);
Ok(())
}
<?php
require 'vendor/autoload.php';
use GuzzleHttp\Client;
$client = new Client();
$response = $client->request('GET', 'http://playground-api-xi.vercel.app/session/export', [
'headers' => [
'Content-Type' => 'application/json'
]
]);
echo $response->getBody();
Response Schema Example
{
"version": "1.0",
"exportedAt": "2026-08-02T23:00:00.000Z",
"identityId": "550e8400-e29b-41d4-a716-446655440000",
"targetResource": "all",
"stats": {
"totalRecords": 2,
"creates": 1,
"updates": 1,
"deletes": 0
},
"records": [
{
"resource": "users",
"op": "create",
"targetId": null,
"data": {
"name": "Custom User"
},
"createdAt": "2026-08-02T22:00:00.000Z"
}
]
}
โก Try it out โ Test endpoint live Test now
| Name | Type | Required | Location | Description |
|---|---|---|---|---|
strategy |
String (Query) |
Optional | ||
resource |
String (Query) |
Optional |
curl -X POST 'http://playground-api-xi.vercel.app/session/import' \
-H 'Content-Type: application/json'
\
-b "pg_identity=your_cookie_uuid" \
-d '{
"version": "1.0",
"records": [
{
"resource": "users",
"op": "create",
"data": {
"name": "Restored User",
"email": "restored@sandbox.dev"
}
}
]
}'
fetch('http://playground-api-xi.vercel.app/session/import', {
method: 'POST',
headers: {
'Content-Type': 'application/json' },
credentials: 'include',
body: JSON.stringify({ "version": "1.0", "records": [ { "resource": "users", "op": "create", "data": { "name": "Restored User", "email": "restored@sandbox.dev" } } ] })
})
.then(res => res.json())
.then(data => console.log(data));
import axios from 'axios';
axios.post('http://playground-api-xi.vercel.app/session/import', { "version": "1.0", "records": [ { "resource": "users", "op": "create", "data": { "name": "Restored User", "email": "restored@sandbox.dev" } } ] }, {
withCredentials: true
}).then(response => console.log(response.data));
import requests
payload = { "version": "1.0", "records": [ { "resource": "users", "op": "create", "data": { "name": "Restored User", "email": "restored@sandbox.dev" } } ] }
response =
requests.post('http://playground-api-xi.vercel.app/session/import', json=payload)
print(response.json())
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
url :=
"http://playground-api-xi.vercel.app/session/import"
payload := []byte(`{ "version": "1.0", "records": [ { "resource": "users", "op": "create", "data": { "name": "Restored User", "email": "restored@sandbox.dev" } } ] }`)
req, err := http.NewRequest("POST",
url, bytes.NewBuffer(payload))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type",
"application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil
{
panic(err)
}
defer resp.Body.Close()
body, _ :=
io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import Foundation
let url = URL(string: "http://playground-api-xi.vercel.app/session/import")!
var request = URLRequest(url:
url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField:
"Content-Type")
let jsonString = """
{ "version": "1.0", "records": [ { "resource": "users", "op": "create", "data": { "name": "Restored User", "email": "restored@sandbox.dev" } } ] }
"""
request.httpBody = jsonString.data(using:
.utf8)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data,
error == nil else { return }
let responseString = String(data: data, encoding: .utf8)
print(responseString ??
"")
}
task.resume()
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.OkHttpClient
import okhttp3.Request
import
okhttp3.RequestBody.Companion.toRequestBody
val client = OkHttpClient()
val mediaType = "application/json;
charset=utf-8".toMediaType()
val body = """{ "version": "1.0", "records": [ { "resource": "users", "op": "create", "data": { "name": "Restored User", "email": "restored@sandbox.dev" } } ] }""".toRequestBody(mediaType)
val request =
Request.Builder()
.url("http://playground-api-xi.vercel.app/session/import")
.post(body)
.addHeader("Content-Type",
"application/json")
.build()
client.newCall(request).execute().use { response ->
println(response.body?.string())
}
use reqwest::Error;
use serde_json::json;
#[tokio::main]
async fn main() -> Result<(), Error> {
let client
= reqwest::Client::new();
let payload = json!({ "version": "1.0", "records": [ { "resource": "users", "op": "create", "data": { "name": "Restored User", "email": "restored@sandbox.dev" } } ] });
let response = client
.post("http://playground-api-xi.vercel.app/session/import")
.header("Content-Type", "application/json")
.json(&payload)
.send()
.await?
.text()
.await?;
println!("{}", response);
Ok(())
}
<?php
require 'vendor/autoload.php';
use GuzzleHttp\Client;
$client = new Client();
$response = $client->request('POST', 'http://playground-api-xi.vercel.app/session/import', [
'headers' => [
'Content-Type' => 'application/json'
],
'json' => json_decode('{ "version": "1.0", "records": [ { "resource": "users", "op": "create", "data": { "name": "Restored User", "email": "restored@sandbox.dev" } } ] }', true)
]);
echo $response->getBody();
Request Payload Example
{
"version": "1.0",
"records": [
{
"resource": "users",
"op": "create",
"data": {
"name": "Restored User",
"email": "restored@sandbox.dev"
}
}
]
}
Response Schema Example
{
"message": "Session sandbox snapshot imported successfully.",
"importedRecords": 1,
"strategy": "replace",
"affectedResources": [
"users"
]
}
โก Try it out โ Test endpoint live Test now
curl -X DELETE 'http://playground-api-xi.vercel.app/session/reset' \
-H 'Content-Type: application/json' \
-b "pg_identity=your_cookie_uuid"
fetch('http://playground-api-xi.vercel.app/session/reset', {
method: 'DELETE' ,
credentials: 'include'
})
.then(res=>
res.json())
.then(data => console.log(data));
import axios from 'axios';
axios.delete('http://playground-api-xi.vercel.app/session/reset', {
withCredentials: true
}).then(response =>
console.log(response.data));
import requests
response = requests.delete('http://playground-api-xi.vercel.app/session/reset')
print(response.status_code)
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "http://playground-api-xi.vercel.app/session/reset"
req,
err := http.NewRequest("DELETE", url, nil)
if err != nil
{
panic(err)
}
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp,
err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ :=
io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import Foundation
let url = URL(string: "http://playground-api-xi.vercel.app/session/reset")!
var request = URLRequest(url:
url)
request.httpMethod = "DELETE"
request.setValue("application/json", forHTTPHeaderField:
"Content-Type")
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data =
data, error == nil else { return }
let responseString = String(data: data, encoding: .utf8)
print(responseString
?? "")
}
task.resume()
import okhttp3.OkHttpClient
import okhttp3.Request
val client = OkHttpClient()
val request =
Request.Builder()
.url("http://playground-api-xi.vercel.app/session/reset")
.delete()
.addHeader("Content-Type",
"application/json")
.build()
client.newCall(request).execute().use { response ->
println(response.body?.string())
}
use reqwest::Error;
#[tokio::main]
async fn main() -> Result<(), Error> {
let client =
reqwest::Client::new();
let response = client
.delete("http://playground-api-xi.vercel.app/session/reset")
.header("Content-Type", "application/json")
.send()
.await?
.text()
.await?;
println!("{}", response);
Ok(())
}
<?php
require 'vendor/autoload.php';
use GuzzleHttp\Client;
$client = new Client();
$response = $client->request('DELETE', 'http://playground-api-xi.vercel.app/session/reset', [
'headers' => [
'Content-Type' => 'application/json'
]
]);
echo $response->getBody();
Response Schema Example
{
"message": "Session sandbox overlay purged successfully.",
"purgedRecords": 3
}