@1claw/openapi-spec 0.61.40 → 0.61.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/openapi.json +620 -10
- package/openapi.yaml +429 -10
- package/package.json +1 -1
package/openapi.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"openapi": "3.1.0",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "1Claw API",
|
|
5
|
-
"version": "0.61.
|
|
5
|
+
"version": "0.61.41",
|
|
6
6
|
"description": "Secure secret management for AI agents. Provides vaults, secrets,\npolicy-based access control, agent identity, Intents API,\nsharing, billing, and audit logging. Automations (workflow_spec,\nwebhook tokens, event triggers, Assist), cloud runtimes with\ninteractive shell sessions, agent memory, and discovery.\n\n## Domains\n\n`api.1claw.co` is canonical: it is the OIDC issuer, the `aud` the API\nmints, and the first entry in `servers` — a generated client takes its\nbase URL from there, and the previous ordering pointed every SDK at the\ndomain the issuer had already left. `api.1claw.xyz` still answers and is\nstill accepted on token validation, because tokens minted before the\nmove carry it; it is never minted now.\n\nOne deliberate exception: the Shroud attestation identity token is\nrequested from GCP with `audience: https://api.1claw.xyz`, so\n`/v1/shroud/attestation` reports that as its `expected_audience`. That\nis accurate rather than stale — the audience is a verification contract\nwith anyone already checking the token, and moving it is a breaking\nchange for them, not a rename.\n\nAll endpoints require JWT Bearer authentication unless marked with\n`security: []`.\n",
|
|
7
7
|
"contact": {
|
|
8
8
|
"email": "ops@1claw.co"
|
|
@@ -222,6 +222,10 @@
|
|
|
222
222
|
{
|
|
223
223
|
"name": "Shamir KEK",
|
|
224
224
|
"description": "Shamir secret-sharing for org-level Key Encryption Keys"
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"name": "Agent Tools",
|
|
228
|
+
"description": "Utility tools an agent calls directly on its own token (web search, etc.)"
|
|
225
229
|
}
|
|
226
230
|
],
|
|
227
231
|
"paths": {
|
|
@@ -2911,7 +2915,7 @@
|
|
|
2911
2915
|
"x402"
|
|
2912
2916
|
],
|
|
2913
2917
|
"pricingMode": "fixed",
|
|
2914
|
-
"price": "0.
|
|
2918
|
+
"price": "0.0225"
|
|
2915
2919
|
},
|
|
2916
2920
|
"parameters": [
|
|
2917
2921
|
{
|
|
@@ -2964,7 +2968,7 @@
|
|
|
2964
2968
|
"x402"
|
|
2965
2969
|
],
|
|
2966
2970
|
"pricingMode": "fixed",
|
|
2967
|
-
"price": "0.
|
|
2971
|
+
"price": "0.0045"
|
|
2968
2972
|
},
|
|
2969
2973
|
"parameters": [
|
|
2970
2974
|
{
|
|
@@ -4116,7 +4120,8 @@
|
|
|
4116
4120
|
"protocols": [
|
|
4117
4121
|
"x402"
|
|
4118
4122
|
],
|
|
4119
|
-
"pricingMode": "
|
|
4123
|
+
"pricingMode": "fixed",
|
|
4124
|
+
"price": "0.225"
|
|
4120
4125
|
},
|
|
4121
4126
|
"description": "Replay protection: send an optional **Idempotency-Key** header (e.g. UUID or opaque string).\nDuplicate requests with the same key within 24 hours return the cached transaction response\n(no second sign/broadcast). Omit the header for non-idempotent submissions.\n",
|
|
4122
4127
|
"operationId": "submitTransaction",
|
|
@@ -4287,7 +4292,8 @@
|
|
|
4287
4292
|
"protocols": [
|
|
4288
4293
|
"x402"
|
|
4289
4294
|
],
|
|
4290
|
-
"pricingMode": "
|
|
4295
|
+
"pricingMode": "fixed",
|
|
4296
|
+
"price": "0.225"
|
|
4291
4297
|
},
|
|
4292
4298
|
"parameters": [
|
|
4293
4299
|
{
|
|
@@ -4342,7 +4348,7 @@
|
|
|
4342
4348
|
"x402"
|
|
4343
4349
|
],
|
|
4344
4350
|
"pricingMode": "fixed",
|
|
4345
|
-
"price": "0.
|
|
4351
|
+
"price": "0.225"
|
|
4346
4352
|
},
|
|
4347
4353
|
"parameters": [
|
|
4348
4354
|
{
|
|
@@ -4397,7 +4403,7 @@
|
|
|
4397
4403
|
"x402"
|
|
4398
4404
|
],
|
|
4399
4405
|
"pricingMode": "fixed",
|
|
4400
|
-
"price": "0.
|
|
4406
|
+
"price": "0.225"
|
|
4401
4407
|
},
|
|
4402
4408
|
"parameters": [
|
|
4403
4409
|
{
|
|
@@ -6407,7 +6413,7 @@
|
|
|
6407
6413
|
"x402"
|
|
6408
6414
|
],
|
|
6409
6415
|
"pricingMode": "fixed",
|
|
6410
|
-
"price": "0.
|
|
6416
|
+
"price": "0.009"
|
|
6411
6417
|
},
|
|
6412
6418
|
"parameters": [
|
|
6413
6419
|
{
|
|
@@ -6466,7 +6472,7 @@
|
|
|
6466
6472
|
"x402"
|
|
6467
6473
|
],
|
|
6468
6474
|
"pricingMode": "fixed",
|
|
6469
|
-
"price": "0.
|
|
6475
|
+
"price": "0.0045"
|
|
6470
6476
|
},
|
|
6471
6477
|
"parameters": [
|
|
6472
6478
|
{
|
|
@@ -7049,6 +7055,114 @@
|
|
|
7049
7055
|
}
|
|
7050
7056
|
}
|
|
7051
7057
|
},
|
|
7058
|
+
"/v1/onboarding/guided/status": {
|
|
7059
|
+
"get": {
|
|
7060
|
+
"tags": [
|
|
7061
|
+
"Organization"
|
|
7062
|
+
],
|
|
7063
|
+
"summary": "Guided onboarding eligibility + status",
|
|
7064
|
+
"description": "Whether this org is in the guided-onboarding rollout cohort, plus the\nsame welcome-bundle progress fields `GET /v1/org/onboarding/status`\nreports. `eligible` decides whether the dashboard's redirect sends a\nnew, still-unprovisioned user to the guided flow or the existing\nMCP-connect flow.\n",
|
|
7065
|
+
"operationId": "getGuidedOnboardingStatus",
|
|
7066
|
+
"responses": {
|
|
7067
|
+
"200": {
|
|
7068
|
+
"description": "Guided onboarding status",
|
|
7069
|
+
"content": {
|
|
7070
|
+
"application/json": {
|
|
7071
|
+
"schema": {
|
|
7072
|
+
"$ref": "#/components/schemas/GuidedOnboardingStatus"
|
|
7073
|
+
}
|
|
7074
|
+
}
|
|
7075
|
+
}
|
|
7076
|
+
}
|
|
7077
|
+
}
|
|
7078
|
+
}
|
|
7079
|
+
},
|
|
7080
|
+
"/v1/onboarding/guided/ask": {
|
|
7081
|
+
"post": {
|
|
7082
|
+
"tags": [
|
|
7083
|
+
"Organization"
|
|
7084
|
+
],
|
|
7085
|
+
"summary": "Ask the guided onboarding assistant a question",
|
|
7086
|
+
"description": "Scoped, one-shot Q&A for the guided wizard's \"have a question?\" panel.\nNot tied to an agent (many questions arrive before one exists yet) and\nnot persisted as a conversation. The system prompt is fixed server-side\nand refuses anything outside vaults/policies/runtimes/billing/channels —\nnever client-suppliable. Billed like any other Shroud LLM call: the\ncaller's own bearer token is forwarded so usage attributes to their org.\n",
|
|
7087
|
+
"operationId": "guidedOnboardingAsk",
|
|
7088
|
+
"requestBody": {
|
|
7089
|
+
"required": true,
|
|
7090
|
+
"content": {
|
|
7091
|
+
"application/json": {
|
|
7092
|
+
"schema": {
|
|
7093
|
+
"$ref": "#/components/schemas/GuidedAskRequest"
|
|
7094
|
+
}
|
|
7095
|
+
}
|
|
7096
|
+
}
|
|
7097
|
+
},
|
|
7098
|
+
"responses": {
|
|
7099
|
+
"200": {
|
|
7100
|
+
"description": "Assistant's answer",
|
|
7101
|
+
"content": {
|
|
7102
|
+
"application/json": {
|
|
7103
|
+
"schema": {
|
|
7104
|
+
"$ref": "#/components/schemas/GuidedAskResponse"
|
|
7105
|
+
}
|
|
7106
|
+
}
|
|
7107
|
+
}
|
|
7108
|
+
}
|
|
7109
|
+
}
|
|
7110
|
+
}
|
|
7111
|
+
},
|
|
7112
|
+
"/v1/onboarding/guided/trial/setup-intent": {
|
|
7113
|
+
"post": {
|
|
7114
|
+
"tags": [
|
|
7115
|
+
"Organization"
|
|
7116
|
+
],
|
|
7117
|
+
"summary": "Start a card-on-file trial runtime setup",
|
|
7118
|
+
"description": "Creates a Stripe SetupIntent for the org's customer so the guided\nonboarding wizard can collect a card with Stripe.js — no charge unless\nthe trial runtime is kept past its trial window.\n",
|
|
7119
|
+
"operationId": "createTrialSetupIntent",
|
|
7120
|
+
"responses": {
|
|
7121
|
+
"200": {
|
|
7122
|
+
"description": "SetupIntent client secret",
|
|
7123
|
+
"content": {
|
|
7124
|
+
"application/json": {
|
|
7125
|
+
"schema": {
|
|
7126
|
+
"$ref": "#/components/schemas/TrialSetupIntentResponse"
|
|
7127
|
+
}
|
|
7128
|
+
}
|
|
7129
|
+
}
|
|
7130
|
+
}
|
|
7131
|
+
}
|
|
7132
|
+
}
|
|
7133
|
+
},
|
|
7134
|
+
"/v1/onboarding/guided/trial/runtime": {
|
|
7135
|
+
"post": {
|
|
7136
|
+
"tags": [
|
|
7137
|
+
"Organization"
|
|
7138
|
+
],
|
|
7139
|
+
"summary": "Create a card-gated trial runtime",
|
|
7140
|
+
"description": "Verifies the given SetupIntent succeeded, then delegates to the same\nruntime-creation logic `POST /v1/runtimes` uses. Only reachable once\nthe guided onboarding wizard has a confirmed SetupIntent for the org.\n",
|
|
7141
|
+
"operationId": "createTrialRuntime",
|
|
7142
|
+
"requestBody": {
|
|
7143
|
+
"required": true,
|
|
7144
|
+
"content": {
|
|
7145
|
+
"application/json": {
|
|
7146
|
+
"schema": {
|
|
7147
|
+
"$ref": "#/components/schemas/CreateTrialRuntimeRequest"
|
|
7148
|
+
}
|
|
7149
|
+
}
|
|
7150
|
+
}
|
|
7151
|
+
},
|
|
7152
|
+
"responses": {
|
|
7153
|
+
"201": {
|
|
7154
|
+
"description": "Created runtime",
|
|
7155
|
+
"content": {
|
|
7156
|
+
"application/json": {
|
|
7157
|
+
"schema": {
|
|
7158
|
+
"$ref": "#/components/schemas/RuntimeResponse"
|
|
7159
|
+
}
|
|
7160
|
+
}
|
|
7161
|
+
}
|
|
7162
|
+
}
|
|
7163
|
+
}
|
|
7164
|
+
}
|
|
7165
|
+
},
|
|
7052
7166
|
"/v1/org/status": {
|
|
7053
7167
|
"get": {
|
|
7054
7168
|
"tags": [
|
|
@@ -7906,7 +8020,7 @@
|
|
|
7906
8020
|
"x402"
|
|
7907
8021
|
],
|
|
7908
8022
|
"pricingMode": "fixed",
|
|
7909
|
-
"price": "0.
|
|
8023
|
+
"price": "0.0024"
|
|
7910
8024
|
},
|
|
7911
8025
|
"parameters": [
|
|
7912
8026
|
{
|
|
@@ -12298,6 +12412,72 @@
|
|
|
12298
12412
|
}
|
|
12299
12413
|
}
|
|
12300
12414
|
},
|
|
12415
|
+
"/v1/shroud/activity/today": {
|
|
12416
|
+
"get": {
|
|
12417
|
+
"tags": [
|
|
12418
|
+
"Shroud"
|
|
12419
|
+
],
|
|
12420
|
+
"summary": "An agent's inference spend since 00:00 UTC",
|
|
12421
|
+
"operationId": "getAgentSpendToday",
|
|
12422
|
+
"description": "What the agent has spent today per the vault's priced activity rows, plus\nrequests and tokens and how many requests Shroud blocked for budget. Shroud\nsyncs its daily-budget counter from this so `daily_budget_usd` holds across\nShroud instances and restarts. Callable by the agent itself (its own id) or the\nplatform service key — the same gate as activity ingest.\n",
|
|
12423
|
+
"security": [
|
|
12424
|
+
{
|
|
12425
|
+
"BearerAuth": []
|
|
12426
|
+
}
|
|
12427
|
+
],
|
|
12428
|
+
"parameters": [
|
|
12429
|
+
{
|
|
12430
|
+
"in": "query",
|
|
12431
|
+
"name": "agent_id",
|
|
12432
|
+
"required": true,
|
|
12433
|
+
"schema": {
|
|
12434
|
+
"type": "string",
|
|
12435
|
+
"format": "uuid"
|
|
12436
|
+
}
|
|
12437
|
+
}
|
|
12438
|
+
],
|
|
12439
|
+
"responses": {
|
|
12440
|
+
"200": {
|
|
12441
|
+
"description": "Today's spend",
|
|
12442
|
+
"content": {
|
|
12443
|
+
"application/json": {
|
|
12444
|
+
"schema": {
|
|
12445
|
+
"type": "object",
|
|
12446
|
+
"properties": {
|
|
12447
|
+
"agent_id": {
|
|
12448
|
+
"type": "string",
|
|
12449
|
+
"format": "uuid"
|
|
12450
|
+
},
|
|
12451
|
+
"day": {
|
|
12452
|
+
"type": "string",
|
|
12453
|
+
"example": "2026-09-21"
|
|
12454
|
+
},
|
|
12455
|
+
"cost_usd": {
|
|
12456
|
+
"type": "number"
|
|
12457
|
+
},
|
|
12458
|
+
"requests": {
|
|
12459
|
+
"type": "integer",
|
|
12460
|
+
"format": "int64"
|
|
12461
|
+
},
|
|
12462
|
+
"tokens": {
|
|
12463
|
+
"type": "integer",
|
|
12464
|
+
"format": "int64"
|
|
12465
|
+
},
|
|
12466
|
+
"blocked_by_budget": {
|
|
12467
|
+
"type": "integer",
|
|
12468
|
+
"format": "int64"
|
|
12469
|
+
}
|
|
12470
|
+
}
|
|
12471
|
+
}
|
|
12472
|
+
}
|
|
12473
|
+
}
|
|
12474
|
+
},
|
|
12475
|
+
"403": {
|
|
12476
|
+
"$ref": "#/components/responses/Forbidden"
|
|
12477
|
+
}
|
|
12478
|
+
}
|
|
12479
|
+
}
|
|
12480
|
+
},
|
|
12301
12481
|
"/v1/shroud/threat-summary": {
|
|
12302
12482
|
"get": {
|
|
12303
12483
|
"tags": [
|
|
@@ -18234,6 +18414,149 @@
|
|
|
18234
18414
|
}
|
|
18235
18415
|
}
|
|
18236
18416
|
},
|
|
18417
|
+
"/v1/admin/stats/growth-timeseries": {
|
|
18418
|
+
"get": {
|
|
18419
|
+
"tags": [
|
|
18420
|
+
"Admin"
|
|
18421
|
+
],
|
|
18422
|
+
"summary": "Time-bucketed usage series for one adoption/usage vertical (admin only)",
|
|
18423
|
+
"description": "Gap-filled counts (24h → hourly, 7d/30d/90d → daily, 365d → weekly) for one of 15 adoption/usage verticals, plus a period-over-period delta. Backs both the live admin analytics dashboard and the weekly investor report — same source, two surfaces.\n",
|
|
18424
|
+
"operationId": "adminGrowthTimeseries",
|
|
18425
|
+
"parameters": [
|
|
18426
|
+
{
|
|
18427
|
+
"name": "vertical",
|
|
18428
|
+
"in": "query",
|
|
18429
|
+
"required": true,
|
|
18430
|
+
"schema": {
|
|
18431
|
+
"type": "string",
|
|
18432
|
+
"enum": [
|
|
18433
|
+
"signups_orgs",
|
|
18434
|
+
"signups_users",
|
|
18435
|
+
"subscriptions_new",
|
|
18436
|
+
"subscriptions_churned",
|
|
18437
|
+
"shroud_usage",
|
|
18438
|
+
"shroud_security",
|
|
18439
|
+
"intents_execution",
|
|
18440
|
+
"intents_transactions",
|
|
18441
|
+
"vault_usage",
|
|
18442
|
+
"runtime_usage",
|
|
18443
|
+
"memory_usage",
|
|
18444
|
+
"automations",
|
|
18445
|
+
"embedded_wallets_created",
|
|
18446
|
+
"embedded_wallets_used",
|
|
18447
|
+
"platform_api"
|
|
18448
|
+
]
|
|
18449
|
+
}
|
|
18450
|
+
},
|
|
18451
|
+
{
|
|
18452
|
+
"name": "period",
|
|
18453
|
+
"in": "query",
|
|
18454
|
+
"schema": {
|
|
18455
|
+
"type": "string",
|
|
18456
|
+
"enum": [
|
|
18457
|
+
"24h",
|
|
18458
|
+
"7d",
|
|
18459
|
+
"30d",
|
|
18460
|
+
"90d",
|
|
18461
|
+
"365d"
|
|
18462
|
+
],
|
|
18463
|
+
"default": "30d"
|
|
18464
|
+
}
|
|
18465
|
+
}
|
|
18466
|
+
],
|
|
18467
|
+
"responses": {
|
|
18468
|
+
"200": {
|
|
18469
|
+
"description": "Time-bucketed series for the requested vertical",
|
|
18470
|
+
"content": {
|
|
18471
|
+
"application/json": {
|
|
18472
|
+
"schema": {
|
|
18473
|
+
"$ref": "#/components/schemas/GrowthTimeseriesResponse"
|
|
18474
|
+
}
|
|
18475
|
+
}
|
|
18476
|
+
}
|
|
18477
|
+
},
|
|
18478
|
+
"400": {
|
|
18479
|
+
"$ref": "#/components/responses/BadRequest"
|
|
18480
|
+
},
|
|
18481
|
+
"403": {
|
|
18482
|
+
"$ref": "#/components/responses/Forbidden"
|
|
18483
|
+
}
|
|
18484
|
+
}
|
|
18485
|
+
}
|
|
18486
|
+
},
|
|
18487
|
+
"/v1/admin/stats/retention": {
|
|
18488
|
+
"get": {
|
|
18489
|
+
"tags": [
|
|
18490
|
+
"Admin"
|
|
18491
|
+
],
|
|
18492
|
+
"summary": "Logo retention over a trailing window (admin only)",
|
|
18493
|
+
"description": "Percentage of organizations older than `window_days` that showed any platform activity (usage_events) in the trailing `window_days` — a simple, defensible retention proxy, not a full cohort matrix.\n",
|
|
18494
|
+
"operationId": "adminRetention",
|
|
18495
|
+
"parameters": [
|
|
18496
|
+
{
|
|
18497
|
+
"name": "window_days",
|
|
18498
|
+
"in": "query",
|
|
18499
|
+
"schema": {
|
|
18500
|
+
"type": "integer",
|
|
18501
|
+
"default": 30,
|
|
18502
|
+
"minimum": 1,
|
|
18503
|
+
"maximum": 365
|
|
18504
|
+
}
|
|
18505
|
+
}
|
|
18506
|
+
],
|
|
18507
|
+
"responses": {
|
|
18508
|
+
"200": {
|
|
18509
|
+
"description": "Retention over the requested window",
|
|
18510
|
+
"content": {
|
|
18511
|
+
"application/json": {
|
|
18512
|
+
"schema": {
|
|
18513
|
+
"$ref": "#/components/schemas/RetentionResponse"
|
|
18514
|
+
}
|
|
18515
|
+
}
|
|
18516
|
+
}
|
|
18517
|
+
},
|
|
18518
|
+
"403": {
|
|
18519
|
+
"$ref": "#/components/responses/Forbidden"
|
|
18520
|
+
}
|
|
18521
|
+
}
|
|
18522
|
+
}
|
|
18523
|
+
},
|
|
18524
|
+
"/v1/admin/llm-prices": {
|
|
18525
|
+
"get": {
|
|
18526
|
+
"tags": [
|
|
18527
|
+
"Admin"
|
|
18528
|
+
],
|
|
18529
|
+
"summary": "Global LLM price card (admin only)",
|
|
18530
|
+
"description": "The platform-wide price card with no org-level overrides applied — see `/v1/spend/ai/prices` for the org-resolved view.",
|
|
18531
|
+
"operationId": "adminListLlmPrices",
|
|
18532
|
+
"responses": {
|
|
18533
|
+
"200": {
|
|
18534
|
+
"description": "Prices",
|
|
18535
|
+
"content": {
|
|
18536
|
+
"application/json": {
|
|
18537
|
+
"schema": {
|
|
18538
|
+
"type": "object",
|
|
18539
|
+
"required": [
|
|
18540
|
+
"prices"
|
|
18541
|
+
],
|
|
18542
|
+
"properties": {
|
|
18543
|
+
"prices": {
|
|
18544
|
+
"type": "array",
|
|
18545
|
+
"items": {
|
|
18546
|
+
"$ref": "#/components/schemas/LlmModelPrice"
|
|
18547
|
+
}
|
|
18548
|
+
}
|
|
18549
|
+
}
|
|
18550
|
+
}
|
|
18551
|
+
}
|
|
18552
|
+
}
|
|
18553
|
+
},
|
|
18554
|
+
"403": {
|
|
18555
|
+
"$ref": "#/components/responses/Forbidden"
|
|
18556
|
+
}
|
|
18557
|
+
}
|
|
18558
|
+
}
|
|
18559
|
+
},
|
|
18237
18560
|
"/v1/agents/{agent_id}/pay/settings": {
|
|
18238
18561
|
"patch": {
|
|
18239
18562
|
"tags": [
|
|
@@ -27927,6 +28250,64 @@
|
|
|
27927
28250
|
}
|
|
27928
28251
|
}
|
|
27929
28252
|
},
|
|
28253
|
+
"/v1/tools/web-search": {
|
|
28254
|
+
"post": {
|
|
28255
|
+
"tags": [
|
|
28256
|
+
"Agent Tools"
|
|
28257
|
+
],
|
|
28258
|
+
"summary": "Platform-default web search fallback",
|
|
28259
|
+
"description": "Called on the agent's own token (not a Shroud-internal callback). Used by the runtime `web_search` tool when an agent has no BRAVE_API_KEY/TAVILY_API_KEY/SERP_API_KEY/ONECLAW_WEB_SEARCH_BINDING of its own — proxies to a shared, platform-provided Brave Search key under a hard monthly platform-wide cap.\n",
|
|
28260
|
+
"operationId": "agentWebSearch",
|
|
28261
|
+
"requestBody": {
|
|
28262
|
+
"required": true,
|
|
28263
|
+
"content": {
|
|
28264
|
+
"application/json": {
|
|
28265
|
+
"schema": {
|
|
28266
|
+
"type": "object",
|
|
28267
|
+
"required": [
|
|
28268
|
+
"query"
|
|
28269
|
+
],
|
|
28270
|
+
"properties": {
|
|
28271
|
+
"query": {
|
|
28272
|
+
"type": "string",
|
|
28273
|
+
"maxLength": 500
|
|
28274
|
+
},
|
|
28275
|
+
"num_results": {
|
|
28276
|
+
"type": "integer",
|
|
28277
|
+
"default": 5
|
|
28278
|
+
}
|
|
28279
|
+
}
|
|
28280
|
+
}
|
|
28281
|
+
}
|
|
28282
|
+
}
|
|
28283
|
+
},
|
|
28284
|
+
"responses": {
|
|
28285
|
+
"200": {
|
|
28286
|
+
"description": "Search results",
|
|
28287
|
+
"content": {
|
|
28288
|
+
"application/json": {
|
|
28289
|
+
"schema": {
|
|
28290
|
+
"$ref": "#/components/schemas/WebSearchResponse"
|
|
28291
|
+
}
|
|
28292
|
+
}
|
|
28293
|
+
}
|
|
28294
|
+
},
|
|
28295
|
+
"400": {
|
|
28296
|
+
"$ref": "#/components/responses/BadRequest"
|
|
28297
|
+
},
|
|
28298
|
+
"403": {
|
|
28299
|
+
"description": "Called on a non-agent token",
|
|
28300
|
+
"content": {
|
|
28301
|
+
"application/json": {
|
|
28302
|
+
"schema": {
|
|
28303
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
28304
|
+
}
|
|
28305
|
+
}
|
|
28306
|
+
}
|
|
28307
|
+
}
|
|
28308
|
+
}
|
|
28309
|
+
}
|
|
28310
|
+
},
|
|
27930
28311
|
"/v1/memory/shared-namespaces": {
|
|
27931
28312
|
"get": {
|
|
27932
28313
|
"tags": [
|
|
@@ -36970,6 +37351,11 @@
|
|
|
36970
37351
|
"type": "string",
|
|
36971
37352
|
"format": "uuid",
|
|
36972
37353
|
"description": "Approval satisfying an `agent.create` control-plane consensus policy,\nif the org has one. Same field and meaning as on `POST /v1/agents`:\nthe first call returns 202 with the approval to collect, and the\nretry passes its id here.\n"
|
|
37354
|
+
},
|
|
37355
|
+
"guided": {
|
|
37356
|
+
"type": "boolean",
|
|
37357
|
+
"default": false,
|
|
37358
|
+
"description": "Seeds `getting-started/**` instead of `examples/**` in the shared\n`default` vault — the guided onboarding wizard's own sample content,\nkept distinguishable from the MCP-connect developer flow's.\n"
|
|
36973
37359
|
}
|
|
36974
37360
|
}
|
|
36975
37361
|
},
|
|
@@ -37002,6 +37388,104 @@
|
|
|
37002
37388
|
}
|
|
37003
37389
|
}
|
|
37004
37390
|
},
|
|
37391
|
+
"GuidedOnboardingStatus": {
|
|
37392
|
+
"allOf": [
|
|
37393
|
+
{
|
|
37394
|
+
"type": "object",
|
|
37395
|
+
"required": [
|
|
37396
|
+
"eligible"
|
|
37397
|
+
],
|
|
37398
|
+
"properties": {
|
|
37399
|
+
"eligible": {
|
|
37400
|
+
"type": "boolean",
|
|
37401
|
+
"description": "Whether this org is in the guided-onboarding rollout cohort —\ndecides whether the dashboard redirects a new user here or to\nthe MCP-connect flow.\n"
|
|
37402
|
+
}
|
|
37403
|
+
}
|
|
37404
|
+
},
|
|
37405
|
+
{
|
|
37406
|
+
"$ref": "#/components/schemas/OnboardingStatus"
|
|
37407
|
+
}
|
|
37408
|
+
]
|
|
37409
|
+
},
|
|
37410
|
+
"GuidedAskRequest": {
|
|
37411
|
+
"type": "object",
|
|
37412
|
+
"required": [
|
|
37413
|
+
"question"
|
|
37414
|
+
],
|
|
37415
|
+
"properties": {
|
|
37416
|
+
"question": {
|
|
37417
|
+
"type": "string",
|
|
37418
|
+
"maxLength": 500
|
|
37419
|
+
},
|
|
37420
|
+
"step": {
|
|
37421
|
+
"type": "integer",
|
|
37422
|
+
"description": "Accepted but not yet used to tailor the answer; reserved for later."
|
|
37423
|
+
}
|
|
37424
|
+
}
|
|
37425
|
+
},
|
|
37426
|
+
"GuidedAskResponse": {
|
|
37427
|
+
"type": "object",
|
|
37428
|
+
"required": [
|
|
37429
|
+
"answer"
|
|
37430
|
+
],
|
|
37431
|
+
"properties": {
|
|
37432
|
+
"answer": {
|
|
37433
|
+
"type": "string"
|
|
37434
|
+
}
|
|
37435
|
+
}
|
|
37436
|
+
},
|
|
37437
|
+
"TrialSetupIntentResponse": {
|
|
37438
|
+
"type": "object",
|
|
37439
|
+
"required": [
|
|
37440
|
+
"client_secret",
|
|
37441
|
+
"publishable_key"
|
|
37442
|
+
],
|
|
37443
|
+
"properties": {
|
|
37444
|
+
"client_secret": {
|
|
37445
|
+
"type": "string"
|
|
37446
|
+
},
|
|
37447
|
+
"publishable_key": {
|
|
37448
|
+
"type": "string"
|
|
37449
|
+
}
|
|
37450
|
+
}
|
|
37451
|
+
},
|
|
37452
|
+
"CreateTrialRuntimeRequest": {
|
|
37453
|
+
"type": "object",
|
|
37454
|
+
"required": [
|
|
37455
|
+
"setup_intent_id",
|
|
37456
|
+
"agent_id",
|
|
37457
|
+
"template",
|
|
37458
|
+
"name"
|
|
37459
|
+
],
|
|
37460
|
+
"properties": {
|
|
37461
|
+
"setup_intent_id": {
|
|
37462
|
+
"type": "string"
|
|
37463
|
+
},
|
|
37464
|
+
"agent_id": {
|
|
37465
|
+
"type": "string",
|
|
37466
|
+
"format": "uuid"
|
|
37467
|
+
},
|
|
37468
|
+
"template": {
|
|
37469
|
+
"type": "string"
|
|
37470
|
+
},
|
|
37471
|
+
"preset": {
|
|
37472
|
+
"type": "string",
|
|
37473
|
+
"description": "Defaults to CreateRuntimeRequest's own default (\"small\") when omitted."
|
|
37474
|
+
},
|
|
37475
|
+
"name": {
|
|
37476
|
+
"type": "string"
|
|
37477
|
+
},
|
|
37478
|
+
"always_on": {
|
|
37479
|
+
"type": "boolean",
|
|
37480
|
+
"default": false,
|
|
37481
|
+
"description": "Keeps the runtime running indefinitely instead of auto-stopping after the\ndefault idle window (maps to `idle_timeout_secs: 0`).\n"
|
|
37482
|
+
},
|
|
37483
|
+
"env_public": {
|
|
37484
|
+
"type": "object",
|
|
37485
|
+
"description": "Non-secret runtime config — in practice just `LLM_PROVIDER`/`LLM_MODEL`\nfrom the guided flow's model-choice step. Rejected if any key looks\nsecret-shaped (same `validate_env_public` the canonical runtime API uses).\n"
|
|
37486
|
+
}
|
|
37487
|
+
}
|
|
37488
|
+
},
|
|
37005
37489
|
"AgentKeysVaultResponse": {
|
|
37006
37490
|
"type": "object",
|
|
37007
37491
|
"properties": {
|
|
@@ -49189,6 +49673,132 @@
|
|
|
49189
49673
|
"type": "boolean"
|
|
49190
49674
|
}
|
|
49191
49675
|
}
|
|
49676
|
+
},
|
|
49677
|
+
"GrowthCountBucket": {
|
|
49678
|
+
"type": "object",
|
|
49679
|
+
"required": [
|
|
49680
|
+
"bucket",
|
|
49681
|
+
"count"
|
|
49682
|
+
],
|
|
49683
|
+
"properties": {
|
|
49684
|
+
"bucket": {
|
|
49685
|
+
"type": "string",
|
|
49686
|
+
"format": "date-time"
|
|
49687
|
+
},
|
|
49688
|
+
"count": {
|
|
49689
|
+
"type": "integer"
|
|
49690
|
+
}
|
|
49691
|
+
}
|
|
49692
|
+
},
|
|
49693
|
+
"GrowthTimeseriesResponse": {
|
|
49694
|
+
"type": "object",
|
|
49695
|
+
"required": [
|
|
49696
|
+
"vertical",
|
|
49697
|
+
"period",
|
|
49698
|
+
"bucket_unit",
|
|
49699
|
+
"points",
|
|
49700
|
+
"total",
|
|
49701
|
+
"prior_total"
|
|
49702
|
+
],
|
|
49703
|
+
"properties": {
|
|
49704
|
+
"vertical": {
|
|
49705
|
+
"type": "string"
|
|
49706
|
+
},
|
|
49707
|
+
"period": {
|
|
49708
|
+
"type": "string"
|
|
49709
|
+
},
|
|
49710
|
+
"bucket_unit": {
|
|
49711
|
+
"type": "string",
|
|
49712
|
+
"enum": [
|
|
49713
|
+
"hour",
|
|
49714
|
+
"day",
|
|
49715
|
+
"week"
|
|
49716
|
+
]
|
|
49717
|
+
},
|
|
49718
|
+
"points": {
|
|
49719
|
+
"type": "array",
|
|
49720
|
+
"items": {
|
|
49721
|
+
"$ref": "#/components/schemas/GrowthCountBucket"
|
|
49722
|
+
}
|
|
49723
|
+
},
|
|
49724
|
+
"total": {
|
|
49725
|
+
"type": "integer"
|
|
49726
|
+
},
|
|
49727
|
+
"prior_total": {
|
|
49728
|
+
"type": "integer"
|
|
49729
|
+
},
|
|
49730
|
+
"delta_pct": {
|
|
49731
|
+
"type": "number",
|
|
49732
|
+
"nullable": true,
|
|
49733
|
+
"description": "Null when both the current and prior totals are 0."
|
|
49734
|
+
},
|
|
49735
|
+
"notes": {
|
|
49736
|
+
"type": "string",
|
|
49737
|
+
"nullable": true,
|
|
49738
|
+
"description": "A known limitation worth surfacing for this vertical (e.g. a source table with no org_id to exclude test-fixture activity from). Null for the clean verticals.\n"
|
|
49739
|
+
}
|
|
49740
|
+
}
|
|
49741
|
+
},
|
|
49742
|
+
"RetentionResponse": {
|
|
49743
|
+
"type": "object",
|
|
49744
|
+
"required": [
|
|
49745
|
+
"window_days",
|
|
49746
|
+
"cohort_orgs",
|
|
49747
|
+
"retained_orgs"
|
|
49748
|
+
],
|
|
49749
|
+
"properties": {
|
|
49750
|
+
"window_days": {
|
|
49751
|
+
"type": "integer"
|
|
49752
|
+
},
|
|
49753
|
+
"cohort_orgs": {
|
|
49754
|
+
"type": "integer"
|
|
49755
|
+
},
|
|
49756
|
+
"retained_orgs": {
|
|
49757
|
+
"type": "integer"
|
|
49758
|
+
},
|
|
49759
|
+
"retention_pct": {
|
|
49760
|
+
"type": "number",
|
|
49761
|
+
"nullable": true,
|
|
49762
|
+
"description": "Null when there is no cohort yet (platform younger than the window)."
|
|
49763
|
+
}
|
|
49764
|
+
}
|
|
49765
|
+
},
|
|
49766
|
+
"WebSearchResult": {
|
|
49767
|
+
"type": "object",
|
|
49768
|
+
"required": [
|
|
49769
|
+
"title",
|
|
49770
|
+
"url",
|
|
49771
|
+
"snippet"
|
|
49772
|
+
],
|
|
49773
|
+
"properties": {
|
|
49774
|
+
"title": {
|
|
49775
|
+
"type": "string"
|
|
49776
|
+
},
|
|
49777
|
+
"url": {
|
|
49778
|
+
"type": "string"
|
|
49779
|
+
},
|
|
49780
|
+
"snippet": {
|
|
49781
|
+
"type": "string"
|
|
49782
|
+
}
|
|
49783
|
+
}
|
|
49784
|
+
},
|
|
49785
|
+
"WebSearchResponse": {
|
|
49786
|
+
"type": "object",
|
|
49787
|
+
"required": [
|
|
49788
|
+
"results",
|
|
49789
|
+
"provider"
|
|
49790
|
+
],
|
|
49791
|
+
"properties": {
|
|
49792
|
+
"results": {
|
|
49793
|
+
"type": "array",
|
|
49794
|
+
"items": {
|
|
49795
|
+
"$ref": "#/components/schemas/WebSearchResult"
|
|
49796
|
+
}
|
|
49797
|
+
},
|
|
49798
|
+
"provider": {
|
|
49799
|
+
"type": "string"
|
|
49800
|
+
}
|
|
49801
|
+
}
|
|
49192
49802
|
}
|
|
49193
49803
|
}
|
|
49194
49804
|
}
|
package/openapi.yaml
CHANGED
|
@@ -2,7 +2,7 @@ openapi: 3.1.0
|
|
|
2
2
|
|
|
3
3
|
info:
|
|
4
4
|
title: 1Claw API
|
|
5
|
-
version: "0.61.
|
|
5
|
+
version: "0.61.41"
|
|
6
6
|
description: |
|
|
7
7
|
Secure secret management for AI agents. Provides vaults, secrets,
|
|
8
8
|
policy-based access control, agent identity, Intents API,
|
|
@@ -142,6 +142,8 @@ tags:
|
|
|
142
142
|
description: MFA/passkey/password recovery escape hatch with admin approval
|
|
143
143
|
- name: Shamir KEK
|
|
144
144
|
description: Shamir secret-sharing for org-level Key Encryption Keys
|
|
145
|
+
- name: Agent Tools
|
|
146
|
+
description: Utility tools an agent calls directly on its own token (web search, etc.)
|
|
145
147
|
|
|
146
148
|
# =============================================================================
|
|
147
149
|
# PATHS
|
|
@@ -1979,7 +1981,7 @@ paths:
|
|
|
1979
1981
|
x-payment-info:
|
|
1980
1982
|
protocols: [x402]
|
|
1981
1983
|
pricingMode: fixed
|
|
1982
|
-
price: "0.
|
|
1984
|
+
price: "0.0225"
|
|
1983
1985
|
parameters:
|
|
1984
1986
|
- $ref: "#/components/parameters/VaultId"
|
|
1985
1987
|
- $ref: "#/components/parameters/SecretPath"
|
|
@@ -2009,7 +2011,7 @@ paths:
|
|
|
2009
2011
|
x-payment-info:
|
|
2010
2012
|
protocols: [x402]
|
|
2011
2013
|
pricingMode: fixed
|
|
2012
|
-
price: "0.
|
|
2014
|
+
price: "0.0045"
|
|
2013
2015
|
parameters:
|
|
2014
2016
|
- $ref: "#/components/parameters/VaultId"
|
|
2015
2017
|
- $ref: "#/components/parameters/SecretPath"
|
|
@@ -2734,7 +2736,8 @@ paths:
|
|
|
2734
2736
|
mode: paid
|
|
2735
2737
|
x-payment-info:
|
|
2736
2738
|
protocols: [x402]
|
|
2737
|
-
pricingMode:
|
|
2739
|
+
pricingMode: fixed
|
|
2740
|
+
price: "0.225"
|
|
2738
2741
|
description: |
|
|
2739
2742
|
Replay protection: send an optional **Idempotency-Key** header (e.g. UUID or opaque string).
|
|
2740
2743
|
Duplicate requests with the same key within 24 hours return the cached transaction response
|
|
@@ -2845,7 +2848,8 @@ paths:
|
|
|
2845
2848
|
mode: paid
|
|
2846
2849
|
x-payment-info:
|
|
2847
2850
|
protocols: [x402]
|
|
2848
|
-
pricingMode:
|
|
2851
|
+
pricingMode: fixed
|
|
2852
|
+
price: "0.225"
|
|
2849
2853
|
parameters:
|
|
2850
2854
|
- $ref: "#/components/parameters/AgentId"
|
|
2851
2855
|
requestBody:
|
|
@@ -2878,7 +2882,7 @@ paths:
|
|
|
2878
2882
|
x-payment-info:
|
|
2879
2883
|
protocols: [x402]
|
|
2880
2884
|
pricingMode: fixed
|
|
2881
|
-
price: "0.
|
|
2885
|
+
price: "0.225"
|
|
2882
2886
|
parameters:
|
|
2883
2887
|
- $ref: "#/components/parameters/AgentId"
|
|
2884
2888
|
requestBody:
|
|
@@ -2911,7 +2915,7 @@ paths:
|
|
|
2911
2915
|
x-payment-info:
|
|
2912
2916
|
protocols: [x402]
|
|
2913
2917
|
pricingMode: fixed
|
|
2914
|
-
price: "0.
|
|
2918
|
+
price: "0.225"
|
|
2915
2919
|
parameters:
|
|
2916
2920
|
- $ref: "#/components/parameters/AgentId"
|
|
2917
2921
|
requestBody:
|
|
@@ -4151,7 +4155,7 @@ paths:
|
|
|
4151
4155
|
x-payment-info:
|
|
4152
4156
|
protocols: [x402]
|
|
4153
4157
|
pricingMode: fixed
|
|
4154
|
-
price: "0.
|
|
4158
|
+
price: "0.009"
|
|
4155
4159
|
parameters:
|
|
4156
4160
|
- name: secret_id
|
|
4157
4161
|
in: path
|
|
@@ -4188,7 +4192,7 @@ paths:
|
|
|
4188
4192
|
x-payment-info:
|
|
4189
4193
|
protocols: [x402]
|
|
4190
4194
|
pricingMode: fixed
|
|
4191
|
-
price: "0.
|
|
4195
|
+
price: "0.0045"
|
|
4192
4196
|
parameters:
|
|
4193
4197
|
- name: share_id
|
|
4194
4198
|
in: path
|
|
@@ -4556,6 +4560,91 @@ paths:
|
|
|
4556
4560
|
schema:
|
|
4557
4561
|
$ref: "#/components/schemas/OnboardingProvisionResponse"
|
|
4558
4562
|
|
|
4563
|
+
/v1/onboarding/guided/status:
|
|
4564
|
+
get:
|
|
4565
|
+
tags: [Organization]
|
|
4566
|
+
summary: Guided onboarding eligibility + status
|
|
4567
|
+
description: |
|
|
4568
|
+
Whether this org is in the guided-onboarding rollout cohort, plus the
|
|
4569
|
+
same welcome-bundle progress fields `GET /v1/org/onboarding/status`
|
|
4570
|
+
reports. `eligible` decides whether the dashboard's redirect sends a
|
|
4571
|
+
new, still-unprovisioned user to the guided flow or the existing
|
|
4572
|
+
MCP-connect flow.
|
|
4573
|
+
operationId: getGuidedOnboardingStatus
|
|
4574
|
+
responses:
|
|
4575
|
+
"200":
|
|
4576
|
+
description: Guided onboarding status
|
|
4577
|
+
content:
|
|
4578
|
+
application/json:
|
|
4579
|
+
schema:
|
|
4580
|
+
$ref: "#/components/schemas/GuidedOnboardingStatus"
|
|
4581
|
+
|
|
4582
|
+
/v1/onboarding/guided/ask:
|
|
4583
|
+
post:
|
|
4584
|
+
tags: [Organization]
|
|
4585
|
+
summary: Ask the guided onboarding assistant a question
|
|
4586
|
+
description: |
|
|
4587
|
+
Scoped, one-shot Q&A for the guided wizard's "have a question?" panel.
|
|
4588
|
+
Not tied to an agent (many questions arrive before one exists yet) and
|
|
4589
|
+
not persisted as a conversation. The system prompt is fixed server-side
|
|
4590
|
+
and refuses anything outside vaults/policies/runtimes/billing/channels —
|
|
4591
|
+
never client-suppliable. Billed like any other Shroud LLM call: the
|
|
4592
|
+
caller's own bearer token is forwarded so usage attributes to their org.
|
|
4593
|
+
operationId: guidedOnboardingAsk
|
|
4594
|
+
requestBody:
|
|
4595
|
+
required: true
|
|
4596
|
+
content:
|
|
4597
|
+
application/json:
|
|
4598
|
+
schema:
|
|
4599
|
+
$ref: "#/components/schemas/GuidedAskRequest"
|
|
4600
|
+
responses:
|
|
4601
|
+
"200":
|
|
4602
|
+
description: Assistant's answer
|
|
4603
|
+
content:
|
|
4604
|
+
application/json:
|
|
4605
|
+
schema:
|
|
4606
|
+
$ref: "#/components/schemas/GuidedAskResponse"
|
|
4607
|
+
|
|
4608
|
+
/v1/onboarding/guided/trial/setup-intent:
|
|
4609
|
+
post:
|
|
4610
|
+
tags: [Organization]
|
|
4611
|
+
summary: Start a card-on-file trial runtime setup
|
|
4612
|
+
description: |
|
|
4613
|
+
Creates a Stripe SetupIntent for the org's customer so the guided
|
|
4614
|
+
onboarding wizard can collect a card with Stripe.js — no charge unless
|
|
4615
|
+
the trial runtime is kept past its trial window.
|
|
4616
|
+
operationId: createTrialSetupIntent
|
|
4617
|
+
responses:
|
|
4618
|
+
"200":
|
|
4619
|
+
description: SetupIntent client secret
|
|
4620
|
+
content:
|
|
4621
|
+
application/json:
|
|
4622
|
+
schema:
|
|
4623
|
+
$ref: "#/components/schemas/TrialSetupIntentResponse"
|
|
4624
|
+
|
|
4625
|
+
/v1/onboarding/guided/trial/runtime:
|
|
4626
|
+
post:
|
|
4627
|
+
tags: [Organization]
|
|
4628
|
+
summary: Create a card-gated trial runtime
|
|
4629
|
+
description: |
|
|
4630
|
+
Verifies the given SetupIntent succeeded, then delegates to the same
|
|
4631
|
+
runtime-creation logic `POST /v1/runtimes` uses. Only reachable once
|
|
4632
|
+
the guided onboarding wizard has a confirmed SetupIntent for the org.
|
|
4633
|
+
operationId: createTrialRuntime
|
|
4634
|
+
requestBody:
|
|
4635
|
+
required: true
|
|
4636
|
+
content:
|
|
4637
|
+
application/json:
|
|
4638
|
+
schema:
|
|
4639
|
+
$ref: "#/components/schemas/CreateTrialRuntimeRequest"
|
|
4640
|
+
responses:
|
|
4641
|
+
"201":
|
|
4642
|
+
description: Created runtime
|
|
4643
|
+
content:
|
|
4644
|
+
application/json:
|
|
4645
|
+
schema:
|
|
4646
|
+
$ref: "#/components/schemas/RuntimeResponse"
|
|
4647
|
+
|
|
4559
4648
|
/v1/org/status:
|
|
4560
4649
|
get:
|
|
4561
4650
|
tags: [Organization]
|
|
@@ -5115,7 +5204,7 @@ paths:
|
|
|
5115
5204
|
x-payment-info:
|
|
5116
5205
|
protocols: [x402]
|
|
5117
5206
|
pricingMode: fixed
|
|
5118
|
-
price: "0.
|
|
5207
|
+
price: "0.0024"
|
|
5119
5208
|
parameters:
|
|
5120
5209
|
- name: resource_id
|
|
5121
5210
|
in: query
|
|
@@ -7797,6 +7886,41 @@ paths:
|
|
|
7797
7886
|
"401":
|
|
7798
7887
|
description: Unauthorized
|
|
7799
7888
|
|
|
7889
|
+
/v1/shroud/activity/today:
|
|
7890
|
+
get:
|
|
7891
|
+
tags: [Shroud]
|
|
7892
|
+
summary: An agent's inference spend since 00:00 UTC
|
|
7893
|
+
operationId: getAgentSpendToday
|
|
7894
|
+
description: |
|
|
7895
|
+
What the agent has spent today per the vault's priced activity rows, plus
|
|
7896
|
+
requests and tokens and how many requests Shroud blocked for budget. Shroud
|
|
7897
|
+
syncs its daily-budget counter from this so `daily_budget_usd` holds across
|
|
7898
|
+
Shroud instances and restarts. Callable by the agent itself (its own id) or the
|
|
7899
|
+
platform service key — the same gate as activity ingest.
|
|
7900
|
+
security:
|
|
7901
|
+
- BearerAuth: []
|
|
7902
|
+
parameters:
|
|
7903
|
+
- in: query
|
|
7904
|
+
name: agent_id
|
|
7905
|
+
required: true
|
|
7906
|
+
schema: { type: string, format: uuid }
|
|
7907
|
+
responses:
|
|
7908
|
+
"200":
|
|
7909
|
+
description: Today's spend
|
|
7910
|
+
content:
|
|
7911
|
+
application/json:
|
|
7912
|
+
schema:
|
|
7913
|
+
type: object
|
|
7914
|
+
properties:
|
|
7915
|
+
agent_id: { type: string, format: uuid }
|
|
7916
|
+
day: { type: string, example: "2026-09-21" }
|
|
7917
|
+
cost_usd: { type: number }
|
|
7918
|
+
requests: { type: integer, format: int64 }
|
|
7919
|
+
tokens: { type: integer, format: int64 }
|
|
7920
|
+
blocked_by_budget: { type: integer, format: int64 }
|
|
7921
|
+
"403":
|
|
7922
|
+
$ref: "#/components/responses/Forbidden"
|
|
7923
|
+
|
|
7800
7924
|
/v1/shroud/threat-summary:
|
|
7801
7925
|
get:
|
|
7802
7926
|
tags: [Shroud]
|
|
@@ -11595,6 +11719,106 @@ paths:
|
|
|
11595
11719
|
"403":
|
|
11596
11720
|
$ref: "#/components/responses/Forbidden"
|
|
11597
11721
|
|
|
11722
|
+
/v1/admin/stats/growth-timeseries:
|
|
11723
|
+
get:
|
|
11724
|
+
tags: [Admin]
|
|
11725
|
+
summary: Time-bucketed usage series for one adoption/usage vertical (admin only)
|
|
11726
|
+
description: >
|
|
11727
|
+
Gap-filled counts (24h → hourly, 7d/30d/90d → daily, 365d → weekly)
|
|
11728
|
+
for one of 15 adoption/usage verticals, plus a period-over-period
|
|
11729
|
+
delta. Backs both the live admin analytics dashboard and the
|
|
11730
|
+
weekly investor report — same source, two surfaces.
|
|
11731
|
+
operationId: adminGrowthTimeseries
|
|
11732
|
+
parameters:
|
|
11733
|
+
- name: vertical
|
|
11734
|
+
in: query
|
|
11735
|
+
required: true
|
|
11736
|
+
schema:
|
|
11737
|
+
type: string
|
|
11738
|
+
enum:
|
|
11739
|
+
- signups_orgs
|
|
11740
|
+
- signups_users
|
|
11741
|
+
- subscriptions_new
|
|
11742
|
+
- subscriptions_churned
|
|
11743
|
+
- shroud_usage
|
|
11744
|
+
- shroud_security
|
|
11745
|
+
- intents_execution
|
|
11746
|
+
- intents_transactions
|
|
11747
|
+
- vault_usage
|
|
11748
|
+
- runtime_usage
|
|
11749
|
+
- memory_usage
|
|
11750
|
+
- automations
|
|
11751
|
+
- embedded_wallets_created
|
|
11752
|
+
- embedded_wallets_used
|
|
11753
|
+
- platform_api
|
|
11754
|
+
- name: period
|
|
11755
|
+
in: query
|
|
11756
|
+
schema:
|
|
11757
|
+
type: string
|
|
11758
|
+
enum: [24h, 7d, 30d, 90d, 365d]
|
|
11759
|
+
default: 30d
|
|
11760
|
+
responses:
|
|
11761
|
+
"200":
|
|
11762
|
+
description: Time-bucketed series for the requested vertical
|
|
11763
|
+
content:
|
|
11764
|
+
application/json:
|
|
11765
|
+
schema:
|
|
11766
|
+
$ref: "#/components/schemas/GrowthTimeseriesResponse"
|
|
11767
|
+
"400":
|
|
11768
|
+
$ref: "#/components/responses/BadRequest"
|
|
11769
|
+
"403":
|
|
11770
|
+
$ref: "#/components/responses/Forbidden"
|
|
11771
|
+
|
|
11772
|
+
/v1/admin/stats/retention:
|
|
11773
|
+
get:
|
|
11774
|
+
tags: [Admin]
|
|
11775
|
+
summary: Logo retention over a trailing window (admin only)
|
|
11776
|
+
description: >
|
|
11777
|
+
Percentage of organizations older than `window_days` that showed
|
|
11778
|
+
any platform activity (usage_events) in the trailing
|
|
11779
|
+
`window_days` — a simple, defensible retention proxy, not a full
|
|
11780
|
+
cohort matrix.
|
|
11781
|
+
operationId: adminRetention
|
|
11782
|
+
parameters:
|
|
11783
|
+
- name: window_days
|
|
11784
|
+
in: query
|
|
11785
|
+
schema:
|
|
11786
|
+
type: integer
|
|
11787
|
+
default: 30
|
|
11788
|
+
minimum: 1
|
|
11789
|
+
maximum: 365
|
|
11790
|
+
responses:
|
|
11791
|
+
"200":
|
|
11792
|
+
description: Retention over the requested window
|
|
11793
|
+
content:
|
|
11794
|
+
application/json:
|
|
11795
|
+
schema:
|
|
11796
|
+
$ref: "#/components/schemas/RetentionResponse"
|
|
11797
|
+
"403":
|
|
11798
|
+
$ref: "#/components/responses/Forbidden"
|
|
11799
|
+
|
|
11800
|
+
/v1/admin/llm-prices:
|
|
11801
|
+
get:
|
|
11802
|
+
tags: [Admin]
|
|
11803
|
+
summary: Global LLM price card (admin only)
|
|
11804
|
+
description: The platform-wide price card with no org-level overrides applied — see `/v1/spend/ai/prices` for the org-resolved view.
|
|
11805
|
+
operationId: adminListLlmPrices
|
|
11806
|
+
responses:
|
|
11807
|
+
"200":
|
|
11808
|
+
description: Prices
|
|
11809
|
+
content:
|
|
11810
|
+
application/json:
|
|
11811
|
+
schema:
|
|
11812
|
+
type: object
|
|
11813
|
+
required: [prices]
|
|
11814
|
+
properties:
|
|
11815
|
+
prices:
|
|
11816
|
+
type: array
|
|
11817
|
+
items:
|
|
11818
|
+
$ref: "#/components/schemas/LlmModelPrice"
|
|
11819
|
+
"403":
|
|
11820
|
+
$ref: "#/components/responses/Forbidden"
|
|
11821
|
+
|
|
11598
11822
|
/v1/agents/{agent_id}/pay/settings:
|
|
11599
11823
|
patch:
|
|
11600
11824
|
tags: [Pay]
|
|
@@ -17864,6 +18088,47 @@ paths:
|
|
|
17864
18088
|
description: Forbidden, or the plan does not include this
|
|
17865
18089
|
'404':
|
|
17866
18090
|
description: Not found
|
|
18091
|
+
/v1/tools/web-search:
|
|
18092
|
+
post:
|
|
18093
|
+
tags: [Agent Tools]
|
|
18094
|
+
summary: Platform-default web search fallback
|
|
18095
|
+
description: >
|
|
18096
|
+
Called on the agent's own token (not a Shroud-internal callback).
|
|
18097
|
+
Used by the runtime `web_search` tool when an agent has no
|
|
18098
|
+
BRAVE_API_KEY/TAVILY_API_KEY/SERP_API_KEY/ONECLAW_WEB_SEARCH_BINDING
|
|
18099
|
+
of its own — proxies to a shared, platform-provided Brave Search
|
|
18100
|
+
key under a hard monthly platform-wide cap.
|
|
18101
|
+
operationId: agentWebSearch
|
|
18102
|
+
requestBody:
|
|
18103
|
+
required: true
|
|
18104
|
+
content:
|
|
18105
|
+
application/json:
|
|
18106
|
+
schema:
|
|
18107
|
+
type: object
|
|
18108
|
+
required: [query]
|
|
18109
|
+
properties:
|
|
18110
|
+
query:
|
|
18111
|
+
type: string
|
|
18112
|
+
maxLength: 500
|
|
18113
|
+
num_results:
|
|
18114
|
+
type: integer
|
|
18115
|
+
default: 5
|
|
18116
|
+
responses:
|
|
18117
|
+
"200":
|
|
18118
|
+
description: Search results
|
|
18119
|
+
content:
|
|
18120
|
+
application/json:
|
|
18121
|
+
schema:
|
|
18122
|
+
$ref: "#/components/schemas/WebSearchResponse"
|
|
18123
|
+
"400":
|
|
18124
|
+
$ref: "#/components/responses/BadRequest"
|
|
18125
|
+
"403":
|
|
18126
|
+
description: Called on a non-agent token
|
|
18127
|
+
content:
|
|
18128
|
+
application/json:
|
|
18129
|
+
schema:
|
|
18130
|
+
$ref: "#/components/schemas/ProblemDetails"
|
|
18131
|
+
|
|
17867
18132
|
/v1/memory/shared-namespaces:
|
|
17868
18133
|
get:
|
|
17869
18134
|
tags: [Memory]
|
|
@@ -24016,6 +24281,13 @@ components:
|
|
|
24016
24281
|
if the org has one. Same field and meaning as on `POST /v1/agents`:
|
|
24017
24282
|
the first call returns 202 with the approval to collect, and the
|
|
24018
24283
|
retry passes its id here.
|
|
24284
|
+
guided:
|
|
24285
|
+
type: boolean
|
|
24286
|
+
default: false
|
|
24287
|
+
description: |
|
|
24288
|
+
Seeds `getting-started/**` instead of `examples/**` in the shared
|
|
24289
|
+
`default` vault — the guided onboarding wizard's own sample content,
|
|
24290
|
+
kept distinguishable from the MCP-connect developer flow's.
|
|
24019
24291
|
|
|
24020
24292
|
OnboardingProvisionResponse:
|
|
24021
24293
|
type: object
|
|
@@ -24034,6 +24306,75 @@ components:
|
|
|
24034
24306
|
verify_prompt:
|
|
24035
24307
|
type: string
|
|
24036
24308
|
|
|
24309
|
+
GuidedOnboardingStatus:
|
|
24310
|
+
allOf:
|
|
24311
|
+
- type: object
|
|
24312
|
+
required: [eligible]
|
|
24313
|
+
properties:
|
|
24314
|
+
eligible:
|
|
24315
|
+
type: boolean
|
|
24316
|
+
description: |
|
|
24317
|
+
Whether this org is in the guided-onboarding rollout cohort —
|
|
24318
|
+
decides whether the dashboard redirects a new user here or to
|
|
24319
|
+
the MCP-connect flow.
|
|
24320
|
+
- $ref: "#/components/schemas/OnboardingStatus"
|
|
24321
|
+
|
|
24322
|
+
GuidedAskRequest:
|
|
24323
|
+
type: object
|
|
24324
|
+
required: [question]
|
|
24325
|
+
properties:
|
|
24326
|
+
question:
|
|
24327
|
+
type: string
|
|
24328
|
+
maxLength: 500
|
|
24329
|
+
step:
|
|
24330
|
+
type: integer
|
|
24331
|
+
description: Accepted but not yet used to tailor the answer; reserved for later.
|
|
24332
|
+
|
|
24333
|
+
GuidedAskResponse:
|
|
24334
|
+
type: object
|
|
24335
|
+
required: [answer]
|
|
24336
|
+
properties:
|
|
24337
|
+
answer:
|
|
24338
|
+
type: string
|
|
24339
|
+
|
|
24340
|
+
TrialSetupIntentResponse:
|
|
24341
|
+
type: object
|
|
24342
|
+
required: [client_secret, publishable_key]
|
|
24343
|
+
properties:
|
|
24344
|
+
client_secret:
|
|
24345
|
+
type: string
|
|
24346
|
+
publishable_key:
|
|
24347
|
+
type: string
|
|
24348
|
+
|
|
24349
|
+
CreateTrialRuntimeRequest:
|
|
24350
|
+
type: object
|
|
24351
|
+
required: [setup_intent_id, agent_id, template, name]
|
|
24352
|
+
properties:
|
|
24353
|
+
setup_intent_id:
|
|
24354
|
+
type: string
|
|
24355
|
+
agent_id:
|
|
24356
|
+
type: string
|
|
24357
|
+
format: uuid
|
|
24358
|
+
template:
|
|
24359
|
+
type: string
|
|
24360
|
+
preset:
|
|
24361
|
+
type: string
|
|
24362
|
+
description: Defaults to CreateRuntimeRequest's own default ("small") when omitted.
|
|
24363
|
+
name:
|
|
24364
|
+
type: string
|
|
24365
|
+
always_on:
|
|
24366
|
+
type: boolean
|
|
24367
|
+
default: false
|
|
24368
|
+
description: |
|
|
24369
|
+
Keeps the runtime running indefinitely instead of auto-stopping after the
|
|
24370
|
+
default idle window (maps to `idle_timeout_secs: 0`).
|
|
24371
|
+
env_public:
|
|
24372
|
+
type: object
|
|
24373
|
+
description: |
|
|
24374
|
+
Non-secret runtime config — in practice just `LLM_PROVIDER`/`LLM_MODEL`
|
|
24375
|
+
from the guided flow's model-choice step. Rejected if any key looks
|
|
24376
|
+
secret-shaped (same `validate_env_public` the canonical runtime API uses).
|
|
24377
|
+
|
|
24037
24378
|
AgentKeysVaultResponse:
|
|
24038
24379
|
type: object
|
|
24039
24380
|
properties:
|
|
@@ -31869,3 +32210,81 @@ components:
|
|
|
31869
32210
|
properties:
|
|
31870
32211
|
valid:
|
|
31871
32212
|
type: boolean
|
|
32213
|
+
|
|
32214
|
+
GrowthCountBucket:
|
|
32215
|
+
type: object
|
|
32216
|
+
required: [bucket, count]
|
|
32217
|
+
properties:
|
|
32218
|
+
bucket:
|
|
32219
|
+
type: string
|
|
32220
|
+
format: date-time
|
|
32221
|
+
count:
|
|
32222
|
+
type: integer
|
|
32223
|
+
|
|
32224
|
+
GrowthTimeseriesResponse:
|
|
32225
|
+
type: object
|
|
32226
|
+
required: [vertical, period, bucket_unit, points, total, prior_total]
|
|
32227
|
+
properties:
|
|
32228
|
+
vertical:
|
|
32229
|
+
type: string
|
|
32230
|
+
period:
|
|
32231
|
+
type: string
|
|
32232
|
+
bucket_unit:
|
|
32233
|
+
type: string
|
|
32234
|
+
enum: [hour, day, week]
|
|
32235
|
+
points:
|
|
32236
|
+
type: array
|
|
32237
|
+
items:
|
|
32238
|
+
$ref: "#/components/schemas/GrowthCountBucket"
|
|
32239
|
+
total:
|
|
32240
|
+
type: integer
|
|
32241
|
+
prior_total:
|
|
32242
|
+
type: integer
|
|
32243
|
+
delta_pct:
|
|
32244
|
+
type: number
|
|
32245
|
+
nullable: true
|
|
32246
|
+
description: Null when both the current and prior totals are 0.
|
|
32247
|
+
notes:
|
|
32248
|
+
type: string
|
|
32249
|
+
nullable: true
|
|
32250
|
+
description: >
|
|
32251
|
+
A known limitation worth surfacing for this vertical (e.g.
|
|
32252
|
+
a source table with no org_id to exclude test-fixture
|
|
32253
|
+
activity from). Null for the clean verticals.
|
|
32254
|
+
|
|
32255
|
+
RetentionResponse:
|
|
32256
|
+
type: object
|
|
32257
|
+
required: [window_days, cohort_orgs, retained_orgs]
|
|
32258
|
+
properties:
|
|
32259
|
+
window_days:
|
|
32260
|
+
type: integer
|
|
32261
|
+
cohort_orgs:
|
|
32262
|
+
type: integer
|
|
32263
|
+
retained_orgs:
|
|
32264
|
+
type: integer
|
|
32265
|
+
retention_pct:
|
|
32266
|
+
type: number
|
|
32267
|
+
nullable: true
|
|
32268
|
+
description: Null when there is no cohort yet (platform younger than the window).
|
|
32269
|
+
|
|
32270
|
+
WebSearchResult:
|
|
32271
|
+
type: object
|
|
32272
|
+
required: [title, url, snippet]
|
|
32273
|
+
properties:
|
|
32274
|
+
title:
|
|
32275
|
+
type: string
|
|
32276
|
+
url:
|
|
32277
|
+
type: string
|
|
32278
|
+
snippet:
|
|
32279
|
+
type: string
|
|
32280
|
+
|
|
32281
|
+
WebSearchResponse:
|
|
32282
|
+
type: object
|
|
32283
|
+
required: [results, provider]
|
|
32284
|
+
properties:
|
|
32285
|
+
results:
|
|
32286
|
+
type: array
|
|
32287
|
+
items:
|
|
32288
|
+
$ref: "#/components/schemas/WebSearchResult"
|
|
32289
|
+
provider:
|
|
32290
|
+
type: string
|