Skip to main content
Projects are the top-level containers for pipelines, functions, MCP servers, and browser sessions. Every project is addressable by slug or UUID via the /:project/api/... routes.

List projects

GET /api/projects

QueryTypeDescription
limitnumberOptional pagination limit.
offsetnumberOptional pagination offset.
myflagWhen present, only returns projects owned by the authenticated user (requires auth).
  • Auth – optional. Responses include extra fields (owner, timestamps) when authenticated.
  • Response
[
  {
    "id": "proj_123",
    "name": "Marketing Research",
    "description": "Agents that summarise competitor landing pages",
    "visibility": "private",
    "slug": "marketing-research",
    "owner": "usr_123",
    "created": "2024-05-01T12:00:00.000Z",
    "updated": "2024-05-01T12:00:00.000Z"
  }
]

Create a project

PUT /api/projects

  • Auth – signed-in user with a verified email.
  • Body
{
  "name": "Marketing Research",
  "description": "Agents that summarise competitor landing pages",
  "public": false,
  "slug": "marketing-research"
}
Slugs must contain only alphanumeric characters, dashes, or underscores. If creation succeeds, Browsary attempts to provision a default browser session ("Default session") for the project. The response body is the new project ID.

Update or delete a project

All project-scoped operations use the slug in the URL: /marketing-research/api.
EndpointAuthBodyDescription
PATCH /:project/apiRequires projects.write on the slug.Optional fields name, description, public, slug.Changing public or slug is restricted to the owner. Setting public toggles between "public" and "private" visibility.
DELETE /:project/apiOnly the project owner can call this endpoint.Permanently removes the project and cascades to its child resources.
Any other /:project/api/... endpoint documented in the Project Resources section inherits the same slug semantics.