Organizational units for grouping related resources
Projects are organizational units that allow you to group related agents, users, files, and other resources together. They provide a way to manage resources at a higher level and maintain clean separation between different use cases or applications.
Projects provide several benefits:
Each developer automatically gets a “default” project that contains all existing resources. This ensures backward compatibility with existing applications while providing the benefits of project organization.
A project includes:
id
: Unique identifiercanonical_name
: Machine-readable name (unique per developer)name
: Human-readable display namemetadata
: Custom attributes for the projectProjects have a one-to-many relationship with resources:
When creating resources, you can specify which project they belong to using the project
field. If not specified, resources are automatically assigned to the “default” project.
Every developer automatically receives a “default” project when they first interact with the API. This project:
Projects support standard CRUD operations:
GET /projects
: List all projects for a developerPOST /projects
: Create a new projectGET /projects/{id}
: Retrieve a specific projectPUT /projects/{id}
: Update a projectPATCH /projects/{id}
: Partially update a projectDELETE /projects/{id}
: Delete a project (except the default project)When creating a resource such as an agent, specify the project canonical name:
Projects are designed with future extensibility in mind. Planned enhancements include: