{
  "opencollection": "1.0.0",
  "info": {
    "name": "LangWatch API",
    "version": "1.0.0"
  },
  "request": {
    "auth": {
      "type": "apikey",
      "key": "X-Auth-Token",
      "value": "{{X-Auth-Token}}",
      "placement": "header"
    }
  },
  "items": [
    {
      "info": {
        "name": "Default",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "getIndex",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/"
          },
          "docs": "Get all prompts for a project"
        },
        {
          "info": {
            "name": "postIndex",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new prompt with default initial version"
        },
        {
          "info": {
            "name": "getApiAgents",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/agents",
            "params": [
              {
                "name": "page",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "List all non-archived agents for the project (paginated)"
        },
        {
          "info": {
            "name": "postApiAgents",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/agents",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new agent"
        },
        {
          "info": {
            "name": "getApiAgentsById",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/agents/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get an agent by its id"
        },
        {
          "info": {
            "name": "patchApiAgentsById",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://app.langwatch.ai/api/agents/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update an agent by its id"
        },
        {
          "info": {
            "name": "deleteApiAgentsById",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/agents/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Archive an agent (soft-delete)"
        },
        {
          "info": {
            "name": "postApiAnalyticsTimeseries",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/analytics/timeseries",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Query analytics timeseries data with metrics, aggregations, and filters"
        },
        {
          "info": {
            "name": "GET /api/annotations",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/annotations"
          },
          "docs": "Returns all annotations for project"
        },
        {
          "info": {
            "name": "GET /api/annotations/trace/{id}",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/annotations/trace/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "ID of trace to fetch"
              }
            ]
          },
          "docs": "Returns all annotations for single trace"
        },
        {
          "info": {
            "name": "POST /api/annotations/trace/{id}",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/annotations/trace/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "ID of the trace to annotate"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create an annotation for a single trace"
        },
        {
          "info": {
            "name": "GET /api/annotations/{id}",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/annotations/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "ID of annotation to fetch"
              }
            ]
          },
          "docs": "Returns a single annotation based on the ID supplied"
        },
        {
          "info": {
            "name": "PATCH /api/annotations/{id}",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://app.langwatch.ai/api/annotations/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "ID of annotation to delete"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Updates a single annotation based on the ID supplied"
        },
        {
          "info": {
            "name": "DELETE /api/annotations/{id}",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/annotations/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "ID of annotation to delete"
              }
            ]
          },
          "docs": "Deletes a single annotation based on the ID supplied"
        },
        {
          "info": {
            "name": "List API keys",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/api-keys",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all API keys owned by the authenticated user in this organization. Requires organization:view permission."
        },
        {
          "info": {
            "name": "Create an API key",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/api-keys",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create a new API key. For service keys, pass keyType:\"service\". Optionally scope to specific projects via projectIds (ADMIN on each). Omit projectIds for full org access. The plaintext token is returned once — store it securely."
        },
        {
          "info": {
            "name": "Revoke an API key",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/api-keys/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "API key ID"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Revoke (soft-delete) an API key. Revoked keys can no longer authenticate. Requires organization:manage permission."
        },
        {
          "info": {
            "name": "getApiDashboards",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/dashboards"
          },
          "docs": "List all dashboards for the project with graph counts"
        },
        {
          "info": {
            "name": "postApiDashboards",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/dashboards",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new dashboard"
        },
        {
          "info": {
            "name": "putApiDashboardsReorder",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://app.langwatch.ai/api/dashboards/reorder",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Reorder dashboards by providing an ordered list of IDs"
        },
        {
          "info": {
            "name": "getApiDashboardsById",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/dashboards/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a dashboard by its id, including its graphs"
        },
        {
          "info": {
            "name": "patchApiDashboardsById",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://app.langwatch.ai/api/dashboards/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Rename a dashboard"
        },
        {
          "info": {
            "name": "deleteApiDashboardsById",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/dashboards/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Delete a dashboard and its graphs (hard delete, cascade)"
        },
        {
          "info": {
            "name": "getApiDataset",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/dataset",
            "params": [
              {
                "name": "page",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "List all non-archived datasets for the project (paginated)"
        },
        {
          "info": {
            "name": "postApiDataset",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/dataset",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new dataset"
        },
        {
          "info": {
            "name": "postApiDatasetUpload",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/dataset/upload"
          },
          "docs": "Create a new dataset from an uploaded file (CSV, JSON, JSONL)"
        },
        {
          "info": {
            "name": "getApiDatasetBySlugOrId",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/dataset/:slugOrId",
            "params": [
              {
                "name": "slugOrId",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a dataset by its slug or id."
        },
        {
          "info": {
            "name": "patchApiDatasetBySlugOrId",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://app.langwatch.ai/api/dataset/:slugOrId",
            "params": [
              {
                "name": "slugOrId",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update a dataset by its slug or id"
        },
        {
          "info": {
            "name": "deleteApiDatasetBySlugOrId",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/dataset/:slugOrId",
            "params": [
              {
                "name": "slugOrId",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Archive a dataset (soft-delete)"
        },
        {
          "info": {
            "name": "getApiDatasetBySlugOrIdRecords",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/dataset/:slugOrId/records",
            "params": [
              {
                "name": "page",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "slugOrId",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "List records for a dataset (paginated)"
        },
        {
          "info": {
            "name": "postApiDatasetBySlugOrIdRecords",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/dataset/:slugOrId/records",
            "params": [
              {
                "name": "slugOrId",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create records in a dataset in batch"
        },
        {
          "info": {
            "name": "deleteApiDatasetBySlugOrIdRecords",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/dataset/:slugOrId/records",
            "params": [
              {
                "name": "slugOrId",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Delete records from a dataset by IDs"
        },
        {
          "info": {
            "name": "patchApiDatasetBySlugOrIdRecordsByRecordId",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://app.langwatch.ai/api/dataset/:slugOrId/records/:recordId",
            "params": [
              {
                "name": "slugOrId",
                "value": "",
                "type": "path"
              },
              {
                "name": "recordId",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update or create a record in a dataset"
        },
        {
          "info": {
            "name": "postApiDatasetBySlugOrIdUpload",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/dataset/:slugOrId/upload",
            "params": [
              {
                "name": "slugOrId",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Upload a file (CSV, JSON, JSONL) to an existing dataset"
        },
        {
          "info": {
            "name": "postApiDatasetBySlugEntries",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/dataset/:slug/entries",
            "params": [
              {
                "name": "slug",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Add entries to a dataset"
        },
        {
          "info": {
            "name": "getApiEvaluators",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/evaluators"
          },
          "docs": "Get all evaluators for a project"
        },
        {
          "info": {
            "name": "postApiEvaluators",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/evaluators",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new evaluator"
        },
        {
          "info": {
            "name": "getApiEvaluatorsByIdOrSlug",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/evaluators/:idOrSlug",
            "params": [
              {
                "name": "idOrSlug",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a specific evaluator by ID or slug"
        },
        {
          "info": {
            "name": "putApiEvaluatorsById",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://app.langwatch.ai/api/evaluators/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update an existing evaluator"
        },
        {
          "info": {
            "name": "deleteApiEvaluatorsById",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/evaluators/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Archive (soft-delete) an evaluator"
        },
        {
          "info": {
            "name": "getApiGraphs",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/graphs",
            "params": [
              {
                "name": "dashboardId",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "List all custom graphs, optionally filtered by dashboard"
        },
        {
          "info": {
            "name": "postApiGraphs",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/graphs",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a custom graph on a dashboard"
        },
        {
          "info": {
            "name": "getApiGraphsById",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/graphs/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a custom graph by its ID"
        },
        {
          "info": {
            "name": "patchApiGraphsById",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://app.langwatch.ai/api/graphs/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update a custom graph's name, definition, or filters"
        },
        {
          "info": {
            "name": "deleteApiGraphsById",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/graphs/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Delete a custom graph"
        },
        {
          "info": {
            "name": "getApiModel-providers",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/model-providers"
          },
          "docs": "List all model providers for a project with masked API keys"
        },
        {
          "info": {
            "name": "putApiModel-providersByProvider",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://app.langwatch.ai/api/model-providers/:provider",
            "params": [
              {
                "name": "provider",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create or update a model provider"
        },
        {
          "info": {
            "name": "getApiMonitors",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/monitors"
          },
          "docs": "List all online evaluation monitors for the project"
        },
        {
          "info": {
            "name": "postApiMonitors",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/monitors",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new online evaluation monitor"
        },
        {
          "info": {
            "name": "getApiMonitorsById",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/monitors/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a monitor by its ID"
        },
        {
          "info": {
            "name": "patchApiMonitorsById",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://app.langwatch.ai/api/monitors/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update a monitor (name, enabled state, settings, etc.)"
        },
        {
          "info": {
            "name": "deleteApiMonitorsById",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/monitors/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Delete a monitor"
        },
        {
          "info": {
            "name": "postApiMonitorsByIdToggle",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/monitors/:id/toggle",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Enable or disable a monitor"
        },
        {
          "info": {
            "name": "List projects",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/projects",
            "params": [
              {
                "name": "page",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all non-archived projects for the organization (paginated). Requires an admin API key with project:view permission."
        },
        {
          "info": {
            "name": "Create a project",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/projects",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create a new project in the organization. Returns the project with its API key (sk-lw-...) for sending traces. Provide either teamId (existing team) or newTeamName (creates a new team). Requires project:create permission."
        },
        {
          "info": {
            "name": "Get a project",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/projects/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "Project ID (project_...)"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get a project by ID, including its API key. Requires project:view permission."
        },
        {
          "info": {
            "name": "Update a project",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://app.langwatch.ai/api/projects/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "Project ID"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update project fields. Only provided fields are changed. Requires project:update permission."
        },
        {
          "info": {
            "name": "Archive a project",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/projects/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "Project ID"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Soft-delete (archive) a project. Archived projects are excluded from list responses. Requires project:delete permission."
        },
        {
          "info": {
            "name": "getApiPrompts",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/prompts"
          },
          "docs": "Get all prompts for a project"
        },
        {
          "info": {
            "name": "postApiPrompts",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/prompts",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new prompt with default initial version"
        },
        {
          "info": {
            "name": "getApiPromptsTags",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/prompts/tags"
          },
          "docs": "List all prompt tag definitions for the organization"
        },
        {
          "info": {
            "name": "postApiPromptsTags",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/prompts/tags",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a custom prompt tag definition for the organization"
        },
        {
          "info": {
            "name": "putApiPromptsTagsByTag",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://app.langwatch.ai/api/prompts/tags/:tag",
            "params": [
              {
                "name": "tag",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Rename a prompt tag definition"
        },
        {
          "info": {
            "name": "deleteApiPromptsTagsByTag",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/prompts/tags/:tag",
            "params": [
              {
                "name": "tag",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Delete a prompt tag definition and cascade to assignments"
        },
        {
          "info": {
            "name": "getApiPromptsById",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/prompts/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "Prompt slug or shorthand. Supports three formats: (1) bare slug — \"pizza-prompt\" returns the latest version; (2) slug:tag — \"pizza-prompt:production\" returns the version pointed to by that tag; (3) slug:version — \"pizza-prompt:2\" returns that specific version number. \"slug:latest\" is equivalent to the bare slug. Cannot be combined with the tag or version query parameters."
              },
              {
                "name": "version",
                "value": "",
                "type": "query",
                "description": "Specific version number to retrieve. Cannot be used when the id path already contains a shorthand suffix."
              },
              {
                "name": "tag",
                "value": "",
                "type": "query",
                "description": "Fetch the version pointed to by this tag (e.g., \"production\", \"staging\"). Cannot be used when the id path already contains a shorthand suffix."
              }
            ]
          },
          "docs": "Get a specific prompt by slug, with optional shorthand syntax for tags and versions. Pass a bare slug like \"pizza-prompt\" to get the latest version, \"pizza-prompt:production\" to resolve a tagged version, or \"pizza-prompt:2\" to fetch version 2. Alternatively, use the tag or version query parameters with a bare slug."
        },
        {
          "info": {
            "name": "putApiPromptsById",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://app.langwatch.ai/api/prompts/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update a prompt"
        },
        {
          "info": {
            "name": "deleteApiPromptsById",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/prompts/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Delete a prompt"
        },
        {
          "info": {
            "name": "postApiPromptsByIdSync",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/prompts/:id/sync",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Sync/upsert a prompt with local content"
        },
        {
          "info": {
            "name": "putApiPromptsByIdTagsByTag",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://app.langwatch.ai/api/prompts/:id/tags/:tag",
            "params": [
              {
                "name": "tag",
                "value": "",
                "type": "path",
                "description": "The tag to assign (e.g., \"production\", \"staging\", or a custom tag)"
              },
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Assign a tag (e.g. \"production\", \"staging\") to a specific prompt version"
        },
        {
          "info": {
            "name": "getApiPromptsByIdVersions",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/prompts/:id/versions",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get all versions for a prompt. Does not include base prompt data, only versioned data."
        },
        {
          "info": {
            "name": "postApiPromptsByIdVersionsByVersionIdRestore",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/prompts/:id/versions/:versionId/restore",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              },
              {
                "name": "versionId",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Restore a prompt to a previous version. Creates a new version with the same config data as the specified version."
        },
        {
          "info": {
            "name": "postApiScenario-events",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/scenario-events",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new scenario event"
        },
        {
          "info": {
            "name": "deleteApiScenario-events",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/scenario-events"
          },
          "docs": "Delete all events"
        },
        {
          "info": {
            "name": "getApiScenarios",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/scenarios"
          },
          "docs": "Get all scenarios for a project"
        },
        {
          "info": {
            "name": "postApiScenarios",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/scenarios",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new scenario"
        },
        {
          "info": {
            "name": "getApiScenariosById",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/scenarios/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a specific scenario by ID"
        },
        {
          "info": {
            "name": "putApiScenariosById",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://app.langwatch.ai/api/scenarios/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update an existing scenario"
        },
        {
          "info": {
            "name": "deleteApiScenariosById",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/scenarios/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Archive (soft-delete) a scenario"
        },
        {
          "info": {
            "name": "getApiSecrets",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/secrets"
          },
          "docs": "List all secrets for the project (values are never returned)"
        },
        {
          "info": {
            "name": "postApiSecrets",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/secrets",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new project secret. The value is encrypted at rest and never returned."
        },
        {
          "info": {
            "name": "getApiSecretsById",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/secrets/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a secret by its ID (value is never returned)"
        },
        {
          "info": {
            "name": "putApiSecretsById",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://app.langwatch.ai/api/secrets/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update a secret's value"
        },
        {
          "info": {
            "name": "deleteApiSecretsById",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/secrets/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Delete a secret"
        },
        {
          "info": {
            "name": "getApiSimulation-runs",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/simulation-runs",
            "params": [
              {
                "name": "scenarioSetId",
                "value": "",
                "type": "query"
              },
              {
                "name": "batchRunId",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "cursor",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "List simulation runs, optionally filtered by scenarioSetId or batchRunId"
        },
        {
          "info": {
            "name": "getApiSimulation-runsBatchesList",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/simulation-runs/batches/list",
            "params": [
              {
                "name": "scenarioSetId",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "cursor",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "List batch summaries for a scenario set (pass/fail counts per batch)"
        },
        {
          "info": {
            "name": "getApiSimulation-runsByScenarioRunId",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/simulation-runs/:scenarioRunId",
            "params": [
              {
                "name": "scenarioRunId",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a single simulation run by its ID"
        },
        {
          "info": {
            "name": "getApiSuites",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/suites"
          },
          "docs": "List all non-archived suites (run plans) for the project"
        },
        {
          "info": {
            "name": "postApiSuites",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/suites",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new suite (run plan)"
        },
        {
          "info": {
            "name": "getApiSuitesById",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/suites/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a suite (run plan) by its ID"
        },
        {
          "info": {
            "name": "patchApiSuitesById",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://app.langwatch.ai/api/suites/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update a suite (run plan)"
        },
        {
          "info": {
            "name": "deleteApiSuitesById",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/suites/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Archive (soft-delete) a suite (run plan)"
        },
        {
          "info": {
            "name": "postApiSuitesByIdDuplicate",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/suites/:id/duplicate",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Duplicate a suite (run plan)"
        },
        {
          "info": {
            "name": "postApiSuitesByIdRun",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/suites/:id/run",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Trigger a suite run. Schedules scenario executions for all active scenarios × targets × repeatCount."
        },
        {
          "info": {
            "name": "GET /api/trace/{id}",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/trace/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "ID of trace to share"
              }
            ]
          },
          "docs": "Returns single trace details based on the ID supplied"
        },
        {
          "info": {
            "name": "POST /api/trace/{id}/share",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/trace/:id/share",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "ID of trace to share"
              }
            ]
          },
          "docs": "Returns a public path for a trace"
        },
        {
          "info": {
            "name": "POST /api/trace/{id}/unshare",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/trace/:id/unshare",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "ID of trace to unshare"
              }
            ]
          },
          "docs": "Deletes a public path for a trace"
        },
        {
          "info": {
            "name": "postApiTracesSearch",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/traces/search",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Search traces for a project"
        },
        {
          "info": {
            "name": "getApiTracesByTraceId",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/traces/:traceId",
            "params": [
              {
                "name": "traceId",
                "value": "",
                "type": "path",
                "description": "The trace ID — either the full 32-char ID or a unique prefix (≥ 8 chars). Prefix lookup is scoped to the authenticated project."
              },
              {
                "name": "format",
                "value": "",
                "type": "query",
                "description": "Output format: 'digest' (default, AI-readable) or 'json' (full raw data)"
              },
              {
                "name": "llmMode",
                "value": "",
                "type": "query",
                "description": "Deprecated: use format=digest instead"
              }
            ]
          },
          "docs": "Get a single trace by ID."
        },
        {
          "info": {
            "name": "getApiTriggers",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/triggers"
          },
          "docs": "List all active triggers (automations) for the project"
        },
        {
          "info": {
            "name": "postApiTriggers",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/triggers",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new trigger (automation)"
        },
        {
          "info": {
            "name": "getApiTriggersById",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/triggers/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a trigger by its ID"
        },
        {
          "info": {
            "name": "patchApiTriggersById",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://app.langwatch.ai/api/triggers/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update a trigger (name, active state, message, filters)"
        },
        {
          "info": {
            "name": "deleteApiTriggersById",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/triggers/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Delete (soft-delete) a trigger"
        },
        {
          "info": {
            "name": "getApiWorkflows",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/workflows"
          },
          "docs": "List all non-archived workflows for the project"
        },
        {
          "info": {
            "name": "getApiWorkflowsById",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/workflows/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a workflow by its ID"
        },
        {
          "info": {
            "name": "patchApiWorkflowsById",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://app.langwatch.ai/api/workflows/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update a workflow's metadata (name, icon, description)"
        },
        {
          "info": {
            "name": "deleteApiWorkflowsById",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/workflows/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Archive (soft-delete) a workflow"
        },
        {
          "info": {
            "name": "getApiModel-defaults",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/model-defaults"
          },
          "docs": "Snapshot of the default-model cascade for this project: effective resolution per role, plus the configs the caller can read."
        },
        {
          "info": {
            "name": "postApiModel-defaults",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/model-defaults",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a default-model config attached to one or more scopes. JSON keys may be roles (DEFAULT, FAST, EMBEDDINGS) or registered feature keys; missing keys inherit from a higher scope."
        },
        {
          "info": {
            "name": "putApiModel-defaultsById",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://app.langwatch.ai/api/model-defaults/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update a config's JSON payload and/or its scope attachments. Sending `scopes: []` deletes the config."
        },
        {
          "info": {
            "name": "deleteApiModel-defaultsById",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/model-defaults/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Delete a default-model config. Scope attachments cascade."
        }
      ]
    },
    {
      "info": {
        "name": "Evaluations V3",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "getEvaluationsV3RunStatus",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/experiments/runs/:runId",
            "params": [
              {
                "name": "runId",
                "value": "",
                "type": "path",
                "description": "The run ID returned from POST /api/experiments/{slug}/run"
              }
            ]
          },
          "docs": "Get the current status of an evaluation run for polling. Returns progress while running, and summary when completed."
        },
        {
          "info": {
            "name": "postEvaluationsV3Run",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/experiments/:slug/run",
            "params": [
              {
                "name": "slug",
                "value": "",
                "type": "path",
                "description": "The slug of the evaluation to run"
              }
            ]
          },
          "docs": "Start execution of a saved Evaluations V3 experiment by slug. Returns immediately with a runId for polling, or streams SSE events if Accept: text/event-stream header is provided."
        }
      ]
    },
    {
      "info": {
        "name": "Budgets",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List budgets applicable to the project",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/gateway/v1/budgets"
          },
          "docs": "Returns every budget that could apply to requests routed through this project — org, team, and project scope. VK and principal-scoped budgets are returned via their detail pages."
        },
        {
          "info": {
            "name": "Create budget",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/gateway/v1/budgets"
          },
          "docs": "Creates an organization-owned budget. The scope discriminates which resource the budget covers (organization / team / project / virtual_key / principal)."
        },
        {
          "info": {
            "name": "Update budget",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://app.langwatch.ai/api/gateway/v1/budgets/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Partial update — scope and window are immutable after create. Use explicit null to clear timezone / description."
        },
        {
          "info": {
            "name": "Archive budget",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/gateway/v1/budgets/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Soft-delete — the row is marked archived and no longer counted by the budget engine. Historical ledger entries are retained."
        }
      ]
    },
    {
      "info": {
        "name": "Cache Rules",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List cache-control rules",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/gateway/v1/cache-rules"
          },
          "docs": "Organization-scoped operator-authored rules. Returned sorted priority DESC; archived rules excluded. Matchers and action are returned verbatim as JSON."
        },
        {
          "info": {
            "name": "Create a cache rule",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/gateway/v1/cache-rules"
          },
          "docs": "Matchers are ANDed across non-null fields; at least one matcher is required. Mode is one of respect/force/disable. TTL is clamped to [0, 86400]. Salt is an optional cache-bust tag (max 64 chars). All writes emit a ChangeEvent so the gateway picks up the new rule within 30 s via its /changes long-poll."
        },
        {
          "info": {
            "name": "Get a cache rule",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/gateway/v1/cache-rules/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Returns the rule if it belongs to the caller's organisation; 404 otherwise. Archived rules are NOT returned (use the audit log to inspect removed rules)."
        },
        {
          "info": {
            "name": "Update a cache rule",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://app.langwatch.ai/api/gateway/v1/cache-rules/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Partial update. `matchers` and `action` REPLACE the stored value when provided (not merged field-by-field). Omitting them leaves the stored value untouched. The rule id + organisation are immutable."
        },
        {
          "info": {
            "name": "Archive a cache rule",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/gateway/v1/cache-rules/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Soft-delete — sets archivedAt. The rule stops matching new requests. Audit log retains before/after snapshots. Returns the archived row."
        }
      ]
    },
    {
      "info": {
        "name": "Providers",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List provider bindings",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/gateway/v1/providers"
          },
          "docs": "Lists every gateway-bound model-provider credential for the caller's project, including health and rate-limit settings."
        },
        {
          "info": {
            "name": "Bind a model provider to the gateway",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/gateway/v1/providers"
          },
          "docs": "Creates a GatewayProviderCredential binding. Reuses the ModelProvider API key already configured in project settings; this only adds gateway-specific settings (rate limits, rotation, fallback priority)."
        },
        {
          "info": {
            "name": "Update provider binding",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://app.langwatch.ai/api/gateway/v1/providers/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Partial update of gateway-specific settings (rate limits, rotation, slot, extra headers). The underlying ModelProvider credentials are managed in project settings, not here."
        },
        {
          "info": {
            "name": "Disable provider binding",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://app.langwatch.ai/api/gateway/v1/providers/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Marks the binding disabled. Requests routing to this slot are skipped (fallback chain continues). Historical ledger rows are retained."
        }
      ]
    },
    {
      "info": {
        "name": "Virtual Keys",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List virtual keys",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/gateway/v1/virtual-keys"
          },
          "docs": "Returns every non-archived virtual key in the caller's project, ordered by creation time."
        },
        {
          "info": {
            "name": "Create virtual key",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/gateway/v1/virtual-keys"
          },
          "docs": "Mints a new virtual key and returns the secret exactly once. The caller MUST persist the `secret` value — LangWatch stores only a hash."
        },
        {
          "info": {
            "name": "Get virtual key",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://app.langwatch.ai/api/gateway/v1/virtual-keys/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get virtual key"
        },
        {
          "info": {
            "name": "Update virtual key",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://app.langwatch.ai/api/gateway/v1/virtual-keys/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Partial update — send only the fields you want to change. `provider_credential_ids` replaces the entire fallback chain. `config` is deep-merged."
        },
        {
          "info": {
            "name": "Revoke virtual key",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/gateway/v1/virtual-keys/:id/revoke",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Marks the virtual key as revoked. Clients using it start receiving 401 within ~60s (the gateway's change-event long-poll period)."
        },
        {
          "info": {
            "name": "Rotate virtual key secret",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/gateway/v1/virtual-keys/:id/rotate",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Mints a fresh secret for an existing VK. The old secret remains valid for 24h (grace window) so in-flight clients can roll over."
        }
      ]
    },
    {
      "info": {
        "name": "Traces",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Search traces",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://app.langwatch.ai/api/trace/search",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Search for traces based on given criteria"
        }
      ]
    }
  ],
  "bundled": true
}