{"openapi":"3.1.0","info":{"title":"LangSmith Usage Admin (BYOK) API","version":"0.1.0","description":"LangSmith Usage Admin (BYOK) lets an AI assistant read your own LangSmith Usage Admin data through the LangSmith Usage Admin API with a key you supply (LangSmith API key (organization-level service key or personal access token)). Read-only: 10 tools (get_organization_info, get_billing_usage, get_granular_usage, list_usage_limits, list_org_usage_limits, get_workspace_usage_limits,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-langsmith-usage.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-langsmith-usage/docs"},"termsOfService":"https://connectorbay.com/byok-langsmith-usage/terms"},"servers":[{"url":"https://byok-langsmith-usage.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-langsmith-usage/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_organization_info":{"post":{"operationId":"get_organization_info","summary":"Show the organization of the key: name, plan tier, whether it is personal or disabled, and plan limits such as maximum w","description":"Show the organization of the key: name, plan tier, whether it is personal or disabled, and plan limits such as maximum workspaces and seats. Use for \"Which LangSmith plan is my organization on and what are its limits\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_organization_infoArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_billing_usage":{"post":{"operationId":"get_billing_usage","summary":"Get billed usage per metric (for example traces) between two dates as rows with metric name, period and value. Use for \"","description":"Get billed usage per metric (for example traces) between two dates as rows with metric name, period and value. Use for \"How many traces did my LangSmith organization use in October\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"starting_on":{"description":"Start of the period, ISO 8601 (for example 2026-10-01T00:00:00Z).","maxLength":40,"title":"Starting On","type":"string"},"ending_before":{"description":"End of the period (exclusive), ISO 8601.","maxLength":40,"title":"Ending Before","type":"string"},"on_current_plan":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True (default) to count only usage on the current plan.","title":"On Current Plan"}},"required":["starting_on","ending_before"],"title":"get_billing_usageArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_granular_usage":{"post":{"operationId":"get_granular_usage","summary":"Get trace and agent usage in time buckets between two times, optionally grouped by project, workspace, API key or trace ","description":"Get trace and agent usage in time buckets between two times, optionally grouped by project, workspace, API key or trace tier. Use for \"Which LangSmith projects used the most traces last week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_time":{"description":"Start of the range, ISO 8601.","maxLength":40,"title":"Start Time","type":"string"},"end_time":{"description":"End of the range, ISO 8601.","maxLength":40,"title":"End Time","type":"string"},"group_by":{"anyOf":[{"enum":["project","workspace","api_key","trace_tier"],"type":"string"},{"type":"null"}],"default":null,"description":"Group usage by project, workspace, api_key or trace_tier.","title":"Group By"},"kind":{"anyOf":[{"enum":["traces","langsmith_deployments"],"type":"string"},{"type":"null"}],"default":null,"description":"Usage kind: traces or langsmith_deployments.","title":"Kind"}},"required":["start_time","end_time"],"title":"get_granular_usageArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_usage_limits":{"post":{"operationId":"list_usage_limits","summary":"List the workspace trace usage limits (monthly traces or long-lived traces) with value and scope (workspace, project or ","description":"List the workspace trace usage limits (monthly traces or long-lived traces) with value and scope (workspace, project or user). Use for \"What trace usage limits are set in my LangSmith workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_usage_limitsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_org_usage_limits":{"post":{"operationId":"list_org_usage_limits","summary":"List the organization-level trace usage limits with value and scope. Use for \"What trace usage limits are set for my Lan","description":"List the organization-level trace usage limits with value and scope. Use for \"What trace usage limits are set for my LangSmith organization\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_org_usage_limitsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_workspace_usage_limits":{"post":{"operationId":"get_workspace_usage_limits","summary":"Show the current workspace ingest limit state: which limit applies, its value and whether the workspace is currently rej","description":"Show the current workspace ingest limit state: which limit applies, its value and whether the workspace is currently rejected. Use for \"Is my LangSmith workspace hitting an ingest limit\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_workspace_usage_limitsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_model_price_map":{"post":{"operationId":"list_model_price_map","summary":"List the model price map used for cost tracking: model name, provider, match pattern and prompt and completion cost per ","description":"List the model price map used for cost tracking: model name, provider, match pattern and prompt and completion cost per token. Use for \"What model prices does LangSmith use for cost tracking\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only entries matching this text.","title":"Q"},"sort_order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Sort order: asc or desc.","title":"Sort Order"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many rows to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of rows to skip, for paging.","title":"Offset"}},"title":"list_model_price_mapArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_ttl_settings":{"post":{"operationId":"list_ttl_settings","summary":"List the trace retention settings: default trace tier, whether it applies to all projects and the long-lived retention i","description":"List the trace retention settings: default trace tier, whether it applies to all projects and the long-lived retention in days. Use for \"How long does my LangSmith workspace keep traces\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_ttl_settingsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_gateway_policies":{"post":{"operationId":"list_gateway_policies","summary":"List LLM gateway policies (spend caps and rate limits) with type, action, priority, enabled flag, subject matchers and c","description":"List LLM gateway policies (spend caps and rate limits) with type, action, priority, enabled flag, subject matchers and current spend or usage. Use for \"Which LLM gateway spend policies are set in LangSmith\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_gateway_policiesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_tag_keys":{"post":{"operationId":"list_tag_keys","summary":"List the resource tag keys defined in the workspace (key and description). Use for \"Which resource tag keys exist in my ","description":"List the resource tag keys defined in the workspace (key and description). Use for \"Which resource tag keys exist in my LangSmith workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_tag_keysArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}