Skip to content

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/api

For example, to search projects:

GET https://api.youvico.com/api/projects/search

Get 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_KEY

Use the CLI for local workflows

For terminal workflows and quick checks, install the YouViCo CLI and save your API key locally:

bash
npm install -g @youvico/cli
youvico auth api

After authentication, API reference examples can be run from the CLI tab:

bash
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.

bash
pnpm add @youvico/api
ts
import { 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/json

A typical request looks like this:

bash
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:

json
{
  "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:

json
{
  "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:

json
{
  "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:

NotationMeaning
stringA required, non-null value of that type
string?Nullable — the value may be null
Required: NoOmittable — the field or parameter can be omitted from the request

Next steps