List Projects
curl --request GET \
--url https://api.studio.us.phrase.com/v1/projects \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.studio.us.phrase.com/v1/projects"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.studio.us.phrase.com/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.studio.us.phrase.com/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 => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.studio.us.phrase.com/v1/projects"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
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.studio.us.phrase.com/v1/projects")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.studio.us.phrase.com/v1/projects")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "01jzmvc20cjq5hj5saa96ttp2x",
"name": "Meeting Recording",
"status": "IN_PROGRESS",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"firstRecordingId": "<string>",
"sourceLanguage": "<string>",
"subtitleProfileId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"duration": 123,
"fileCount": 123,
"owner": "<string>",
"accountId": "<string>",
"archived": true,
"recordingTypes": []
}
],
"pagination": {
"page": 123,
"pageSize": 123,
"total": 123,
"totalPages": 123
}
}{
"success": false,
"statusCode": 400,
"message": "Bad Request",
"timestamp": "2025-01-01T00:00:00.000Z"
}{
"success": false,
"statusCode": 401,
"message": "Unauthorized",
"timestamp": "2025-01-01T00:00:00.000Z"
}{
"success": false,
"statusCode": 403,
"message": "Access denied",
"timestamp": "2025-01-01T00:00:00.000Z"
}{
"success": false,
"statusCode": 500,
"message": "Internal server error",
"timestamp": "2025-01-01T00:00:00.000Z"
}Projects
List Projects
Retrieve a list of projects for the authenticated account.
GET
/
v1
/
projects
List Projects
curl --request GET \
--url https://api.studio.us.phrase.com/v1/projects \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.studio.us.phrase.com/v1/projects"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.studio.us.phrase.com/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.studio.us.phrase.com/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 => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.studio.us.phrase.com/v1/projects"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
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.studio.us.phrase.com/v1/projects")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.studio.us.phrase.com/v1/projects")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "01jzmvc20cjq5hj5saa96ttp2x",
"name": "Meeting Recording",
"status": "IN_PROGRESS",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"firstRecordingId": "<string>",
"sourceLanguage": "<string>",
"subtitleProfileId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"duration": 123,
"fileCount": 123,
"owner": "<string>",
"accountId": "<string>",
"archived": true,
"recordingTypes": []
}
],
"pagination": {
"page": 123,
"pageSize": 123,
"total": 123,
"totalPages": 123
}
}{
"success": false,
"statusCode": 400,
"message": "Bad Request",
"timestamp": "2025-01-01T00:00:00.000Z"
}{
"success": false,
"statusCode": 401,
"message": "Unauthorized",
"timestamp": "2025-01-01T00:00:00.000Z"
}{
"success": false,
"statusCode": 403,
"message": "Access denied",
"timestamp": "2025-01-01T00:00:00.000Z"
}{
"success": false,
"statusCode": 500,
"message": "Internal server error",
"timestamp": "2025-01-01T00:00:00.000Z"
}Authorizations
Query Parameters
Filter by project status.
Available options:
ALL, ARCHIVED, PENDING, IN_PROGRESS, COMPLETED, FAILED When true, list team projects — projects shared with you, plus projects made public within your organization (this includes your own public projects). Your own private (unshared) projects are not team projects and are not returned when this flag is set; use the default listing (flag omitted) to retrieve them.
Free-text search in project name.
Page number (min 1).
Required range:
x >= 1Items per page (1-1000).
Required range:
1 <= x <= 1000Was this page helpful?
⌘I