List projects
curl --request GET \
--url https://api.tensorpro.ai/api/v1/projects \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.tensorpro.ai/api/v1/projects"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.tensorpro.ai/api/v1/projects', 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.tensorpro.ai/api/v1/projects",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tensorpro.ai/api/v1/projects"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tensorpro.ai/api/v1/projects")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tensorpro.ai/api/v1/projects")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"projects": [
{
"id": "b4c8e2f6-1a3d-4e5f-9b7c-2d6e8f0a1b3c",
"name": "Website relaunch",
"created_at": "2026-11-08T22:15:00+00:00",
"updated_at": "2026-11-10T04:43:25+00:00",
"session_count": 3,
"source_count": 2
}
],
"total": 1
}
Projects
List projects
List your projects, most recently updated first, with how many sessions and documents each has.
GET
/
api
/
v1
/
projects
List projects
curl --request GET \
--url https://api.tensorpro.ai/api/v1/projects \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.tensorpro.ai/api/v1/projects"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.tensorpro.ai/api/v1/projects', 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.tensorpro.ai/api/v1/projects",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tensorpro.ai/api/v1/projects"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tensorpro.ai/api/v1/projects")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tensorpro.ai/api/v1/projects")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"projects": [
{
"id": "b4c8e2f6-1a3d-4e5f-9b7c-2d6e8f0a1b3c",
"name": "Website relaunch",
"created_at": "2026-11-08T22:15:00+00:00",
"updated_at": "2026-11-10T04:43:25+00:00",
"session_count": 3,
"source_count": 2
}
],
"total": 1
}
Use this endpoint to list your projects, for example to let users pick one.
See Error handling.
What EDN does
Returns all your projects, most recently updated first, with how many sessions and documents each has.Required headers
| Header | Value | Description |
|---|---|---|
Authorization | Bearer YOUR_API_KEY | Your EDN API key. Create keys in the Console. See Authentication |
Request
This endpoint takes no parameters.curl "https://api.tensorpro.ai/api/v1/projects" \
-H "Authorization: Bearer $EDN_API_KEY"
import os
import requests
resp = requests.get(
"https://api.tensorpro.ai/api/v1/projects",
headers={"Authorization": f"Bearer {os.environ['EDN_API_KEY']}"},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.tensorpro.ai/api/v1/projects", {
headers: {
Authorization: `Bearer ${process.env.EDN_API_KEY}`,
},
});
console.log(await resp.json());
Response
200 OK
{
"projects": [
{
"id": "b4c8e2f6-1a3d-4e5f-9b7c-2d6e8f0a1b3c",
"name": "Website relaunch",
"created_at": "2026-11-08T22:15:00+00:00",
"updated_at": "2026-11-10T04:43:25+00:00",
"session_count": 3,
"source_count": 2
}
],
"total": 1
}
| Field | Type | Description |
|---|---|---|
projects | array | Your projects, most recently updated first |
projects[].id | string | Identifier for the project. Pass it as project_id to other endpoints |
projects[].name | string | The project’s name |
projects[].created_at | string (date-time) | When the project was created |
projects[].updated_at | string (date-time) | When the project was last changed |
projects[].session_count | integer | How many sessions are in the project |
projects[].source_count | integer | How many documents the project has |
total | integer | How many projects you have |
Errors
| Status | Code | When |
|---|---|---|
401 | UNAUTHORIZED | The API key is missing, invalid or revoked |
429 | RATE_LIMITED | Per-minute limit reached. Retry after Retry-After seconds |
500 | INTERNAL_ERROR | Something failed on EDN’s side. Retry later |
{
"projects": [
{
"id": "b4c8e2f6-1a3d-4e5f-9b7c-2d6e8f0a1b3c",
"name": "Website relaunch",
"created_at": "2026-11-08T22:15:00+00:00",
"updated_at": "2026-11-10T04:43:25+00:00",
"session_count": 3,
"source_count": 2
}
],
"total": 1
}
