@1claw/openapi-spec 0.61.39 → 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 +1311 -10
- package/openapi.yaml +729 -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"
|
|
@@ -79,6 +79,10 @@
|
|
|
79
79
|
"name": "Organization",
|
|
80
80
|
"description": "Org membership and roles"
|
|
81
81
|
},
|
|
82
|
+
{
|
|
83
|
+
"name": "Spend",
|
|
84
|
+
"description": "AI spend — inference cost per agent, provider and model, against budgets and caps"
|
|
85
|
+
},
|
|
82
86
|
{
|
|
83
87
|
"name": "Billing",
|
|
84
88
|
"description": "Subscriptions, credits, and usage"
|
|
@@ -218,6 +222,10 @@
|
|
|
218
222
|
{
|
|
219
223
|
"name": "Shamir KEK",
|
|
220
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.)"
|
|
221
229
|
}
|
|
222
230
|
],
|
|
223
231
|
"paths": {
|
|
@@ -2907,7 +2915,7 @@
|
|
|
2907
2915
|
"x402"
|
|
2908
2916
|
],
|
|
2909
2917
|
"pricingMode": "fixed",
|
|
2910
|
-
"price": "0.
|
|
2918
|
+
"price": "0.0225"
|
|
2911
2919
|
},
|
|
2912
2920
|
"parameters": [
|
|
2913
2921
|
{
|
|
@@ -2960,7 +2968,7 @@
|
|
|
2960
2968
|
"x402"
|
|
2961
2969
|
],
|
|
2962
2970
|
"pricingMode": "fixed",
|
|
2963
|
-
"price": "0.
|
|
2971
|
+
"price": "0.0045"
|
|
2964
2972
|
},
|
|
2965
2973
|
"parameters": [
|
|
2966
2974
|
{
|
|
@@ -4112,7 +4120,8 @@
|
|
|
4112
4120
|
"protocols": [
|
|
4113
4121
|
"x402"
|
|
4114
4122
|
],
|
|
4115
|
-
"pricingMode": "
|
|
4123
|
+
"pricingMode": "fixed",
|
|
4124
|
+
"price": "0.225"
|
|
4116
4125
|
},
|
|
4117
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",
|
|
4118
4127
|
"operationId": "submitTransaction",
|
|
@@ -4283,7 +4292,8 @@
|
|
|
4283
4292
|
"protocols": [
|
|
4284
4293
|
"x402"
|
|
4285
4294
|
],
|
|
4286
|
-
"pricingMode": "
|
|
4295
|
+
"pricingMode": "fixed",
|
|
4296
|
+
"price": "0.225"
|
|
4287
4297
|
},
|
|
4288
4298
|
"parameters": [
|
|
4289
4299
|
{
|
|
@@ -4338,7 +4348,7 @@
|
|
|
4338
4348
|
"x402"
|
|
4339
4349
|
],
|
|
4340
4350
|
"pricingMode": "fixed",
|
|
4341
|
-
"price": "0.
|
|
4351
|
+
"price": "0.225"
|
|
4342
4352
|
},
|
|
4343
4353
|
"parameters": [
|
|
4344
4354
|
{
|
|
@@ -4393,7 +4403,7 @@
|
|
|
4393
4403
|
"x402"
|
|
4394
4404
|
],
|
|
4395
4405
|
"pricingMode": "fixed",
|
|
4396
|
-
"price": "0.
|
|
4406
|
+
"price": "0.225"
|
|
4397
4407
|
},
|
|
4398
4408
|
"parameters": [
|
|
4399
4409
|
{
|
|
@@ -6403,7 +6413,7 @@
|
|
|
6403
6413
|
"x402"
|
|
6404
6414
|
],
|
|
6405
6415
|
"pricingMode": "fixed",
|
|
6406
|
-
"price": "0.
|
|
6416
|
+
"price": "0.009"
|
|
6407
6417
|
},
|
|
6408
6418
|
"parameters": [
|
|
6409
6419
|
{
|
|
@@ -6462,7 +6472,7 @@
|
|
|
6462
6472
|
"x402"
|
|
6463
6473
|
],
|
|
6464
6474
|
"pricingMode": "fixed",
|
|
6465
|
-
"price": "0.
|
|
6475
|
+
"price": "0.0045"
|
|
6466
6476
|
},
|
|
6467
6477
|
"parameters": [
|
|
6468
6478
|
{
|
|
@@ -6610,6 +6620,301 @@
|
|
|
6610
6620
|
}
|
|
6611
6621
|
}
|
|
6612
6622
|
},
|
|
6623
|
+
"/v1/spend/ai": {
|
|
6624
|
+
"get": {
|
|
6625
|
+
"tags": [
|
|
6626
|
+
"Spend"
|
|
6627
|
+
],
|
|
6628
|
+
"summary": "AI spend",
|
|
6629
|
+
"operationId": "getAiSpend",
|
|
6630
|
+
"description": "Inference spend for the org over a window (default the last 30 days):\ntotals with the previous equal-length window for comparison, a time series\nby provider, and breakdowns by provider, by model and by agent — each agent\nwith its `shroud_config` daily budget, today's spend against it and the\nrequests Shroud blocked for budget. `limits` carries router-key spend caps,\nthe credit balance and 1Claw's inspection fees for the window (a separate\nnumber from provider cost). Every request is priced at ingest from the\nprice card (`GET /v1/spend/ai/prices`); a request whose provider has no\ncard is counted as unpriced, not free. Human and platform callers only.\nBacks the dashboard's Spend tab; the same numbers reach an org's own\ncollector as OTEL metrics `ai.cost_usd`, `ai.tokens.input`, `ai.tokens.output`.\n",
|
|
6631
|
+
"parameters": [
|
|
6632
|
+
{
|
|
6633
|
+
"name": "from",
|
|
6634
|
+
"in": "query",
|
|
6635
|
+
"schema": {
|
|
6636
|
+
"type": "string",
|
|
6637
|
+
"format": "date-time"
|
|
6638
|
+
}
|
|
6639
|
+
},
|
|
6640
|
+
{
|
|
6641
|
+
"name": "to",
|
|
6642
|
+
"in": "query",
|
|
6643
|
+
"schema": {
|
|
6644
|
+
"type": "string",
|
|
6645
|
+
"format": "date-time"
|
|
6646
|
+
}
|
|
6647
|
+
},
|
|
6648
|
+
{
|
|
6649
|
+
"name": "interval",
|
|
6650
|
+
"in": "query",
|
|
6651
|
+
"schema": {
|
|
6652
|
+
"type": "string",
|
|
6653
|
+
"enum": [
|
|
6654
|
+
"day",
|
|
6655
|
+
"week",
|
|
6656
|
+
"month"
|
|
6657
|
+
],
|
|
6658
|
+
"default": "day"
|
|
6659
|
+
}
|
|
6660
|
+
},
|
|
6661
|
+
{
|
|
6662
|
+
"name": "agent_id",
|
|
6663
|
+
"in": "query",
|
|
6664
|
+
"schema": {
|
|
6665
|
+
"type": "string",
|
|
6666
|
+
"format": "uuid"
|
|
6667
|
+
}
|
|
6668
|
+
},
|
|
6669
|
+
{
|
|
6670
|
+
"name": "provider",
|
|
6671
|
+
"in": "query",
|
|
6672
|
+
"schema": {
|
|
6673
|
+
"type": "string"
|
|
6674
|
+
}
|
|
6675
|
+
}
|
|
6676
|
+
],
|
|
6677
|
+
"responses": {
|
|
6678
|
+
"200": {
|
|
6679
|
+
"description": "Spend",
|
|
6680
|
+
"content": {
|
|
6681
|
+
"application/json": {
|
|
6682
|
+
"schema": {
|
|
6683
|
+
"$ref": "#/components/schemas/AiSpend"
|
|
6684
|
+
}
|
|
6685
|
+
}
|
|
6686
|
+
}
|
|
6687
|
+
},
|
|
6688
|
+
"400": {
|
|
6689
|
+
"$ref": "#/components/responses/BadRequest"
|
|
6690
|
+
},
|
|
6691
|
+
"401": {
|
|
6692
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
6693
|
+
},
|
|
6694
|
+
"403": {
|
|
6695
|
+
"$ref": "#/components/responses/Forbidden"
|
|
6696
|
+
}
|
|
6697
|
+
}
|
|
6698
|
+
}
|
|
6699
|
+
},
|
|
6700
|
+
"/v1/spend/ai/export.csv": {
|
|
6701
|
+
"get": {
|
|
6702
|
+
"tags": [
|
|
6703
|
+
"Spend"
|
|
6704
|
+
],
|
|
6705
|
+
"summary": "AI spend as CSV",
|
|
6706
|
+
"operationId": "exportAiSpendCsv",
|
|
6707
|
+
"description": "One row per agent × provider × model in the window (same filters as `GET /v1/spend/ai`).",
|
|
6708
|
+
"parameters": [
|
|
6709
|
+
{
|
|
6710
|
+
"name": "from",
|
|
6711
|
+
"in": "query",
|
|
6712
|
+
"schema": {
|
|
6713
|
+
"type": "string",
|
|
6714
|
+
"format": "date-time"
|
|
6715
|
+
}
|
|
6716
|
+
},
|
|
6717
|
+
{
|
|
6718
|
+
"name": "to",
|
|
6719
|
+
"in": "query",
|
|
6720
|
+
"schema": {
|
|
6721
|
+
"type": "string",
|
|
6722
|
+
"format": "date-time"
|
|
6723
|
+
}
|
|
6724
|
+
},
|
|
6725
|
+
{
|
|
6726
|
+
"name": "agent_id",
|
|
6727
|
+
"in": "query",
|
|
6728
|
+
"schema": {
|
|
6729
|
+
"type": "string",
|
|
6730
|
+
"format": "uuid"
|
|
6731
|
+
}
|
|
6732
|
+
},
|
|
6733
|
+
{
|
|
6734
|
+
"name": "provider",
|
|
6735
|
+
"in": "query",
|
|
6736
|
+
"schema": {
|
|
6737
|
+
"type": "string"
|
|
6738
|
+
}
|
|
6739
|
+
}
|
|
6740
|
+
],
|
|
6741
|
+
"responses": {
|
|
6742
|
+
"200": {
|
|
6743
|
+
"description": "CSV",
|
|
6744
|
+
"content": {
|
|
6745
|
+
"text/csv": {
|
|
6746
|
+
"schema": {
|
|
6747
|
+
"type": "string"
|
|
6748
|
+
}
|
|
6749
|
+
}
|
|
6750
|
+
}
|
|
6751
|
+
},
|
|
6752
|
+
"401": {
|
|
6753
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
6754
|
+
},
|
|
6755
|
+
"403": {
|
|
6756
|
+
"$ref": "#/components/responses/Forbidden"
|
|
6757
|
+
}
|
|
6758
|
+
}
|
|
6759
|
+
}
|
|
6760
|
+
},
|
|
6761
|
+
"/v1/spend/ai/prices": {
|
|
6762
|
+
"get": {
|
|
6763
|
+
"tags": [
|
|
6764
|
+
"Spend"
|
|
6765
|
+
],
|
|
6766
|
+
"summary": "LLM price card",
|
|
6767
|
+
"operationId": "listLlmPrices",
|
|
6768
|
+
"description": "The global price card (public list prices per million tokens) plus this\norg's overrides. Matching: an org row beats a global row; among those the\nlongest `model_pattern` wins; a pattern ending in `%` is a prefix match.\n",
|
|
6769
|
+
"responses": {
|
|
6770
|
+
"200": {
|
|
6771
|
+
"description": "Prices",
|
|
6772
|
+
"content": {
|
|
6773
|
+
"application/json": {
|
|
6774
|
+
"schema": {
|
|
6775
|
+
"type": "object",
|
|
6776
|
+
"required": [
|
|
6777
|
+
"prices"
|
|
6778
|
+
],
|
|
6779
|
+
"properties": {
|
|
6780
|
+
"prices": {
|
|
6781
|
+
"type": "array",
|
|
6782
|
+
"items": {
|
|
6783
|
+
"$ref": "#/components/schemas/LlmModelPrice"
|
|
6784
|
+
}
|
|
6785
|
+
}
|
|
6786
|
+
}
|
|
6787
|
+
}
|
|
6788
|
+
}
|
|
6789
|
+
}
|
|
6790
|
+
},
|
|
6791
|
+
"401": {
|
|
6792
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
6793
|
+
}
|
|
6794
|
+
}
|
|
6795
|
+
},
|
|
6796
|
+
"put": {
|
|
6797
|
+
"tags": [
|
|
6798
|
+
"Spend"
|
|
6799
|
+
],
|
|
6800
|
+
"summary": "Set an org price override",
|
|
6801
|
+
"operationId": "upsertLlmPrice",
|
|
6802
|
+
"description": "Owner/admin. Upserts one override for this org; future requests are priced with it (history is not rewritten).",
|
|
6803
|
+
"requestBody": {
|
|
6804
|
+
"required": true,
|
|
6805
|
+
"content": {
|
|
6806
|
+
"application/json": {
|
|
6807
|
+
"schema": {
|
|
6808
|
+
"type": "object",
|
|
6809
|
+
"required": [
|
|
6810
|
+
"provider",
|
|
6811
|
+
"model_pattern",
|
|
6812
|
+
"input_usd_per_mtok",
|
|
6813
|
+
"output_usd_per_mtok"
|
|
6814
|
+
],
|
|
6815
|
+
"properties": {
|
|
6816
|
+
"provider": {
|
|
6817
|
+
"type": "string",
|
|
6818
|
+
"example": "anthropic"
|
|
6819
|
+
},
|
|
6820
|
+
"model_pattern": {
|
|
6821
|
+
"type": "string",
|
|
6822
|
+
"example": "claude-sonnet-5%"
|
|
6823
|
+
},
|
|
6824
|
+
"input_usd_per_mtok": {
|
|
6825
|
+
"type": "number",
|
|
6826
|
+
"example": 3
|
|
6827
|
+
},
|
|
6828
|
+
"output_usd_per_mtok": {
|
|
6829
|
+
"type": "number",
|
|
6830
|
+
"example": 15
|
|
6831
|
+
}
|
|
6832
|
+
}
|
|
6833
|
+
}
|
|
6834
|
+
}
|
|
6835
|
+
}
|
|
6836
|
+
},
|
|
6837
|
+
"responses": {
|
|
6838
|
+
"200": {
|
|
6839
|
+
"description": "The override",
|
|
6840
|
+
"content": {
|
|
6841
|
+
"application/json": {
|
|
6842
|
+
"schema": {
|
|
6843
|
+
"$ref": "#/components/schemas/LlmModelPrice"
|
|
6844
|
+
}
|
|
6845
|
+
}
|
|
6846
|
+
}
|
|
6847
|
+
},
|
|
6848
|
+
"400": {
|
|
6849
|
+
"$ref": "#/components/responses/BadRequest"
|
|
6850
|
+
},
|
|
6851
|
+
"403": {
|
|
6852
|
+
"$ref": "#/components/responses/Forbidden"
|
|
6853
|
+
}
|
|
6854
|
+
}
|
|
6855
|
+
}
|
|
6856
|
+
},
|
|
6857
|
+
"/v1/spend/ai/prices/{id}": {
|
|
6858
|
+
"delete": {
|
|
6859
|
+
"tags": [
|
|
6860
|
+
"Spend"
|
|
6861
|
+
],
|
|
6862
|
+
"summary": "Remove an org price override",
|
|
6863
|
+
"operationId": "deleteLlmPrice",
|
|
6864
|
+
"parameters": [
|
|
6865
|
+
{
|
|
6866
|
+
"name": "id",
|
|
6867
|
+
"in": "path",
|
|
6868
|
+
"required": true,
|
|
6869
|
+
"schema": {
|
|
6870
|
+
"type": "string",
|
|
6871
|
+
"format": "uuid"
|
|
6872
|
+
}
|
|
6873
|
+
}
|
|
6874
|
+
],
|
|
6875
|
+
"responses": {
|
|
6876
|
+
"204": {
|
|
6877
|
+
"description": "Removed"
|
|
6878
|
+
},
|
|
6879
|
+
"403": {
|
|
6880
|
+
"$ref": "#/components/responses/Forbidden"
|
|
6881
|
+
},
|
|
6882
|
+
"404": {
|
|
6883
|
+
"$ref": "#/components/responses/NotFound"
|
|
6884
|
+
}
|
|
6885
|
+
}
|
|
6886
|
+
}
|
|
6887
|
+
},
|
|
6888
|
+
"/v1/spend/ai/reprice": {
|
|
6889
|
+
"post": {
|
|
6890
|
+
"tags": [
|
|
6891
|
+
"Spend"
|
|
6892
|
+
],
|
|
6893
|
+
"summary": "Price the org's unpriced requests",
|
|
6894
|
+
"operationId": "repriceAiSpend",
|
|
6895
|
+
"description": "Owner/admin. Re-runs the price card over rows that had no price when they arrived (after adding a card for that provider). Already-priced rows are untouched.",
|
|
6896
|
+
"responses": {
|
|
6897
|
+
"200": {
|
|
6898
|
+
"description": "Count",
|
|
6899
|
+
"content": {
|
|
6900
|
+
"application/json": {
|
|
6901
|
+
"schema": {
|
|
6902
|
+
"type": "object",
|
|
6903
|
+
"properties": {
|
|
6904
|
+
"repriced": {
|
|
6905
|
+
"type": "integer"
|
|
6906
|
+
}
|
|
6907
|
+
}
|
|
6908
|
+
}
|
|
6909
|
+
}
|
|
6910
|
+
}
|
|
6911
|
+
},
|
|
6912
|
+
"403": {
|
|
6913
|
+
"$ref": "#/components/responses/Forbidden"
|
|
6914
|
+
}
|
|
6915
|
+
}
|
|
6916
|
+
}
|
|
6917
|
+
},
|
|
6613
6918
|
"/v1/org/overview": {
|
|
6614
6919
|
"get": {
|
|
6615
6920
|
"tags": [
|
|
@@ -6750,6 +7055,114 @@
|
|
|
6750
7055
|
}
|
|
6751
7056
|
}
|
|
6752
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
|
+
},
|
|
6753
7166
|
"/v1/org/status": {
|
|
6754
7167
|
"get": {
|
|
6755
7168
|
"tags": [
|
|
@@ -7607,7 +8020,7 @@
|
|
|
7607
8020
|
"x402"
|
|
7608
8021
|
],
|
|
7609
8022
|
"pricingMode": "fixed",
|
|
7610
|
-
"price": "0.
|
|
8023
|
+
"price": "0.0024"
|
|
7611
8024
|
},
|
|
7612
8025
|
"parameters": [
|
|
7613
8026
|
{
|
|
@@ -11999,6 +12412,72 @@
|
|
|
11999
12412
|
}
|
|
12000
12413
|
}
|
|
12001
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
|
+
},
|
|
12002
12481
|
"/v1/shroud/threat-summary": {
|
|
12003
12482
|
"get": {
|
|
12004
12483
|
"tags": [
|
|
@@ -17935,6 +18414,149 @@
|
|
|
17935
18414
|
}
|
|
17936
18415
|
}
|
|
17937
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
|
+
},
|
|
17938
18560
|
"/v1/agents/{agent_id}/pay/settings": {
|
|
17939
18561
|
"patch": {
|
|
17940
18562
|
"tags": [
|
|
@@ -27628,6 +28250,64 @@
|
|
|
27628
28250
|
}
|
|
27629
28251
|
}
|
|
27630
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
|
+
},
|
|
27631
28311
|
"/v1/memory/shared-namespaces": {
|
|
27632
28312
|
"get": {
|
|
27633
28313
|
"tags": [
|
|
@@ -36671,6 +37351,11 @@
|
|
|
36671
37351
|
"type": "string",
|
|
36672
37352
|
"format": "uuid",
|
|
36673
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"
|
|
36674
37359
|
}
|
|
36675
37360
|
}
|
|
36676
37361
|
},
|
|
@@ -36703,6 +37388,104 @@
|
|
|
36703
37388
|
}
|
|
36704
37389
|
}
|
|
36705
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
|
+
},
|
|
36706
37489
|
"AgentKeysVaultResponse": {
|
|
36707
37490
|
"type": "object",
|
|
36708
37491
|
"properties": {
|
|
@@ -43641,6 +44424,398 @@
|
|
|
43641
44424
|
}
|
|
43642
44425
|
}
|
|
43643
44426
|
},
|
|
44427
|
+
"LlmModelPrice": {
|
|
44428
|
+
"type": "object",
|
|
44429
|
+
"required": [
|
|
44430
|
+
"id",
|
|
44431
|
+
"provider",
|
|
44432
|
+
"model_pattern",
|
|
44433
|
+
"input_micro_usd_per_mtok",
|
|
44434
|
+
"output_micro_usd_per_mtok",
|
|
44435
|
+
"source",
|
|
44436
|
+
"updated_at"
|
|
44437
|
+
],
|
|
44438
|
+
"properties": {
|
|
44439
|
+
"id": {
|
|
44440
|
+
"type": "string",
|
|
44441
|
+
"format": "uuid"
|
|
44442
|
+
},
|
|
44443
|
+
"org_id": {
|
|
44444
|
+
"type": "string",
|
|
44445
|
+
"format": "uuid",
|
|
44446
|
+
"nullable": true,
|
|
44447
|
+
"description": "Null for a global row."
|
|
44448
|
+
},
|
|
44449
|
+
"provider": {
|
|
44450
|
+
"type": "string"
|
|
44451
|
+
},
|
|
44452
|
+
"model_pattern": {
|
|
44453
|
+
"type": "string"
|
|
44454
|
+
},
|
|
44455
|
+
"input_micro_usd_per_mtok": {
|
|
44456
|
+
"type": "integer",
|
|
44457
|
+
"format": "int64"
|
|
44458
|
+
},
|
|
44459
|
+
"output_micro_usd_per_mtok": {
|
|
44460
|
+
"type": "integer",
|
|
44461
|
+
"format": "int64"
|
|
44462
|
+
},
|
|
44463
|
+
"source": {
|
|
44464
|
+
"type": "string"
|
|
44465
|
+
},
|
|
44466
|
+
"updated_at": {
|
|
44467
|
+
"type": "string",
|
|
44468
|
+
"format": "date-time"
|
|
44469
|
+
}
|
|
44470
|
+
}
|
|
44471
|
+
},
|
|
44472
|
+
"AiSpendTotals": {
|
|
44473
|
+
"type": "object",
|
|
44474
|
+
"properties": {
|
|
44475
|
+
"cost_usd": {
|
|
44476
|
+
"type": "number"
|
|
44477
|
+
},
|
|
44478
|
+
"tokens_input": {
|
|
44479
|
+
"type": "integer",
|
|
44480
|
+
"format": "int64"
|
|
44481
|
+
},
|
|
44482
|
+
"tokens_output": {
|
|
44483
|
+
"type": "integer",
|
|
44484
|
+
"format": "int64"
|
|
44485
|
+
},
|
|
44486
|
+
"tokens": {
|
|
44487
|
+
"type": "integer",
|
|
44488
|
+
"format": "int64"
|
|
44489
|
+
},
|
|
44490
|
+
"requests": {
|
|
44491
|
+
"type": "integer",
|
|
44492
|
+
"format": "int64"
|
|
44493
|
+
},
|
|
44494
|
+
"blocked": {
|
|
44495
|
+
"type": "integer",
|
|
44496
|
+
"format": "int64"
|
|
44497
|
+
},
|
|
44498
|
+
"unpriced_requests": {
|
|
44499
|
+
"type": "integer",
|
|
44500
|
+
"format": "int64"
|
|
44501
|
+
},
|
|
44502
|
+
"agents": {
|
|
44503
|
+
"type": "integer",
|
|
44504
|
+
"format": "int64"
|
|
44505
|
+
},
|
|
44506
|
+
"models": {
|
|
44507
|
+
"type": "integer",
|
|
44508
|
+
"format": "int64"
|
|
44509
|
+
},
|
|
44510
|
+
"avg_cost_per_day": {
|
|
44511
|
+
"type": "number"
|
|
44512
|
+
},
|
|
44513
|
+
"cost_per_request": {
|
|
44514
|
+
"type": "number"
|
|
44515
|
+
},
|
|
44516
|
+
"cost_per_mtok": {
|
|
44517
|
+
"type": "number"
|
|
44518
|
+
}
|
|
44519
|
+
}
|
|
44520
|
+
},
|
|
44521
|
+
"AiSpend": {
|
|
44522
|
+
"type": "object",
|
|
44523
|
+
"required": [
|
|
44524
|
+
"window",
|
|
44525
|
+
"totals",
|
|
44526
|
+
"previous",
|
|
44527
|
+
"series",
|
|
44528
|
+
"by_provider",
|
|
44529
|
+
"by_model",
|
|
44530
|
+
"by_agent",
|
|
44531
|
+
"limits",
|
|
44532
|
+
"generated_at"
|
|
44533
|
+
],
|
|
44534
|
+
"properties": {
|
|
44535
|
+
"generated_at": {
|
|
44536
|
+
"type": "string",
|
|
44537
|
+
"format": "date-time"
|
|
44538
|
+
},
|
|
44539
|
+
"window": {
|
|
44540
|
+
"type": "object",
|
|
44541
|
+
"properties": {
|
|
44542
|
+
"from": {
|
|
44543
|
+
"type": "string",
|
|
44544
|
+
"format": "date-time"
|
|
44545
|
+
},
|
|
44546
|
+
"to": {
|
|
44547
|
+
"type": "string",
|
|
44548
|
+
"format": "date-time"
|
|
44549
|
+
},
|
|
44550
|
+
"interval": {
|
|
44551
|
+
"type": "string"
|
|
44552
|
+
},
|
|
44553
|
+
"previous_from": {
|
|
44554
|
+
"type": "string",
|
|
44555
|
+
"format": "date-time"
|
|
44556
|
+
},
|
|
44557
|
+
"previous_to": {
|
|
44558
|
+
"type": "string",
|
|
44559
|
+
"format": "date-time"
|
|
44560
|
+
},
|
|
44561
|
+
"days": {
|
|
44562
|
+
"type": "number"
|
|
44563
|
+
}
|
|
44564
|
+
}
|
|
44565
|
+
},
|
|
44566
|
+
"totals": {
|
|
44567
|
+
"$ref": "#/components/schemas/AiSpendTotals"
|
|
44568
|
+
},
|
|
44569
|
+
"previous": {
|
|
44570
|
+
"$ref": "#/components/schemas/AiSpendTotals"
|
|
44571
|
+
},
|
|
44572
|
+
"series": {
|
|
44573
|
+
"type": "array",
|
|
44574
|
+
"items": {
|
|
44575
|
+
"type": "object",
|
|
44576
|
+
"properties": {
|
|
44577
|
+
"bucket": {
|
|
44578
|
+
"type": "string",
|
|
44579
|
+
"format": "date-time"
|
|
44580
|
+
},
|
|
44581
|
+
"provider": {
|
|
44582
|
+
"type": "string"
|
|
44583
|
+
},
|
|
44584
|
+
"cost_usd": {
|
|
44585
|
+
"type": "number"
|
|
44586
|
+
},
|
|
44587
|
+
"tokens": {
|
|
44588
|
+
"type": "integer",
|
|
44589
|
+
"format": "int64"
|
|
44590
|
+
},
|
|
44591
|
+
"requests": {
|
|
44592
|
+
"type": "integer",
|
|
44593
|
+
"format": "int64"
|
|
44594
|
+
}
|
|
44595
|
+
}
|
|
44596
|
+
}
|
|
44597
|
+
},
|
|
44598
|
+
"by_provider": {
|
|
44599
|
+
"type": "array",
|
|
44600
|
+
"items": {
|
|
44601
|
+
"type": "object",
|
|
44602
|
+
"properties": {
|
|
44603
|
+
"provider": {
|
|
44604
|
+
"type": "string"
|
|
44605
|
+
},
|
|
44606
|
+
"cost_usd": {
|
|
44607
|
+
"type": "number"
|
|
44608
|
+
},
|
|
44609
|
+
"tokens": {
|
|
44610
|
+
"type": "integer",
|
|
44611
|
+
"format": "int64"
|
|
44612
|
+
},
|
|
44613
|
+
"requests": {
|
|
44614
|
+
"type": "integer",
|
|
44615
|
+
"format": "int64"
|
|
44616
|
+
},
|
|
44617
|
+
"previous_cost_usd": {
|
|
44618
|
+
"type": "number"
|
|
44619
|
+
},
|
|
44620
|
+
"share_pct": {
|
|
44621
|
+
"type": "number"
|
|
44622
|
+
},
|
|
44623
|
+
"trend_pct": {
|
|
44624
|
+
"type": "number",
|
|
44625
|
+
"nullable": true
|
|
44626
|
+
}
|
|
44627
|
+
}
|
|
44628
|
+
}
|
|
44629
|
+
},
|
|
44630
|
+
"by_model": {
|
|
44631
|
+
"type": "array",
|
|
44632
|
+
"items": {
|
|
44633
|
+
"type": "object",
|
|
44634
|
+
"properties": {
|
|
44635
|
+
"provider": {
|
|
44636
|
+
"type": "string"
|
|
44637
|
+
},
|
|
44638
|
+
"model": {
|
|
44639
|
+
"type": "string"
|
|
44640
|
+
},
|
|
44641
|
+
"cost_usd": {
|
|
44642
|
+
"type": "number"
|
|
44643
|
+
},
|
|
44644
|
+
"tokens_input": {
|
|
44645
|
+
"type": "integer",
|
|
44646
|
+
"format": "int64"
|
|
44647
|
+
},
|
|
44648
|
+
"tokens_output": {
|
|
44649
|
+
"type": "integer",
|
|
44650
|
+
"format": "int64"
|
|
44651
|
+
},
|
|
44652
|
+
"requests": {
|
|
44653
|
+
"type": "integer",
|
|
44654
|
+
"format": "int64"
|
|
44655
|
+
},
|
|
44656
|
+
"previous_cost_usd": {
|
|
44657
|
+
"type": "number"
|
|
44658
|
+
},
|
|
44659
|
+
"priced": {
|
|
44660
|
+
"type": "boolean"
|
|
44661
|
+
},
|
|
44662
|
+
"share_pct": {
|
|
44663
|
+
"type": "number"
|
|
44664
|
+
},
|
|
44665
|
+
"trend_pct": {
|
|
44666
|
+
"type": "number",
|
|
44667
|
+
"nullable": true
|
|
44668
|
+
}
|
|
44669
|
+
}
|
|
44670
|
+
}
|
|
44671
|
+
},
|
|
44672
|
+
"by_agent": {
|
|
44673
|
+
"type": "array",
|
|
44674
|
+
"items": {
|
|
44675
|
+
"type": "object",
|
|
44676
|
+
"properties": {
|
|
44677
|
+
"agent_id": {
|
|
44678
|
+
"type": "string",
|
|
44679
|
+
"format": "uuid"
|
|
44680
|
+
},
|
|
44681
|
+
"agent_name": {
|
|
44682
|
+
"type": "string"
|
|
44683
|
+
},
|
|
44684
|
+
"is_active": {
|
|
44685
|
+
"type": "boolean"
|
|
44686
|
+
},
|
|
44687
|
+
"cost_usd": {
|
|
44688
|
+
"type": "number"
|
|
44689
|
+
},
|
|
44690
|
+
"tokens": {
|
|
44691
|
+
"type": "integer",
|
|
44692
|
+
"format": "int64"
|
|
44693
|
+
},
|
|
44694
|
+
"requests": {
|
|
44695
|
+
"type": "integer",
|
|
44696
|
+
"format": "int64"
|
|
44697
|
+
},
|
|
44698
|
+
"blocked": {
|
|
44699
|
+
"type": "integer",
|
|
44700
|
+
"format": "int64"
|
|
44701
|
+
},
|
|
44702
|
+
"top_model": {
|
|
44703
|
+
"type": "string",
|
|
44704
|
+
"nullable": true
|
|
44705
|
+
},
|
|
44706
|
+
"top_provider": {
|
|
44707
|
+
"type": "string",
|
|
44708
|
+
"nullable": true
|
|
44709
|
+
},
|
|
44710
|
+
"previous_cost_usd": {
|
|
44711
|
+
"type": "number"
|
|
44712
|
+
},
|
|
44713
|
+
"last_request_at": {
|
|
44714
|
+
"type": "string",
|
|
44715
|
+
"format": "date-time",
|
|
44716
|
+
"nullable": true
|
|
44717
|
+
},
|
|
44718
|
+
"daily_budget_usd": {
|
|
44719
|
+
"type": "number",
|
|
44720
|
+
"nullable": true
|
|
44721
|
+
},
|
|
44722
|
+
"today_cost_usd": {
|
|
44723
|
+
"type": "number"
|
|
44724
|
+
},
|
|
44725
|
+
"blocked_by_budget": {
|
|
44726
|
+
"type": "integer",
|
|
44727
|
+
"format": "int64"
|
|
44728
|
+
},
|
|
44729
|
+
"max_tokens_per_request": {
|
|
44730
|
+
"type": "integer",
|
|
44731
|
+
"format": "int64",
|
|
44732
|
+
"nullable": true
|
|
44733
|
+
},
|
|
44734
|
+
"max_requests_per_day": {
|
|
44735
|
+
"type": "integer",
|
|
44736
|
+
"format": "int64",
|
|
44737
|
+
"nullable": true
|
|
44738
|
+
},
|
|
44739
|
+
"share_pct": {
|
|
44740
|
+
"type": "number"
|
|
44741
|
+
},
|
|
44742
|
+
"trend_pct": {
|
|
44743
|
+
"type": "number",
|
|
44744
|
+
"nullable": true
|
|
44745
|
+
},
|
|
44746
|
+
"budget_used_pct": {
|
|
44747
|
+
"type": "number",
|
|
44748
|
+
"nullable": true
|
|
44749
|
+
}
|
|
44750
|
+
}
|
|
44751
|
+
}
|
|
44752
|
+
},
|
|
44753
|
+
"limits": {
|
|
44754
|
+
"type": "object",
|
|
44755
|
+
"properties": {
|
|
44756
|
+
"agents_with_daily_budget": {
|
|
44757
|
+
"type": "integer",
|
|
44758
|
+
"format": "int64"
|
|
44759
|
+
},
|
|
44760
|
+
"agents_over_80pct": {
|
|
44761
|
+
"type": "integer",
|
|
44762
|
+
"format": "int64"
|
|
44763
|
+
},
|
|
44764
|
+
"agents_at_cap": {
|
|
44765
|
+
"type": "integer",
|
|
44766
|
+
"format": "int64"
|
|
44767
|
+
},
|
|
44768
|
+
"blocked_by_budget": {
|
|
44769
|
+
"type": "integer",
|
|
44770
|
+
"format": "int64"
|
|
44771
|
+
},
|
|
44772
|
+
"router_keys": {
|
|
44773
|
+
"type": "array",
|
|
44774
|
+
"items": {
|
|
44775
|
+
"type": "object",
|
|
44776
|
+
"properties": {
|
|
44777
|
+
"key_id": {
|
|
44778
|
+
"type": "string",
|
|
44779
|
+
"format": "uuid"
|
|
44780
|
+
},
|
|
44781
|
+
"agent_id": {
|
|
44782
|
+
"type": "string",
|
|
44783
|
+
"format": "uuid"
|
|
44784
|
+
},
|
|
44785
|
+
"agent_name": {
|
|
44786
|
+
"type": "string"
|
|
44787
|
+
},
|
|
44788
|
+
"name": {
|
|
44789
|
+
"type": "string"
|
|
44790
|
+
},
|
|
44791
|
+
"spent_usd": {
|
|
44792
|
+
"type": "number"
|
|
44793
|
+
},
|
|
44794
|
+
"cap_usd": {
|
|
44795
|
+
"type": "number",
|
|
44796
|
+
"nullable": true
|
|
44797
|
+
},
|
|
44798
|
+
"last_used_at": {
|
|
44799
|
+
"type": "string",
|
|
44800
|
+
"format": "date-time",
|
|
44801
|
+
"nullable": true
|
|
44802
|
+
}
|
|
44803
|
+
}
|
|
44804
|
+
}
|
|
44805
|
+
},
|
|
44806
|
+
"credit_balance_usd": {
|
|
44807
|
+
"type": "number"
|
|
44808
|
+
},
|
|
44809
|
+
"inspection_fees_usd": {
|
|
44810
|
+
"type": "number"
|
|
44811
|
+
},
|
|
44812
|
+
"billing_tier": {
|
|
44813
|
+
"type": "string"
|
|
44814
|
+
}
|
|
44815
|
+
}
|
|
44816
|
+
}
|
|
44817
|
+
}
|
|
44818
|
+
},
|
|
43644
44819
|
"OrgOverview": {
|
|
43645
44820
|
"type": "object",
|
|
43646
44821
|
"required": [
|
|
@@ -48498,6 +49673,132 @@
|
|
|
48498
49673
|
"type": "boolean"
|
|
48499
49674
|
}
|
|
48500
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
|
+
}
|
|
48501
49802
|
}
|
|
48502
49803
|
}
|
|
48503
49804
|
}
|