Query SQL
curl --request POST \
--url https://api.attio.com/v2/sql \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"sql": "SELECT * FROM companies WHERE companies.name = 'Fundstack'"
}
EOFimport requests
url = "https://api.attio.com/v2/sql"
payload = { "sql": "SELECT * FROM companies WHERE companies.name = 'Fundstack'" }
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({sql: 'SELECT * FROM companies WHERE companies.name = \'Fundstack\''})
};
fetch('https://api.attio.com/v2/sql', 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.attio.com/v2/sql",
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([
'sql' => 'SELECT * FROM companies WHERE companies.name = \'Fundstack\''
]),
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://api.attio.com/v2/sql"
payload := strings.NewReader("{\n \"sql\": \"SELECT * FROM companies WHERE companies.name = 'Fundstack'\"\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://api.attio.com/v2/sql")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"sql\": \"SELECT * FROM companies WHERE companies.name = 'Fundstack'\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.attio.com/v2/sql")
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 \"sql\": \"SELECT * FROM companies WHERE companies.name = 'Fundstack'\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"rows": [
{
"record_id": "bf071e1f-6035-429d-b874-d83ea64ea13b",
"created_at": "2023-01-01T15:00:00.000000000Z",
"name": "Fundstack",
"created_by": {
"type": "workspace-member",
"id": "50cf242c-7fa3-4cad-87d0-75b1af71c57b"
},
"domains": [
"fundstack.com"
]
}
]
}
}{
"status_code": 400,
"type": "invalid_request_error",
"code": "filter_error",
"message": "SQL syntax error."
}SQL
Query SQL
Query records and lists with SQL.
This endpoint is in beta. We will aim to avoid breaking changes, but small updates may be made as we roll out to more users.
Required scopes: record_permission:read, object_configuration:read.
POST
/
v2
/
sql
Query SQL
curl --request POST \
--url https://api.attio.com/v2/sql \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"sql": "SELECT * FROM companies WHERE companies.name = 'Fundstack'"
}
EOFimport requests
url = "https://api.attio.com/v2/sql"
payload = { "sql": "SELECT * FROM companies WHERE companies.name = 'Fundstack'" }
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({sql: 'SELECT * FROM companies WHERE companies.name = \'Fundstack\''})
};
fetch('https://api.attio.com/v2/sql', 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.attio.com/v2/sql",
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([
'sql' => 'SELECT * FROM companies WHERE companies.name = \'Fundstack\''
]),
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://api.attio.com/v2/sql"
payload := strings.NewReader("{\n \"sql\": \"SELECT * FROM companies WHERE companies.name = 'Fundstack'\"\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://api.attio.com/v2/sql")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"sql\": \"SELECT * FROM companies WHERE companies.name = 'Fundstack'\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.attio.com/v2/sql")
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 \"sql\": \"SELECT * FROM companies WHERE companies.name = 'Fundstack'\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"rows": [
{
"record_id": "bf071e1f-6035-429d-b874-d83ea64ea13b",
"created_at": "2023-01-01T15:00:00.000000000Z",
"name": "Fundstack",
"created_by": {
"type": "workspace-member",
"id": "50cf242c-7fa3-4cad-87d0-75b1af71c57b"
},
"domains": [
"fundstack.com"
]
}
]
}
}{
"status_code": 400,
"type": "invalid_request_error",
"code": "filter_error",
"message": "SQL syntax error."
}Authorizations
This API uses OAuth 2.0 with the authorization code grant flow.
Body
application/json
The SQL query to be executed.
Example:
"SELECT * FROM companies WHERE companies.name = 'Fundstack'"
Response
Success
Success
Show child attributes
Show child attributes
Example:
{
"rows": [
{
"record_id": "bf071e1f-6035-429d-b874-d83ea64ea13b",
"created_at": "2023-01-01T15:00:00.000000000Z",
"name": "Fundstack",
"created_by": {
"type": "workspace-member",
"id": "50cf242c-7fa3-4cad-87d0-75b1af71c57b"
},
"domains": ["fundstack.com"]
}
]
}
Was this page helpful?
⌘I