Write SOQL Query
curl --request POST \
--url 'https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_WRITE_SOQL_QUERY' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tool": "SALESFORCE_WRITE_SOQL_QUERY",
"parameters": {
"query": "<string>",
"paginationParameters": {
"pageCursor": "<string>"
}
}
}
'import requests
url = "https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_WRITE_SOQL_QUERY"
payload = {
"tool": "SALESFORCE_WRITE_SOQL_QUERY",
"parameters": {
"query": "<string>",
"paginationParameters": { "pageCursor": "<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({
tool: 'SALESFORCE_WRITE_SOQL_QUERY',
parameters: {query: '<string>', paginationParameters: {pageCursor: '<string>'}}
})
};
fetch('https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_WRITE_SOQL_QUERY', 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://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_WRITE_SOQL_QUERY",
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([
'tool' => 'SALESFORCE_WRITE_SOQL_QUERY',
'parameters' => [
'query' => '<string>',
'paginationParameters' => [
'pageCursor' => '<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://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_WRITE_SOQL_QUERY"
payload := strings.NewReader("{\n \"tool\": \"SALESFORCE_WRITE_SOQL_QUERY\",\n \"parameters\": {\n \"query\": \"<string>\",\n \"paginationParameters\": {\n \"pageCursor\": \"<string>\"\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(string(body))
}HttpResponse<String> response = Unirest.post("https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_WRITE_SOQL_QUERY")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"tool\": \"SALESFORCE_WRITE_SOQL_QUERY\",\n \"parameters\": {\n \"query\": \"<string>\",\n \"paginationParameters\": {\n \"pageCursor\": \"<string>\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_WRITE_SOQL_QUERY")
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 \"tool\": \"SALESFORCE_WRITE_SOQL_QUERY\",\n \"parameters\": {\n \"query\": \"<string>\",\n \"paginationParameters\": {\n \"pageCursor\": \"<string>\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"records": {
"totalSize": 1,
"done": true,
"records": [
{
"attributes": {
"type": "Account",
"url": "/services/data/v68.0/sobjects/Account/0015e008qZqg47LAAA"
},
"Id": "0015e008qZqg47LAAA",
"Name": "Docs Example Account",
"CreatedDate": "2026-10-16T06:15:14.000+0000"
}
]
}
}Tools
Write SOQL Query
POST
/
projects
/
{project_id}
/
tools
/
#SALESFORCE_WRITE_SOQL_QUERY
Write SOQL Query
curl --request POST \
--url 'https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_WRITE_SOQL_QUERY' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tool": "SALESFORCE_WRITE_SOQL_QUERY",
"parameters": {
"query": "<string>",
"paginationParameters": {
"pageCursor": "<string>"
}
}
}
'import requests
url = "https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_WRITE_SOQL_QUERY"
payload = {
"tool": "SALESFORCE_WRITE_SOQL_QUERY",
"parameters": {
"query": "<string>",
"paginationParameters": { "pageCursor": "<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({
tool: 'SALESFORCE_WRITE_SOQL_QUERY',
parameters: {query: '<string>', paginationParameters: {pageCursor: '<string>'}}
})
};
fetch('https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_WRITE_SOQL_QUERY', 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://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_WRITE_SOQL_QUERY",
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([
'tool' => 'SALESFORCE_WRITE_SOQL_QUERY',
'parameters' => [
'query' => '<string>',
'paginationParameters' => [
'pageCursor' => '<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://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_WRITE_SOQL_QUERY"
payload := strings.NewReader("{\n \"tool\": \"SALESFORCE_WRITE_SOQL_QUERY\",\n \"parameters\": {\n \"query\": \"<string>\",\n \"paginationParameters\": {\n \"pageCursor\": \"<string>\"\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(string(body))
}HttpResponse<String> response = Unirest.post("https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_WRITE_SOQL_QUERY")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"tool\": \"SALESFORCE_WRITE_SOQL_QUERY\",\n \"parameters\": {\n \"query\": \"<string>\",\n \"paginationParameters\": {\n \"pageCursor\": \"<string>\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_WRITE_SOQL_QUERY")
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 \"tool\": \"SALESFORCE_WRITE_SOQL_QUERY\",\n \"parameters\": {\n \"query\": \"<string>\",\n \"paginationParameters\": {\n \"pageCursor\": \"<string>\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"records": {
"totalSize": 1,
"done": true,
"records": [
{
"attributes": {
"type": "Account",
"url": "/services/data/v68.0/sobjects/Account/0015e008qZqg47LAAA"
},
"Id": "0015e008qZqg47LAAA",
"Name": "Docs Example Account",
"CreatedDate": "2026-10-16T06:15:14.000+0000"
}
]
}
}Provider API: Salesforce REST API (Latest version available to the connected org).
Authorizations
Your Paragon User Token (JWT), which you can generate using your project's signing keys.
Path Parameters
Your Paragon Project ID. You can copy your Project ID from your dashboard URL or by clicking Copy Project ID under the Environment switcher.
Body
application/json
Response
200 - application/json
A page of SOQL query results. records is the Salesforce query response, with the matching records in records.records. When more results are available, nextPageCursor is the nextRecordsUrl from Salesforce; pass it as paginationParameters.pageCursor to load the next page. On the last page, nextPageCursor is omitted.