Clipboard Write
curl --request POST \
--url https://api.example.com/browser/sessions/{id}/clipboard/write \
--header 'Content-Type: application/json' \
--data '
{
"text": "<string>"
}
'import requests
url = "https://api.example.com/browser/sessions/{id}/clipboard/write"
payload = { "text": "<string>" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({text: '<string>'})
};
fetch('https://api.example.com/browser/sessions/{id}/clipboard/write', 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.example.com/browser/sessions/{id}/clipboard/write",
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([
'text' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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.example.com/browser/sessions/{id}/clipboard/write"
payload := strings.NewReader("{\n \"text\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.example.com/browser/sessions/{id}/clipboard/write")
.header("Content-Type", "application/json")
.body("{\n \"text\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/browser/sessions/{id}/clipboard/write")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"text\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"bytes": 123
}Clipboard
Clipboard Write
Write UTF-8 text to the session’s sandbox OS clipboard. Survives navigation and works before any page is loaded.
POST
/
browser
/
sessions
/
{id}
/
clipboard
/
write
Clipboard Write
curl --request POST \
--url https://api.example.com/browser/sessions/{id}/clipboard/write \
--header 'Content-Type: application/json' \
--data '
{
"text": "<string>"
}
'import requests
url = "https://api.example.com/browser/sessions/{id}/clipboard/write"
payload = { "text": "<string>" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({text: '<string>'})
};
fetch('https://api.example.com/browser/sessions/{id}/clipboard/write', 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.example.com/browser/sessions/{id}/clipboard/write",
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([
'text' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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.example.com/browser/sessions/{id}/clipboard/write"
payload := strings.NewReader("{\n \"text\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.example.com/browser/sessions/{id}/clipboard/write")
.header("Content-Type", "application/json")
.body("{\n \"text\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/browser/sessions/{id}/clipboard/write")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"text\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"bytes": 123
}Overview
Places UTF-8 text on the operating system clipboard inside the session’s sandbox. The value survives navigation, tab switches, and page reloads, and can be written before any page has loaded. Maximum payload is 1 MiB, measured as UTF-8 byte length.Path Parameters
string
required
Browser session ID (UUID). Create via
POST /browser/sessions.Body
string
required
UTF-8 text to place on the session clipboard. Maximum 1 MiB (1,048,576 bytes).
Example Request
curl -X POST "https://api.scrapengine.io/api/v1/browser/sessions/baa3f390-fa6e-4a24-b84a-a575a5f3a9c7/clipboard/write" \
-H "Authorization: Bearer $SCRAPENGINE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "hello world"
}'
const response = await fetch(
"https://api.scrapengine.io/api/v1/browser/sessions/baa3f390-fa6e-4a24-b84a-a575a5f3a9c7/clipboard/write",
{
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.SCRAPENGINE_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ text: "hello world" }),
},
);
const data = await response.json();
Response
Success Response (200)
boolean
True when the clipboard contents were replaced successfully.
integer
Number of bytes written (UTF-8 encoded length of
text).{
"success": true,
"bytes": 11
}
Error Responses
| Status | Description |
|---|---|
400 | Invalid body — text missing, not a string, or exceeds 1 MiB. |
401 | Unauthorized — invalid or missing API key. |
404 | Session not found or not owned by the caller. |
Was this page helpful?
⌘I