Projects + Default Project

Projects are the namespace boundary for memory. Most issues during setup come down to a mismatched project slug. This guide shows the rules, the API, and the default project mechanism that removes footguns.

Project Slugs (Rules)

Slugs must be lowercase, alphanumeric, and hyphen-separated (no underscores).

examples
valid:  my-app, veriova-local
invalid: my_app, MyApp

List Projects

terminal
curl -H "Authorization: Bearer cv_..." \
  https://api.veriova.com/api/v1/projects

Create a Project (ADMIN)

terminal
curl -X POST \
  -H "Authorization: Bearer cv_..." \
  -H "Content-Type: application/json" \
  -d '{"name":"My App","slug":"my-app","description":"optional"}' \
  https://api.veriova.com/api/v1/projects

Default Project (Eliminates Missing project_slug)

If a default project is set for your API key, you can omit project_slug in request bodies and omit ?project= for list endpoints.

terminal
# Set default project
curl -X POST \
  -H "Authorization: Bearer cv_..." \
  -H "Content-Type: application/json" \
  -d '{"project_slug":"my-app"}' \
  https://api.veriova.com/api/v1/me/default-project
terminal
# Clear default project
curl -X POST \
  -H "Authorization: Bearer cv_..." \
  -H "Content-Type: application/json" \
  -d '{}' \
  https://api.veriova.com/api/v1/me/default-project

Why This Matters For MCP

MCP clients are configured via env vars. If the project slug is mistyped, calls fail with Project not found. The interactive setup prevents that by fetching your actual projects and letting you select one.