cURL
curl --request POST \
--url https://app.teable.ai/api/share/%7BshareId%7D/base/copy \
--header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
--header 'content-type: application/json' \
--data '{"spaceId":"string","name":"string","withRecords":true,"baseId":"string"}'const url = 'https://app.teable.ai/api/share/%7BshareId%7D/base/copy';
const options = {
method: 'POST',
headers: {
Authorization: 'Bearer REPLACE_BEARER_TOKEN',
'content-type': 'application/json'
},
body: '{"spaceId":"string","name":"string","withRecords":true,"baseId":"string"}'
};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}const http = require('https');
const options = {
method: 'POST',
hostname: 'app.teable.ai',
port: null,
path: '/api/share/%7BshareId%7D/base/copy',
headers: {
Authorization: 'Bearer REPLACE_BEARER_TOKEN',
'content-type': 'application/json'
}
};
const req = http.request(options, function (res) {
const chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
const body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.write(JSON.stringify({spaceId: 'string', name: 'string', withRecords: true, baseId: 'string'}));
req.end();import http.client
conn = http.client.HTTPSConnection("app.teable.ai")
payload = "{\"spaceId\":\"string\",\"name\":\"string\",\"withRecords\":true,\"baseId\":\"string\"}"
headers = {
'Authorization': "Bearer REPLACE_BEARER_TOKEN",
'content-type': "application/json"
}
conn.request("POST", "/api/share/%7BshareId%7D/base/copy", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.teable.ai/api/share/{shareId}/base/copy",
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([
'spaceId' => '<string>',
'name' => '<string>',
'withRecords' => true,
'baseId' => '<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://app.teable.ai/api/share/{shareId}/base/copy"
payload := strings.NewReader("{\n \"spaceId\": \"<string>\",\n \"name\": \"<string>\",\n \"withRecords\": true,\n \"baseId\": \"<string>\"\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://app.teable.ai/api/share/{shareId}/base/copy")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"spaceId\": \"<string>\",\n \"name\": \"<string>\",\n \"withRecords\": true,\n \"baseId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.teable.ai/api/share/{shareId}/base/copy")
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 \"spaceId\": \"<string>\",\n \"name\": \"<string>\",\n \"withRecords\": true,\n \"baseId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"spaceId": "<string>"
}project-share
Copy shared project
Copy a shared project to the target space.
POST
/
share
/
{shareId}
/
base
/
copy
cURL
curl --request POST \
--url https://app.teable.ai/api/share/%7BshareId%7D/base/copy \
--header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
--header 'content-type: application/json' \
--data '{"spaceId":"string","name":"string","withRecords":true,"baseId":"string"}'const url = 'https://app.teable.ai/api/share/%7BshareId%7D/base/copy';
const options = {
method: 'POST',
headers: {
Authorization: 'Bearer REPLACE_BEARER_TOKEN',
'content-type': 'application/json'
},
body: '{"spaceId":"string","name":"string","withRecords":true,"baseId":"string"}'
};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}const http = require('https');
const options = {
method: 'POST',
hostname: 'app.teable.ai',
port: null,
path: '/api/share/%7BshareId%7D/base/copy',
headers: {
Authorization: 'Bearer REPLACE_BEARER_TOKEN',
'content-type': 'application/json'
}
};
const req = http.request(options, function (res) {
const chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
const body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.write(JSON.stringify({spaceId: 'string', name: 'string', withRecords: true, baseId: 'string'}));
req.end();import http.client
conn = http.client.HTTPSConnection("app.teable.ai")
payload = "{\"spaceId\":\"string\",\"name\":\"string\",\"withRecords\":true,\"baseId\":\"string\"}"
headers = {
'Authorization': "Bearer REPLACE_BEARER_TOKEN",
'content-type': "application/json"
}
conn.request("POST", "/api/share/%7BshareId%7D/base/copy", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.teable.ai/api/share/{shareId}/base/copy",
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([
'spaceId' => '<string>',
'name' => '<string>',
'withRecords' => true,
'baseId' => '<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://app.teable.ai/api/share/{shareId}/base/copy"
payload := strings.NewReader("{\n \"spaceId\": \"<string>\",\n \"name\": \"<string>\",\n \"withRecords\": true,\n \"baseId\": \"<string>\"\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://app.teable.ai/api/share/{shareId}/base/copy")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"spaceId\": \"<string>\",\n \"name\": \"<string>\",\n \"withRecords\": true,\n \"baseId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.teable.ai/api/share/{shareId}/base/copy")
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 \"spaceId\": \"<string>\",\n \"name\": \"<string>\",\n \"withRecords\": true,\n \"baseId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"spaceId": "<string>"
}Autorizaciones
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Parámetros de ruta
Cuerpo
application/json
The target space ID to copy the project to
The name of the copied project
Whether to copy records
The target project ID to copy into. If provided, tables will be added to the existing project instead of creating a new one.
Última modificación el 15 de septiembre de 2026
¿Esta página le ayudó?

