Skip to content

Projects

Niccanor Dhas edited this page Feb 22, 2026 · 1 revision

Projects

Projects are the observability namespace within an organization. API keys, traces, prompts, guardrails, vault secrets, and evaluations are all scoped to a specific project.


Why Projects?

Projects let you separate different applications, environments, or teams within the same organization:

Organization: "Acme AI"
├── Project: "Customer Support Bot"    ← production chatbot traces
├── Project: "Internal Research Tool"  ← research experiments
└── Project: "Data Pipeline"           ← batch processing traces

Each project has its own API keys, prompts, guardrails, and vault secrets — completely isolated from other projects.


Creating a Project

  1. Sign in and go to Settings → Organizations
  2. Select your organization
  3. Click New Project
  4. Enter a name and optional description
  5. Click Create

Only organization admins can create new projects. Members can view and use existing projects they have access to.


Scoping SDK Data to a Project

When you create an API key, you select which organization and project it belongs to. All data sent via that key is automatically attributed to that project:

from tmam import init

This key was generated for "Customer Support Bot" project

init( url="http://localhost:5050/api/sdk", public_key="pk-tmam-xxxxxxxx", secrect_key="sk-tmam-xxxxxxxx", application_name="support-bot", environment="production", )

All traces go to "Customer Support Bot" project


Project Transfer

Projects can be transferred between users within the same organization. This is useful when ownership changes or teams reorganize.

From the API, the ProjectTransferBody accepts a target user ID. Contact your org admin to initiate a project transfer.


Project Permissions

Action Required Access
Create project Org admin
Delete project Org admin or project owner
View project data Any org member
Create API keys for project Org admin
Create prompts/guardrails Org admin
Run evaluations Any org member

Separating Environments

A common pattern is to use separate API keys (and optionally separate projects) per environment:

Option A: Same project, different environment tag

# Production
init(..., environment="production")

Staging

init(..., environment="staging")

Filter by environment in the dashboard analytics and traces views.

Option B: Separate projects per environment

Project: "Support Bot - Production"
Project: "Support Bot - Staging"

Use separate API keys. Gives complete data isolation between environments.

Clone this wiki locally