curl --request POST \
--url https://api.getoneprofile.ai/table-sources/preview/ \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"integration_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"record_type": "<string>"
}
'import requests
url = "https://api.getoneprofile.ai/table-sources/preview/"
payload = {
"integration_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"record_type": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
integration_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
record_type: '<string>'
})
};
fetch('https://api.getoneprofile.ai/table-sources/preview/', 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.getoneprofile.ai/table-sources/preview/",
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([
'integration_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'record_type' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.getoneprofile.ai/table-sources/preview/"
payload := strings.NewReader("{\n \"integration_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"record_type\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.getoneprofile.ai/table-sources/preview/")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"integration_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"record_type\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/table-sources/preview/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"integration_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"record_type\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"fields": [
{
"declared": true,
"label": "<string>",
"path": "<string>",
"property_type": "string",
"sample_value": "<string>"
}
],
"identity_field": "<string>",
"identity_field_choices": [
"<string>"
],
"identity_field_options": [
{
"editable": true,
"field": "<string>",
"filled": 123,
"label": "<string>",
"problem": "missing",
"sampled": 123,
"unique": true
}
],
"integration_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"integration_type": "<string>",
"record_type": "<string>",
"sample_records": [
{}
],
"suggested_display_paths": [
"<string>"
],
"supports_incremental": true
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>",
"issues": [
{
"input": "<string>",
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Sample records before importing them
Fetch a page of records and report what is in them: the fields they carry, example values, and which identifier rows would be matched on across refreshes.
NOTHING is created here. Review it, then POST to the create endpoint.
fields merges what the sampled records actually contained with what the provider says a record of this type can carry, so a field every sampled record happens to leave empty is still offered.
curl --request POST \
--url https://api.getoneprofile.ai/table-sources/preview/ \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"integration_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"record_type": "<string>"
}
'import requests
url = "https://api.getoneprofile.ai/table-sources/preview/"
payload = {
"integration_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"record_type": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
integration_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
record_type: '<string>'
})
};
fetch('https://api.getoneprofile.ai/table-sources/preview/', 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.getoneprofile.ai/table-sources/preview/",
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([
'integration_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'record_type' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.getoneprofile.ai/table-sources/preview/"
payload := strings.NewReader("{\n \"integration_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"record_type\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.getoneprofile.ai/table-sources/preview/")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"integration_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"record_type\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/table-sources/preview/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"integration_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"record_type\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"fields": [
{
"declared": true,
"label": "<string>",
"path": "<string>",
"property_type": "string",
"sample_value": "<string>"
}
],
"identity_field": "<string>",
"identity_field_choices": [
"<string>"
],
"identity_field_options": [
{
"editable": true,
"field": "<string>",
"filled": 123,
"label": "<string>",
"problem": "missing",
"sampled": 123,
"unique": true
}
],
"integration_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"integration_type": "<string>",
"record_type": "<string>",
"sample_records": [
{}
],
"suggested_display_paths": [
"<string>"
],
"supports_incremental": true
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>",
"issues": [
{
"input": "<string>",
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Authorizations
Body
Response
Successful Response
A sample of the records an import would bring in, and the fields inside them.
Nothing is created here: no table, no column, no row. Review it, then POST to the create endpoint to build the table.
Sampled and declared fields.
Show child attributes
Show child attributes
The recommended key of the record's ids to match rows on across refreshes: one the tool sets itself where it says which those are. Null means the provider returned nothing usable, and the import cannot proceed.
Every id key rows could be matched on: present on all sampled records, and no two records share a value.
Every id key the sample carries, usable or not, with how many records have it, whether values repeat, and whether people can edit it.
Show child attributes
Show child attributes
The sampled records themselves.
Fields the create step would give their own column.
Whether the provider can return only records changed since a given time. When false every refresh re-lists everything.
Was this page helpful?