Getting Started
DANGER
This API is currently in beta. Endpoints, parameters, and response formats may change at any time without prior notice.
The YouViCo API lets you build integrations that read and interact with your team's projects, folders, files, and comments — directly from your own tools or workflows.
You can use the API to:
- Search projects and retrieve their folders and files
- Create, update, and delete folders and files
- Read and post comments on files
- Add or remove emoji reactions
- Update file review tags
All API access is authenticated with an API key scoped to a specific workspace.
Base URL
All requests go to:
https://api.youvico.com/apiFor example, to search projects:
GET https://api.youvico.com/api/projects/searchGet your API key
Go to Settings → API Keys in the YouViCo app and create a new key. Give it a descriptive name and choose the workspace it should have access to.
WARNING
Your API key is only shown once at the time of creation. Once you leave the page, it cannot be retrieved again. Copy it immediately and store it somewhere safe.
Keep it secret — never expose it in client-side code or public repositories. If a key is compromised, delete it and issue a new one.
Authentication
Include your API key in every request as a Bearer token in the Authorization header:
Authorization: Bearer YOUR_API_KEYUse the CLI for local workflows
For terminal workflows and quick checks, install the YouViCo CLI and save your API key locally:
npm install -g @youvico/cli
youvico auth apiAfter authentication, API reference examples can be run from the CLI tab:
youvico project search --query "launch"See the CLI guide for configuration, command groups, file uploads, and scripting tips.
Use the SDK for the easiest start
If you are building with server-side JavaScript or TypeScript, start with the JavaScript SDK. It handles authentication headers, typed request parameters, response types, error handling, and multipart upload flow for you.
pnpm add @youvico/apiimport { Client } from "@youvico/api";
const client = new Client({
apiKey: process.env.YOUVICO_API_KEY!,
});
const projects = await client.projects.search({
query: "launch",
});See the SDK guide for installation, client options, upload helpers, and error handling.
Request format
The API follows REST conventions. Endpoints accept and return JSON.
For requests with a body (POST, PATCH, DELETE), set the Content-Type header:
Content-Type: application/jsonA typical request looks like this:
curl -X POST 'https://api.youvico.com/api/files/:id/comments' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{ "content": "Looks great, approved." }'Response format
Successful responses with a body wrap the result in a data field:
{
"data": {
"id": "bdbff5de-96d7-468f-9db0-85fe28bd6b62",
"name": "Launch Campaign"
}
}List endpoints return data as an array. Paginated list endpoints also include a page object:
{
"data": [ ... ],
"page": {
"current": 1,
"hasNext": true
}
}Some write endpoints, such as updates, deletes, upload completion, tag updates, and reactions, return 204 No Content with no body on success.
Error responses
When something goes wrong, the API returns an appropriate HTTP status code and a JSON error body:
{
"statusCode": 404,
"message": "Not found"
}See Errors & Rate Limits for the full list of error codes.
Type notation
API reference tables use the following type notation:
| Notation | Meaning |
|---|---|
string | A required, non-null value of that type |
string? | Nullable — the value may be null |
| Required: No | Omittable — the field or parameter can be omitted from the request |
Next steps
- SDK — JavaScript client setup and endpoint examples
- CLI — command-line setup and local workflows
- Authentication — workspace access and key permissions
- Errors & Rate Limits — error codes and throttling
- Pagination — offset and cursor pagination
- API Reference — full endpoint documentation