LangWatch Projects API

The Projects API from LangWatch — 2 operation(s) for projects.

Operations 7

GET /api/v1/projects List projects #
POST /api/v1/projects Create a project #
GET /api/v1/projects/{id} Get a project #
PATCH /api/v1/projects/{id} Update a project #
DELETE /api/v1/projects/{id} Archive a project #
GET /api/v1/projects/{id}/api-key Get the project API key #
POST /api/v1/projects/{id}/regenerate-api-key Regenerate the project API key #

Documentation

Specifications

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/langwatch:langwatch-projects-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

langwatch-projects-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: LangWatch Projects API
  description: LangWatch openapi spec
  version: 1.0.0
servers:
- url: https://app.langwatch.ai
security:
- project_api_key: []
tags:
- name: Projects
paths:
  /api/v1/projects:
    get:
      operationId: listProjects
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Project'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
                required:
                - data
                - pagination
                additionalProperties: false
        '401':
          description: Invalid or missing API key token
          content: {}
        '403':
          description: Insufficient permissions for this operation
          content: {}
      description: List all non-archived projects for the organization (paginated). Requires an admin API key with project:view permission.
      summary: List projects
      security:
      - admin_api_key: []
      x-access-policy:
        kind: handlerManaged
        credential:
        - organization_api_key
        permissions: []
      parameters:
      - in: query
        name: page
        schema:
          default: 1
          type: integer
          exclusiveMinimum: 0
          maximum: 9007199254740991
      - in: query
        name: limit
        schema:
          default: 50
          type: integer
          exclusiveMinimum: 0
          maximum: 1000
      tags:
      - Projects
    post:
      operationId: createProject
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    minLength: 1
                  name:
                    type: string
                  slug:
                    type: string
                  language:
                    type: string
                  framework:
                    type: string
                  teamId:
                    type: string
                    minLength: 1
                  createdAt:
                    type: string
                    format: date-time
                  updatedAt:
                    type: string
                    format: date-time
                  serviceApiKey:
                    type: string
                    minLength: 1
                  serviceApiKeyId:
                    type: string
                    minLength: 1
                required:
                - id
                - name
                - slug
                - language
                - framework
                - teamId
                - createdAt
                - updatedAt
                - serviceApiKey
                - serviceApiKeyId
                additionalProperties: false
        '400':
          description: Team does not belong to this organization
          content: {}
        '401':
          description: Invalid or missing API key token
          content: {}
        '403':
          description: Insufficient permissions (requires project:create)
          content: {}
        '409':
          description: A project with this name already exists in the team
          content: {}
        '422':
          description: Validation error (missing required fields)
          content: {}
      description: Create a new project in the organization. Returns the project with a newly minted service API key (serviceApiKey) for sending traces. Provide either teamId (existing team) or newTeamName (creates a new team). Requires project:create permission.
      summary: Create a project
      security:
      - admin_api_key: []
      x-access-policy:
        kind: handlerManaged
        credential:
        - organization_api_key
        permissions:
        - project:create
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 255
                  description: Project name
                teamId:
                  description: Id of an existing team to put the project in
                  type: string
                  minLength: 1
                newTeamName:
                  description: Create a team with this name and put the project in it
                  type: string
                  minLength: 1
                  maxLength: 255
                language:
                  type: string
                  minLength: 1
                  description: Programming language, such as python or typescript
                framework:
                  type: string
                  minLength: 1
                  description: Framework in use, such as langchain or openai
              required:
              - name
              - language
              - framework
      tags:
      - Projects
  /api/v1/projects/{id}:
    get:
      operationId: getProject
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    minLength: 1
                  name:
                    type: string
                  slug:
                    type: string
                  language:
                    type: string
                  framework:
                    type: string
                  teamId:
                    type: string
                    minLength: 1
                  createdAt:
                    type: string
                    format: date-time
                  updatedAt:
                    type: string
                    format: date-time
                  piiRedactionLevel:
                    type: string
                    enum:
                    - STRICT
                    - ESSENTIAL
                    - DISABLED
                required:
                - id
                - name
                - slug
                - language
                - framework
                - teamId
                - createdAt
                - updatedAt
                - piiRedactionLevel
                additionalProperties: false
        '401':
          description: Invalid or missing API key token
          content: {}
        '403':
          description: Insufficient permissions for this operation
          content: {}
        '404':
          description: Project not found
          content: {}
      description: Get a project by ID. Requires project:view permission.
      summary: Get a project
      security:
      - admin_api_key: []
      x-access-policy:
        kind: handlerManaged
        credential:
        - organization_api_key
        permissions:
        - project:view
      parameters:
      - in: path
        name: id
        schema:
          type: string
          minLength: 1
        required: true
      tags:
      - Projects
    patch:
      operationId: updateProject
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    minLength: 1
                  name:
                    type: string
                  slug:
                    type: string
                  language:
                    type: string
                  framework:
                    type: string
                  teamId:
                    type: string
                    minLength: 1
                  createdAt:
                    type: string
                    format: date-time
                  updatedAt:
                    type: string
                    format: date-time
                  piiRedactionLevel:
                    type: string
                    enum:
                    - STRICT
                    - ESSENTIAL
                    - DISABLED
                required:
                - id
                - name
                - slug
                - language
                - framework
                - teamId
                - createdAt
                - updatedAt
                - piiRedactionLevel
                additionalProperties: false
        '401':
          description: Invalid or missing API key token
          content: {}
        '403':
          description: Insufficient permissions (requires project:update)
          content: {}
        '404':
          description: Project not found
          content: {}
      description: Update project fields. Only provided fields are changed. Requires project:update permission.
      summary: Update a project
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 255
                language:
                  type: string
                framework:
                  type: string
                teamId:
                  description: Moves the project to this team
                  type: string
                  minLength: 1
                piiRedactionLevel:
                  description: The PII level the project's traces are redacted at
                  type: string
                  enum:
                  - STRICT
                  - ESSENTIAL
                  - DISABLED
      security:
      - admin_api_key: []
      x-access-policy:
        kind: handlerManaged
        credential:
        - organization_api_key
        permissions:
        - project:update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          minLength: 1
        required: true
      tags:
      - Projects
    delete:
      operationId: archiveProject
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    minLength: 1
                  name:
                    type: string
                  archivedAt:
                    type: string
                    format: date-time
                required:
                - id
                - name
                - archivedAt
                additionalProperties: false
        '401':
          description: Invalid or missing API key token
          content: {}
        '403':
          description: Insufficient permissions (requires project:delete)
          content: {}
        '404':
          description: Project not found
          content: {}
      description: Soft-delete (archive) a project. Archived projects are excluded from list responses. Requires project:delete permission.
      summary: Archive a project
      security:
      - admin_api_key: []
      x-access-policy:
        kind: handlerManaged
        credential:
        - organization_api_key
        permissions:
        - project:delete
      parameters:
      - in: path
        name: id
        schema:
          type: string
          minLength: 1
        required: true
      tags:
      - Projects
  /api/v1/projects/{id}/api-key:
    get:
      operationId: getProjectApiKey
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiKey:
                    type: string
                    minLength: 1
                required:
                - apiKey
                additionalProperties: false
        '401':
          description: Invalid or missing API key token
          content: {}
        '403':
          description: A signed-in project administrator is required; API-key principals cannot reveal base keys
          content: {}
      description: Deprecated. Project base keys can be revealed only by a signed-in project administrator in the browser or an approved device flow. Organization API keys are always refused with 403.
      summary: Get the project API key
      security:
      - admin_api_key: []
      x-access-policy:
        kind: handlerManaged
        credential:
        - organization_api_key
        permissions: []
      parameters:
      - in: path
        name: id
        schema:
          type: string
          minLength: 1
        required: true
      tags:
      - Projects
  /api/v1/projects/{id}/regenerate-api-key:
    post:
      operationId: regenerateProjectApiKey
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiKey:
                    type: string
                    minLength: 1
                required:
                - apiKey
                additionalProperties: false
        '401':
          description: Invalid or missing API key token
          content: {}
        '403':
          description: A signed-in project administrator is required; API-key principals cannot rotate base keys
          content: {}
      description: Deprecated. Project base keys can be rotated only by a signed-in project administrator in the browser. Organization API keys are always refused with 403.
      summary: Regenerate the project API key
      security:
      - admin_api_key: []
      x-access-policy:
        kind: handlerManaged
        credential:
        - organization_api_key
        permissions: []
      parameters:
      - in: path
        name: id
        schema:
          type: string
          minLength: 1
        required: true
      tags:
      - Projects
components:
  schemas:
    Project:
      type: object
      properties:
        id:
          type: string
          minLength: 1
        name:
          type: string
        slug:
          type: string
        language:
          type: string
        framework:
          type: string
        teamId:
          type: string
          minLength: 1
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        piiRedactionLevel:
          type: string
          enum:
          - STRICT
          - ESSENTIAL
          - DISABLED
      required:
      - id
      - name
      - slug
      - language
      - framework
      - teamId
      - createdAt
      - updatedAt
      additionalProperties: false
    Pagination:
      type: object
      properties:
        page:
          type: integer
          exclusiveMinimum: 0
          maximum: 9007199254740991
        limit:
          type: integer
          exclusiveMinimum: 0
          maximum: 9007199254740991
        total:
          type: integer
          minimum: 0
          maximum: 9007199254740991
      required:
      - page
      - limit
      - total
      additionalProperties: false
  securitySchemes:
    project_api_key:
      type: apiKey
      in: header
      name: X-Auth-Token
      description: 'Project API key for sending traces and accessing project-scoped resources. Format: sk-lw-... (no underscore). Obtain one by creating a project via the Admin API or the LangWatch UI.'
    admin_api_key:
      type: http
      scheme: bearer
      description: 'Admin API key for organization-level operations (managing projects, API keys). Create one in Settings > API Keys or via POST /api/api-keys. Format: sk-lw-{id}_{secret}.'
    scim_bearer:
      type: http
      scheme: bearer
      description: SCIM token for one organization's directory connection, created with POST /api/scim-tokens or in Settings > SCIM. It authenticates provisioning calls only, and stops working if the organization's Enterprise plan lapses.
    cli_access_token:
      type: http
      scheme: bearer
      description: The device session the LangWatch CLI holds after `langwatch login`. It acts as the person who signed in, in the organization they chose, and expires unless the CLI refreshes it.
    instance_admin_key:
      type: http
      scheme: bearer
      description: Instance administrator key, set as LANGWATCH_INSTANCE_ADMIN_API_KEY on a self-hosted deployment. It exists to create the first organization, before any organization key does; every other management API takes an organization key instead.
    internal_secret:
      type: http
      scheme: bearer
      description: The deployment's own shared secret, presented by another LangWatch service rather than by a customer. The families behind it are ingress-blocked; they are described so a self-hosted operator can see what the deployment talks to itself about.
x-provenance:
  method: harvested
  publisher: LangWatch
  source: https://app.langwatch.ai/api/openapi.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)