@1claw/openapi-spec 0.32.0 → 0.33.0
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/README.md +1 -1
- package/openapi.json +950 -55
- package/openapi.yaml +566 -3
- package/package.json +1 -1
package/openapi.json
CHANGED
|
@@ -114,6 +114,10 @@
|
|
|
114
114
|
{
|
|
115
115
|
"name": "Platform",
|
|
116
116
|
"description": "Platform API for developers building on 1Claw (plt_ keys, user provisioning, bootstrap templates)"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"name": "OAuth",
|
|
120
|
+
"description": "OAuth 2.0 authorization server (PKCE, consent, token exchange, OIDC UserInfo)"
|
|
117
121
|
}
|
|
118
122
|
],
|
|
119
123
|
"paths": {
|
|
@@ -3693,7 +3697,7 @@
|
|
|
3693
3697
|
"Bankr Keys"
|
|
3694
3698
|
],
|
|
3695
3699
|
"summary": "Lease a short-lived Bankr wallet API key",
|
|
3696
|
-
"description": "Provision a scoped, time-limited Bankr wallet API key for an agent.\
|
|
3700
|
+
"description": "Provision a scoped, time-limited Bankr wallet API key for an agent.\n**Privileged, deny-by-default:** agent callers need an explicit access policy\non `agents/{agent_id}/bankr/*` in the `__agent-keys` vault (JWT scope\n`agents/{agent_id}/bankr/lease`). Agents may only lease for their own ID.\nThe `bk_usr_` key is **omitted** from the JSON response for agent JWTs —\nstored server-side for Shroud resolution. Human callers receive `api_key` once.\nRequires `BANKR_PARTNER_KEY` on Vault. Agent default TTL 15 min when omitted;\nhuman/org default 1 hour (`BANKR_DEFAULT_LEASE_TTL_SECS`). Recommend 5–15 min\nfor autonomous agents. Max TTL 24 hours. Max 5 concurrent leases per agent.\n",
|
|
3697
3701
|
"operationId": "leaseBankrKey",
|
|
3698
3702
|
"parameters": [
|
|
3699
3703
|
{
|
|
@@ -6106,6 +6110,46 @@
|
|
|
6106
6110
|
}
|
|
6107
6111
|
}
|
|
6108
6112
|
},
|
|
6113
|
+
"/v1/treasury/wallets/spend-policy": {
|
|
6114
|
+
"get": {
|
|
6115
|
+
"tags": [
|
|
6116
|
+
"Treasury Wallets"
|
|
6117
|
+
],
|
|
6118
|
+
"summary": "Get effective spend policy for current user",
|
|
6119
|
+
"description": "Returns the effective spend policy governing the authenticated user's\nwallet transactions. Resolves from per-user override (if set) or the\napp-wide default. Returns null if no policy is configured.\n",
|
|
6120
|
+
"operationId": "getEffectiveSpendPolicy",
|
|
6121
|
+
"security": [
|
|
6122
|
+
{
|
|
6123
|
+
"BearerAuth": []
|
|
6124
|
+
}
|
|
6125
|
+
],
|
|
6126
|
+
"responses": {
|
|
6127
|
+
"200": {
|
|
6128
|
+
"description": "Effective spend policy",
|
|
6129
|
+
"content": {
|
|
6130
|
+
"application/json": {
|
|
6131
|
+
"schema": {
|
|
6132
|
+
"type": "object",
|
|
6133
|
+
"properties": {
|
|
6134
|
+
"policy": {
|
|
6135
|
+
"nullable": true,
|
|
6136
|
+
"allOf": [
|
|
6137
|
+
{
|
|
6138
|
+
"$ref": "#/components/schemas/SpendPolicyResponse"
|
|
6139
|
+
}
|
|
6140
|
+
]
|
|
6141
|
+
}
|
|
6142
|
+
}
|
|
6143
|
+
}
|
|
6144
|
+
}
|
|
6145
|
+
}
|
|
6146
|
+
},
|
|
6147
|
+
"401": {
|
|
6148
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
6149
|
+
}
|
|
6150
|
+
}
|
|
6151
|
+
}
|
|
6152
|
+
},
|
|
6109
6153
|
"/v1/webhooks": {
|
|
6110
6154
|
"post": {
|
|
6111
6155
|
"tags": [
|
|
@@ -7622,6 +7666,200 @@
|
|
|
7622
7666
|
}
|
|
7623
7667
|
}
|
|
7624
7668
|
},
|
|
7669
|
+
"/v1/platform/apps/{appId}/spend-policies": {
|
|
7670
|
+
"post": {
|
|
7671
|
+
"tags": [
|
|
7672
|
+
"Platform"
|
|
7673
|
+
],
|
|
7674
|
+
"summary": "Create wallet spend policy",
|
|
7675
|
+
"description": "Create an app-wide spend policy that governs what embedded wallet users\ncan do with their wallets. Policies apply to all connected users by default\nand can be overridden per-user via connection-level policies.\n",
|
|
7676
|
+
"operationId": "createSpendPolicy",
|
|
7677
|
+
"security": [
|
|
7678
|
+
{
|
|
7679
|
+
"BearerAuth": []
|
|
7680
|
+
}
|
|
7681
|
+
],
|
|
7682
|
+
"parameters": [
|
|
7683
|
+
{
|
|
7684
|
+
"in": "path",
|
|
7685
|
+
"name": "appId",
|
|
7686
|
+
"required": true,
|
|
7687
|
+
"schema": {
|
|
7688
|
+
"type": "string",
|
|
7689
|
+
"format": "uuid"
|
|
7690
|
+
}
|
|
7691
|
+
}
|
|
7692
|
+
],
|
|
7693
|
+
"requestBody": {
|
|
7694
|
+
"required": true,
|
|
7695
|
+
"content": {
|
|
7696
|
+
"application/json": {
|
|
7697
|
+
"schema": {
|
|
7698
|
+
"$ref": "#/components/schemas/CreateSpendPolicyRequest"
|
|
7699
|
+
}
|
|
7700
|
+
}
|
|
7701
|
+
}
|
|
7702
|
+
},
|
|
7703
|
+
"responses": {
|
|
7704
|
+
"201": {
|
|
7705
|
+
"description": "Spend policy created",
|
|
7706
|
+
"content": {
|
|
7707
|
+
"application/json": {
|
|
7708
|
+
"schema": {
|
|
7709
|
+
"$ref": "#/components/schemas/SpendPolicyResponse"
|
|
7710
|
+
}
|
|
7711
|
+
}
|
|
7712
|
+
}
|
|
7713
|
+
},
|
|
7714
|
+
"400": {
|
|
7715
|
+
"$ref": "#/components/responses/BadRequest"
|
|
7716
|
+
},
|
|
7717
|
+
"403": {
|
|
7718
|
+
"$ref": "#/components/responses/Forbidden"
|
|
7719
|
+
}
|
|
7720
|
+
}
|
|
7721
|
+
},
|
|
7722
|
+
"get": {
|
|
7723
|
+
"tags": [
|
|
7724
|
+
"Platform"
|
|
7725
|
+
],
|
|
7726
|
+
"summary": "List spend policies for app",
|
|
7727
|
+
"description": "Returns all spend policies configured for the platform app.",
|
|
7728
|
+
"operationId": "listSpendPolicies",
|
|
7729
|
+
"security": [
|
|
7730
|
+
{
|
|
7731
|
+
"BearerAuth": []
|
|
7732
|
+
}
|
|
7733
|
+
],
|
|
7734
|
+
"parameters": [
|
|
7735
|
+
{
|
|
7736
|
+
"in": "path",
|
|
7737
|
+
"name": "appId",
|
|
7738
|
+
"required": true,
|
|
7739
|
+
"schema": {
|
|
7740
|
+
"type": "string",
|
|
7741
|
+
"format": "uuid"
|
|
7742
|
+
}
|
|
7743
|
+
}
|
|
7744
|
+
],
|
|
7745
|
+
"responses": {
|
|
7746
|
+
"200": {
|
|
7747
|
+
"description": "Spend policies",
|
|
7748
|
+
"content": {
|
|
7749
|
+
"application/json": {
|
|
7750
|
+
"schema": {
|
|
7751
|
+
"type": "object",
|
|
7752
|
+
"properties": {
|
|
7753
|
+
"policies": {
|
|
7754
|
+
"type": "array",
|
|
7755
|
+
"items": {
|
|
7756
|
+
"$ref": "#/components/schemas/SpendPolicyResponse"
|
|
7757
|
+
}
|
|
7758
|
+
}
|
|
7759
|
+
}
|
|
7760
|
+
}
|
|
7761
|
+
}
|
|
7762
|
+
}
|
|
7763
|
+
}
|
|
7764
|
+
}
|
|
7765
|
+
}
|
|
7766
|
+
},
|
|
7767
|
+
"/v1/platform/apps/{appId}/spend-policies/{policyId}": {
|
|
7768
|
+
"delete": {
|
|
7769
|
+
"tags": [
|
|
7770
|
+
"Platform"
|
|
7771
|
+
],
|
|
7772
|
+
"summary": "Delete a spend policy",
|
|
7773
|
+
"operationId": "deleteSpendPolicy",
|
|
7774
|
+
"security": [
|
|
7775
|
+
{
|
|
7776
|
+
"BearerAuth": []
|
|
7777
|
+
}
|
|
7778
|
+
],
|
|
7779
|
+
"parameters": [
|
|
7780
|
+
{
|
|
7781
|
+
"in": "path",
|
|
7782
|
+
"name": "appId",
|
|
7783
|
+
"required": true,
|
|
7784
|
+
"schema": {
|
|
7785
|
+
"type": "string",
|
|
7786
|
+
"format": "uuid"
|
|
7787
|
+
}
|
|
7788
|
+
},
|
|
7789
|
+
{
|
|
7790
|
+
"in": "path",
|
|
7791
|
+
"name": "policyId",
|
|
7792
|
+
"required": true,
|
|
7793
|
+
"schema": {
|
|
7794
|
+
"type": "string",
|
|
7795
|
+
"format": "uuid"
|
|
7796
|
+
}
|
|
7797
|
+
}
|
|
7798
|
+
],
|
|
7799
|
+
"responses": {
|
|
7800
|
+
"204": {
|
|
7801
|
+
"description": "Deleted"
|
|
7802
|
+
},
|
|
7803
|
+
"404": {
|
|
7804
|
+
"$ref": "#/components/responses/NotFound"
|
|
7805
|
+
}
|
|
7806
|
+
}
|
|
7807
|
+
}
|
|
7808
|
+
},
|
|
7809
|
+
"/v1/platform/connections/{connectionId}/spend-policy": {
|
|
7810
|
+
"put": {
|
|
7811
|
+
"tags": [
|
|
7812
|
+
"Platform"
|
|
7813
|
+
],
|
|
7814
|
+
"summary": "Set per-user spend policy override",
|
|
7815
|
+
"description": "Override the app-wide spend policy for a specific connected user. This\npolicy takes precedence over the app default. Remove by deleting the\nconnection-level policy.\n",
|
|
7816
|
+
"operationId": "setUserSpendPolicy",
|
|
7817
|
+
"security": [
|
|
7818
|
+
{
|
|
7819
|
+
"BearerAuth": []
|
|
7820
|
+
}
|
|
7821
|
+
],
|
|
7822
|
+
"parameters": [
|
|
7823
|
+
{
|
|
7824
|
+
"in": "path",
|
|
7825
|
+
"name": "connectionId",
|
|
7826
|
+
"required": true,
|
|
7827
|
+
"schema": {
|
|
7828
|
+
"type": "string",
|
|
7829
|
+
"format": "uuid"
|
|
7830
|
+
}
|
|
7831
|
+
}
|
|
7832
|
+
],
|
|
7833
|
+
"requestBody": {
|
|
7834
|
+
"required": true,
|
|
7835
|
+
"content": {
|
|
7836
|
+
"application/json": {
|
|
7837
|
+
"schema": {
|
|
7838
|
+
"$ref": "#/components/schemas/CreateSpendPolicyRequest"
|
|
7839
|
+
}
|
|
7840
|
+
}
|
|
7841
|
+
}
|
|
7842
|
+
},
|
|
7843
|
+
"responses": {
|
|
7844
|
+
"200": {
|
|
7845
|
+
"description": "Spend policy set",
|
|
7846
|
+
"content": {
|
|
7847
|
+
"application/json": {
|
|
7848
|
+
"schema": {
|
|
7849
|
+
"$ref": "#/components/schemas/SpendPolicyResponse"
|
|
7850
|
+
}
|
|
7851
|
+
}
|
|
7852
|
+
}
|
|
7853
|
+
},
|
|
7854
|
+
"400": {
|
|
7855
|
+
"$ref": "#/components/responses/BadRequest"
|
|
7856
|
+
},
|
|
7857
|
+
"403": {
|
|
7858
|
+
"$ref": "#/components/responses/Forbidden"
|
|
7859
|
+
}
|
|
7860
|
+
}
|
|
7861
|
+
}
|
|
7862
|
+
},
|
|
7625
7863
|
"/v1/approvals": {
|
|
7626
7864
|
"get": {
|
|
7627
7865
|
"tags": [
|
|
@@ -8251,60 +8489,475 @@
|
|
|
8251
8489
|
}
|
|
8252
8490
|
}
|
|
8253
8491
|
}
|
|
8254
|
-
}
|
|
8255
|
-
},
|
|
8256
|
-
"components": {
|
|
8257
|
-
"securitySchemes": {
|
|
8258
|
-
"BearerAuth": {
|
|
8259
|
-
"type": "http",
|
|
8260
|
-
"scheme": "bearer",
|
|
8261
|
-
"bearerFormat": "JWT"
|
|
8262
|
-
},
|
|
8263
|
-
"ApiKeyAuth": {
|
|
8264
|
-
"type": "http",
|
|
8265
|
-
"scheme": "bearer",
|
|
8266
|
-
"description": "1ck_ prefixed API key used as Bearer token"
|
|
8267
|
-
}
|
|
8268
8492
|
},
|
|
8269
|
-
"
|
|
8270
|
-
"
|
|
8271
|
-
"
|
|
8272
|
-
|
|
8273
|
-
|
|
8274
|
-
"
|
|
8275
|
-
|
|
8276
|
-
|
|
8277
|
-
|
|
8278
|
-
|
|
8279
|
-
|
|
8280
|
-
|
|
8281
|
-
|
|
8282
|
-
|
|
8283
|
-
|
|
8284
|
-
|
|
8285
|
-
|
|
8286
|
-
|
|
8287
|
-
|
|
8288
|
-
|
|
8289
|
-
|
|
8290
|
-
|
|
8291
|
-
|
|
8292
|
-
|
|
8293
|
-
|
|
8294
|
-
|
|
8295
|
-
|
|
8296
|
-
|
|
8297
|
-
|
|
8298
|
-
|
|
8299
|
-
|
|
8300
|
-
|
|
8301
|
-
|
|
8302
|
-
|
|
8303
|
-
"
|
|
8304
|
-
|
|
8305
|
-
|
|
8306
|
-
|
|
8307
|
-
|
|
8493
|
+
"/v1/auth/email-otp/send": {
|
|
8494
|
+
"post": {
|
|
8495
|
+
"tags": [
|
|
8496
|
+
"Authentication"
|
|
8497
|
+
],
|
|
8498
|
+
"summary": "Send email OTP code",
|
|
8499
|
+
"description": "Sends a 6-digit one-time code to the specified email address.\nNo authentication required. Rate-limited per IP and per email.\n",
|
|
8500
|
+
"operationId": "sendEmailOtp",
|
|
8501
|
+
"security": [],
|
|
8502
|
+
"requestBody": {
|
|
8503
|
+
"required": true,
|
|
8504
|
+
"content": {
|
|
8505
|
+
"application/json": {
|
|
8506
|
+
"schema": {
|
|
8507
|
+
"type": "object",
|
|
8508
|
+
"required": [
|
|
8509
|
+
"email"
|
|
8510
|
+
],
|
|
8511
|
+
"properties": {
|
|
8512
|
+
"email": {
|
|
8513
|
+
"type": "string",
|
|
8514
|
+
"format": "email"
|
|
8515
|
+
},
|
|
8516
|
+
"platform_app_id": {
|
|
8517
|
+
"type": "string",
|
|
8518
|
+
"format": "uuid",
|
|
8519
|
+
"description": "Optional platform app context for embedded wallet flows"
|
|
8520
|
+
}
|
|
8521
|
+
}
|
|
8522
|
+
}
|
|
8523
|
+
}
|
|
8524
|
+
}
|
|
8525
|
+
},
|
|
8526
|
+
"responses": {
|
|
8527
|
+
"200": {
|
|
8528
|
+
"description": "OTP sent",
|
|
8529
|
+
"content": {
|
|
8530
|
+
"application/json": {
|
|
8531
|
+
"schema": {
|
|
8532
|
+
"type": "object",
|
|
8533
|
+
"properties": {
|
|
8534
|
+
"status": {
|
|
8535
|
+
"type": "string",
|
|
8536
|
+
"enum": [
|
|
8537
|
+
"sent"
|
|
8538
|
+
]
|
|
8539
|
+
}
|
|
8540
|
+
}
|
|
8541
|
+
}
|
|
8542
|
+
}
|
|
8543
|
+
}
|
|
8544
|
+
},
|
|
8545
|
+
"429": {
|
|
8546
|
+
"description": "Rate limited"
|
|
8547
|
+
}
|
|
8548
|
+
}
|
|
8549
|
+
}
|
|
8550
|
+
},
|
|
8551
|
+
"/v1/auth/email-otp/verify": {
|
|
8552
|
+
"post": {
|
|
8553
|
+
"tags": [
|
|
8554
|
+
"Authentication"
|
|
8555
|
+
],
|
|
8556
|
+
"summary": "Verify email OTP and get JWT",
|
|
8557
|
+
"description": "Verifies the 6-digit code sent to the user's email. If the user does not\nexist, a new account is created. Optionally auto-provisions treasury wallets\nfor the specified chains. Returns a JWT for subsequent API calls.\n",
|
|
8558
|
+
"operationId": "verifyEmailOtp",
|
|
8559
|
+
"security": [],
|
|
8560
|
+
"requestBody": {
|
|
8561
|
+
"required": true,
|
|
8562
|
+
"content": {
|
|
8563
|
+
"application/json": {
|
|
8564
|
+
"schema": {
|
|
8565
|
+
"type": "object",
|
|
8566
|
+
"required": [
|
|
8567
|
+
"email",
|
|
8568
|
+
"code"
|
|
8569
|
+
],
|
|
8570
|
+
"properties": {
|
|
8571
|
+
"email": {
|
|
8572
|
+
"type": "string",
|
|
8573
|
+
"format": "email"
|
|
8574
|
+
},
|
|
8575
|
+
"code": {
|
|
8576
|
+
"type": "string",
|
|
8577
|
+
"description": "6-digit OTP code"
|
|
8578
|
+
},
|
|
8579
|
+
"platform_app_id": {
|
|
8580
|
+
"type": "string",
|
|
8581
|
+
"format": "uuid"
|
|
8582
|
+
},
|
|
8583
|
+
"auto_provision_chains": {
|
|
8584
|
+
"type": "array",
|
|
8585
|
+
"items": {
|
|
8586
|
+
"type": "string"
|
|
8587
|
+
},
|
|
8588
|
+
"description": "Chains to auto-generate wallets for (e.g. [\"ethereum\", \"base\"])"
|
|
8589
|
+
}
|
|
8590
|
+
}
|
|
8591
|
+
}
|
|
8592
|
+
}
|
|
8593
|
+
}
|
|
8594
|
+
},
|
|
8595
|
+
"responses": {
|
|
8596
|
+
"200": {
|
|
8597
|
+
"description": "Existing user authenticated",
|
|
8598
|
+
"content": {
|
|
8599
|
+
"application/json": {
|
|
8600
|
+
"schema": {
|
|
8601
|
+
"$ref": "#/components/schemas/EmailOtpVerifyResponse"
|
|
8602
|
+
}
|
|
8603
|
+
}
|
|
8604
|
+
}
|
|
8605
|
+
},
|
|
8606
|
+
"201": {
|
|
8607
|
+
"description": "New user created and authenticated",
|
|
8608
|
+
"content": {
|
|
8609
|
+
"application/json": {
|
|
8610
|
+
"schema": {
|
|
8611
|
+
"$ref": "#/components/schemas/EmailOtpVerifyResponse"
|
|
8612
|
+
}
|
|
8613
|
+
}
|
|
8614
|
+
}
|
|
8615
|
+
},
|
|
8616
|
+
"400": {
|
|
8617
|
+
"description": "Invalid or expired code"
|
|
8618
|
+
},
|
|
8619
|
+
"429": {
|
|
8620
|
+
"description": "Rate limited"
|
|
8621
|
+
}
|
|
8622
|
+
}
|
|
8623
|
+
}
|
|
8624
|
+
},
|
|
8625
|
+
"/v1/oauth/authorize": {
|
|
8626
|
+
"get": {
|
|
8627
|
+
"tags": [
|
|
8628
|
+
"OAuth"
|
|
8629
|
+
],
|
|
8630
|
+
"summary": "Get OAuth consent info",
|
|
8631
|
+
"description": "Returns information about the platform app requesting authorization so the\nUI can display a consent screen. Used by the 1Claw-hosted consent page.\n",
|
|
8632
|
+
"operationId": "getOAuthConsent",
|
|
8633
|
+
"security": [
|
|
8634
|
+
{
|
|
8635
|
+
"BearerAuth": []
|
|
8636
|
+
}
|
|
8637
|
+
],
|
|
8638
|
+
"parameters": [
|
|
8639
|
+
{
|
|
8640
|
+
"name": "client_id",
|
|
8641
|
+
"in": "query",
|
|
8642
|
+
"required": true,
|
|
8643
|
+
"schema": {
|
|
8644
|
+
"type": "string"
|
|
8645
|
+
},
|
|
8646
|
+
"description": "Platform app slug"
|
|
8647
|
+
},
|
|
8648
|
+
{
|
|
8649
|
+
"name": "redirect_uri",
|
|
8650
|
+
"in": "query",
|
|
8651
|
+
"required": true,
|
|
8652
|
+
"schema": {
|
|
8653
|
+
"type": "string",
|
|
8654
|
+
"format": "uri"
|
|
8655
|
+
}
|
|
8656
|
+
},
|
|
8657
|
+
{
|
|
8658
|
+
"name": "response_type",
|
|
8659
|
+
"in": "query",
|
|
8660
|
+
"required": true,
|
|
8661
|
+
"schema": {
|
|
8662
|
+
"type": "string",
|
|
8663
|
+
"enum": [
|
|
8664
|
+
"code"
|
|
8665
|
+
]
|
|
8666
|
+
}
|
|
8667
|
+
},
|
|
8668
|
+
{
|
|
8669
|
+
"name": "scope",
|
|
8670
|
+
"in": "query",
|
|
8671
|
+
"schema": {
|
|
8672
|
+
"type": "string"
|
|
8673
|
+
},
|
|
8674
|
+
"description": "Space-delimited scopes (e.g. \"openid email wallet\")"
|
|
8675
|
+
},
|
|
8676
|
+
{
|
|
8677
|
+
"name": "state",
|
|
8678
|
+
"in": "query",
|
|
8679
|
+
"schema": {
|
|
8680
|
+
"type": "string"
|
|
8681
|
+
}
|
|
8682
|
+
},
|
|
8683
|
+
{
|
|
8684
|
+
"name": "code_challenge",
|
|
8685
|
+
"in": "query",
|
|
8686
|
+
"schema": {
|
|
8687
|
+
"type": "string"
|
|
8688
|
+
},
|
|
8689
|
+
"description": "PKCE code challenge"
|
|
8690
|
+
},
|
|
8691
|
+
{
|
|
8692
|
+
"name": "code_challenge_method",
|
|
8693
|
+
"in": "query",
|
|
8694
|
+
"schema": {
|
|
8695
|
+
"type": "string",
|
|
8696
|
+
"enum": [
|
|
8697
|
+
"S256",
|
|
8698
|
+
"plain"
|
|
8699
|
+
]
|
|
8700
|
+
}
|
|
8701
|
+
},
|
|
8702
|
+
{
|
|
8703
|
+
"name": "nonce",
|
|
8704
|
+
"in": "query",
|
|
8705
|
+
"schema": {
|
|
8706
|
+
"type": "string"
|
|
8707
|
+
},
|
|
8708
|
+
"description": "OIDC nonce for ID token replay protection"
|
|
8709
|
+
}
|
|
8710
|
+
],
|
|
8711
|
+
"responses": {
|
|
8712
|
+
"200": {
|
|
8713
|
+
"description": "Consent screen data",
|
|
8714
|
+
"content": {
|
|
8715
|
+
"application/json": {
|
|
8716
|
+
"schema": {
|
|
8717
|
+
"$ref": "#/components/schemas/OAuthConsentResponse"
|
|
8718
|
+
}
|
|
8719
|
+
}
|
|
8720
|
+
}
|
|
8721
|
+
},
|
|
8722
|
+
"400": {
|
|
8723
|
+
"description": "Invalid client_id, redirect_uri, or response_type"
|
|
8724
|
+
}
|
|
8725
|
+
}
|
|
8726
|
+
},
|
|
8727
|
+
"post": {
|
|
8728
|
+
"tags": [
|
|
8729
|
+
"OAuth"
|
|
8730
|
+
],
|
|
8731
|
+
"summary": "Submit OAuth consent decision",
|
|
8732
|
+
"description": "The user approves or denies the authorization request. On approval, returns\na redirect URL containing the authorization code. On denial, returns a\nredirect URL with an error parameter.\n",
|
|
8733
|
+
"operationId": "submitOAuthConsent",
|
|
8734
|
+
"security": [
|
|
8735
|
+
{
|
|
8736
|
+
"BearerAuth": []
|
|
8737
|
+
}
|
|
8738
|
+
],
|
|
8739
|
+
"requestBody": {
|
|
8740
|
+
"required": true,
|
|
8741
|
+
"content": {
|
|
8742
|
+
"application/json": {
|
|
8743
|
+
"schema": {
|
|
8744
|
+
"type": "object",
|
|
8745
|
+
"required": [
|
|
8746
|
+
"approve",
|
|
8747
|
+
"client_id",
|
|
8748
|
+
"redirect_uri"
|
|
8749
|
+
],
|
|
8750
|
+
"properties": {
|
|
8751
|
+
"approve": {
|
|
8752
|
+
"type": "boolean"
|
|
8753
|
+
},
|
|
8754
|
+
"client_id": {
|
|
8755
|
+
"type": "string"
|
|
8756
|
+
},
|
|
8757
|
+
"redirect_uri": {
|
|
8758
|
+
"type": "string",
|
|
8759
|
+
"format": "uri"
|
|
8760
|
+
},
|
|
8761
|
+
"scope": {
|
|
8762
|
+
"type": "string"
|
|
8763
|
+
},
|
|
8764
|
+
"state": {
|
|
8765
|
+
"type": "string"
|
|
8766
|
+
},
|
|
8767
|
+
"code_challenge": {
|
|
8768
|
+
"type": "string"
|
|
8769
|
+
},
|
|
8770
|
+
"code_challenge_method": {
|
|
8771
|
+
"type": "string",
|
|
8772
|
+
"enum": [
|
|
8773
|
+
"S256",
|
|
8774
|
+
"plain"
|
|
8775
|
+
]
|
|
8776
|
+
},
|
|
8777
|
+
"nonce": {
|
|
8778
|
+
"type": "string"
|
|
8779
|
+
}
|
|
8780
|
+
}
|
|
8781
|
+
}
|
|
8782
|
+
}
|
|
8783
|
+
}
|
|
8784
|
+
},
|
|
8785
|
+
"responses": {
|
|
8786
|
+
"200": {
|
|
8787
|
+
"description": "Redirect URL with authorization code or error",
|
|
8788
|
+
"content": {
|
|
8789
|
+
"application/json": {
|
|
8790
|
+
"schema": {
|
|
8791
|
+
"type": "object",
|
|
8792
|
+
"required": [
|
|
8793
|
+
"redirect_url"
|
|
8794
|
+
],
|
|
8795
|
+
"properties": {
|
|
8796
|
+
"redirect_url": {
|
|
8797
|
+
"type": "string",
|
|
8798
|
+
"format": "uri"
|
|
8799
|
+
}
|
|
8800
|
+
}
|
|
8801
|
+
}
|
|
8802
|
+
}
|
|
8803
|
+
}
|
|
8804
|
+
},
|
|
8805
|
+
"400": {
|
|
8806
|
+
"description": "Invalid request"
|
|
8807
|
+
}
|
|
8808
|
+
}
|
|
8809
|
+
}
|
|
8810
|
+
},
|
|
8811
|
+
"/v1/oauth/token": {
|
|
8812
|
+
"post": {
|
|
8813
|
+
"tags": [
|
|
8814
|
+
"OAuth"
|
|
8815
|
+
],
|
|
8816
|
+
"summary": "Exchange authorization code for tokens",
|
|
8817
|
+
"description": "Standard OAuth 2.0 token endpoint. Exchanges an authorization code for an\naccess token and optional OIDC ID token. Supports PKCE via `code_verifier`.\n",
|
|
8818
|
+
"operationId": "exchangeOAuthToken",
|
|
8819
|
+
"security": [],
|
|
8820
|
+
"requestBody": {
|
|
8821
|
+
"required": true,
|
|
8822
|
+
"content": {
|
|
8823
|
+
"application/json": {
|
|
8824
|
+
"schema": {
|
|
8825
|
+
"type": "object",
|
|
8826
|
+
"required": [
|
|
8827
|
+
"grant_type",
|
|
8828
|
+
"code",
|
|
8829
|
+
"client_id",
|
|
8830
|
+
"redirect_uri"
|
|
8831
|
+
],
|
|
8832
|
+
"properties": {
|
|
8833
|
+
"grant_type": {
|
|
8834
|
+
"type": "string",
|
|
8835
|
+
"enum": [
|
|
8836
|
+
"authorization_code"
|
|
8837
|
+
]
|
|
8838
|
+
},
|
|
8839
|
+
"code": {
|
|
8840
|
+
"type": "string"
|
|
8841
|
+
},
|
|
8842
|
+
"client_id": {
|
|
8843
|
+
"type": "string"
|
|
8844
|
+
},
|
|
8845
|
+
"redirect_uri": {
|
|
8846
|
+
"type": "string",
|
|
8847
|
+
"format": "uri"
|
|
8848
|
+
},
|
|
8849
|
+
"code_verifier": {
|
|
8850
|
+
"type": "string",
|
|
8851
|
+
"description": "PKCE code verifier (required when code_challenge was used)"
|
|
8852
|
+
}
|
|
8853
|
+
}
|
|
8854
|
+
}
|
|
8855
|
+
}
|
|
8856
|
+
}
|
|
8857
|
+
},
|
|
8858
|
+
"responses": {
|
|
8859
|
+
"200": {
|
|
8860
|
+
"description": "Token response",
|
|
8861
|
+
"content": {
|
|
8862
|
+
"application/json": {
|
|
8863
|
+
"schema": {
|
|
8864
|
+
"$ref": "#/components/schemas/OAuthTokenResponse"
|
|
8865
|
+
}
|
|
8866
|
+
}
|
|
8867
|
+
}
|
|
8868
|
+
},
|
|
8869
|
+
"400": {
|
|
8870
|
+
"description": "Invalid grant, code, or verifier"
|
|
8871
|
+
},
|
|
8872
|
+
"401": {
|
|
8873
|
+
"description": "Invalid client credentials"
|
|
8874
|
+
}
|
|
8875
|
+
}
|
|
8876
|
+
}
|
|
8877
|
+
},
|
|
8878
|
+
"/v1/oauth/userinfo": {
|
|
8879
|
+
"get": {
|
|
8880
|
+
"tags": [
|
|
8881
|
+
"OAuth"
|
|
8882
|
+
],
|
|
8883
|
+
"summary": "Get authenticated user info (OIDC UserInfo)",
|
|
8884
|
+
"description": "Standard OIDC UserInfo endpoint. Returns claims about the authenticated user\nbased on the granted scopes.\n",
|
|
8885
|
+
"operationId": "getOAuthUserInfo",
|
|
8886
|
+
"security": [
|
|
8887
|
+
{
|
|
8888
|
+
"BearerAuth": []
|
|
8889
|
+
}
|
|
8890
|
+
],
|
|
8891
|
+
"responses": {
|
|
8892
|
+
"200": {
|
|
8893
|
+
"description": "User info",
|
|
8894
|
+
"content": {
|
|
8895
|
+
"application/json": {
|
|
8896
|
+
"schema": {
|
|
8897
|
+
"$ref": "#/components/schemas/OAuthUserInfoResponse"
|
|
8898
|
+
}
|
|
8899
|
+
}
|
|
8900
|
+
}
|
|
8901
|
+
},
|
|
8902
|
+
"401": {
|
|
8903
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
8904
|
+
}
|
|
8905
|
+
}
|
|
8906
|
+
}
|
|
8907
|
+
}
|
|
8908
|
+
},
|
|
8909
|
+
"components": {
|
|
8910
|
+
"securitySchemes": {
|
|
8911
|
+
"BearerAuth": {
|
|
8912
|
+
"type": "http",
|
|
8913
|
+
"scheme": "bearer",
|
|
8914
|
+
"bearerFormat": "JWT"
|
|
8915
|
+
},
|
|
8916
|
+
"ApiKeyAuth": {
|
|
8917
|
+
"type": "http",
|
|
8918
|
+
"scheme": "bearer",
|
|
8919
|
+
"description": "1ck_ prefixed API key used as Bearer token"
|
|
8920
|
+
}
|
|
8921
|
+
},
|
|
8922
|
+
"parameters": {
|
|
8923
|
+
"VaultId": {
|
|
8924
|
+
"name": "vault_id",
|
|
8925
|
+
"in": "path",
|
|
8926
|
+
"required": true,
|
|
8927
|
+
"schema": {
|
|
8928
|
+
"type": "string",
|
|
8929
|
+
"format": "uuid"
|
|
8930
|
+
}
|
|
8931
|
+
},
|
|
8932
|
+
"SecretPath": {
|
|
8933
|
+
"name": "path",
|
|
8934
|
+
"in": "path",
|
|
8935
|
+
"required": true,
|
|
8936
|
+
"schema": {
|
|
8937
|
+
"type": "string"
|
|
8938
|
+
},
|
|
8939
|
+
"description": "Secret path (e.g. \"db/credentials\")"
|
|
8940
|
+
},
|
|
8941
|
+
"AgentId": {
|
|
8942
|
+
"name": "agent_id",
|
|
8943
|
+
"in": "path",
|
|
8944
|
+
"required": true,
|
|
8945
|
+
"schema": {
|
|
8946
|
+
"type": "string",
|
|
8947
|
+
"format": "uuid"
|
|
8948
|
+
}
|
|
8949
|
+
},
|
|
8950
|
+
"PolicyId": {
|
|
8951
|
+
"name": "policy_id",
|
|
8952
|
+
"in": "path",
|
|
8953
|
+
"required": true,
|
|
8954
|
+
"schema": {
|
|
8955
|
+
"type": "string",
|
|
8956
|
+
"format": "uuid"
|
|
8957
|
+
}
|
|
8958
|
+
},
|
|
8959
|
+
"IncludeSignedTx": {
|
|
8960
|
+
"name": "include_signed_tx",
|
|
8308
8961
|
"in": "query",
|
|
8309
8962
|
"required": false,
|
|
8310
8963
|
"description": "Set to `true` or `1` to include the raw signed transaction hex in the response. Omitted by default to reduce key exfiltration risk. Only the literal values \"true\" or \"1\" enable inclusion; any other value or omission returns responses without signed_tx. Applies to GET /v1/agents/{agent_id}/transactions and GET /v1/agents/{agent_id}/transactions/{tx_id}.\n",
|
|
@@ -10934,7 +11587,7 @@
|
|
|
10934
11587
|
},
|
|
10935
11588
|
"api_key": {
|
|
10936
11589
|
"type": "string",
|
|
10937
|
-
"description": "Ephemeral bk_usr_ key
|
|
11590
|
+
"description": "Ephemeral bk_usr_ key. Present for human callers only; omitted for agent JWTs."
|
|
10938
11591
|
},
|
|
10939
11592
|
"wallet_id": {
|
|
10940
11593
|
"type": "string"
|
|
@@ -14274,6 +14927,248 @@
|
|
|
14274
14927
|
"format": "date-time"
|
|
14275
14928
|
}
|
|
14276
14929
|
}
|
|
14930
|
+
},
|
|
14931
|
+
"EmailOtpVerifyResponse": {
|
|
14932
|
+
"type": "object",
|
|
14933
|
+
"required": [
|
|
14934
|
+
"token",
|
|
14935
|
+
"user_id",
|
|
14936
|
+
"org_id",
|
|
14937
|
+
"is_new_user",
|
|
14938
|
+
"email"
|
|
14939
|
+
],
|
|
14940
|
+
"properties": {
|
|
14941
|
+
"token": {
|
|
14942
|
+
"type": "string",
|
|
14943
|
+
"description": "JWT access token"
|
|
14944
|
+
},
|
|
14945
|
+
"user_id": {
|
|
14946
|
+
"type": "string",
|
|
14947
|
+
"format": "uuid"
|
|
14948
|
+
},
|
|
14949
|
+
"org_id": {
|
|
14950
|
+
"type": "string",
|
|
14951
|
+
"format": "uuid"
|
|
14952
|
+
},
|
|
14953
|
+
"is_new_user": {
|
|
14954
|
+
"type": "boolean"
|
|
14955
|
+
},
|
|
14956
|
+
"email": {
|
|
14957
|
+
"type": "string",
|
|
14958
|
+
"format": "email"
|
|
14959
|
+
},
|
|
14960
|
+
"wallet_address": {
|
|
14961
|
+
"type": "string",
|
|
14962
|
+
"nullable": true,
|
|
14963
|
+
"description": "Ethereum address if auto_provision_chains included an EVM chain"
|
|
14964
|
+
}
|
|
14965
|
+
}
|
|
14966
|
+
},
|
|
14967
|
+
"OAuthConsentResponse": {
|
|
14968
|
+
"type": "object",
|
|
14969
|
+
"required": [
|
|
14970
|
+
"app_name",
|
|
14971
|
+
"app_slug",
|
|
14972
|
+
"scopes",
|
|
14973
|
+
"redirect_uri",
|
|
14974
|
+
"already_consented"
|
|
14975
|
+
],
|
|
14976
|
+
"properties": {
|
|
14977
|
+
"app_name": {
|
|
14978
|
+
"type": "string"
|
|
14979
|
+
},
|
|
14980
|
+
"app_slug": {
|
|
14981
|
+
"type": "string"
|
|
14982
|
+
},
|
|
14983
|
+
"app_logo_url": {
|
|
14984
|
+
"type": "string",
|
|
14985
|
+
"format": "uri",
|
|
14986
|
+
"nullable": true
|
|
14987
|
+
},
|
|
14988
|
+
"scopes": {
|
|
14989
|
+
"type": "array",
|
|
14990
|
+
"items": {
|
|
14991
|
+
"type": "string"
|
|
14992
|
+
}
|
|
14993
|
+
},
|
|
14994
|
+
"redirect_uri": {
|
|
14995
|
+
"type": "string",
|
|
14996
|
+
"format": "uri"
|
|
14997
|
+
},
|
|
14998
|
+
"already_consented": {
|
|
14999
|
+
"type": "boolean"
|
|
15000
|
+
}
|
|
15001
|
+
}
|
|
15002
|
+
},
|
|
15003
|
+
"OAuthTokenResponse": {
|
|
15004
|
+
"type": "object",
|
|
15005
|
+
"required": [
|
|
15006
|
+
"access_token",
|
|
15007
|
+
"token_type",
|
|
15008
|
+
"expires_in",
|
|
15009
|
+
"scope"
|
|
15010
|
+
],
|
|
15011
|
+
"properties": {
|
|
15012
|
+
"access_token": {
|
|
15013
|
+
"type": "string"
|
|
15014
|
+
},
|
|
15015
|
+
"token_type": {
|
|
15016
|
+
"type": "string",
|
|
15017
|
+
"enum": [
|
|
15018
|
+
"Bearer"
|
|
15019
|
+
]
|
|
15020
|
+
},
|
|
15021
|
+
"expires_in": {
|
|
15022
|
+
"type": "integer",
|
|
15023
|
+
"description": "Token lifetime in seconds"
|
|
15024
|
+
},
|
|
15025
|
+
"id_token": {
|
|
15026
|
+
"type": "string",
|
|
15027
|
+
"nullable": true,
|
|
15028
|
+
"description": "OIDC ID token (when openid scope was granted)"
|
|
15029
|
+
},
|
|
15030
|
+
"scope": {
|
|
15031
|
+
"type": "string"
|
|
15032
|
+
}
|
|
15033
|
+
}
|
|
15034
|
+
},
|
|
15035
|
+
"OAuthUserInfoResponse": {
|
|
15036
|
+
"type": "object",
|
|
15037
|
+
"required": [
|
|
15038
|
+
"sub",
|
|
15039
|
+
"email"
|
|
15040
|
+
],
|
|
15041
|
+
"properties": {
|
|
15042
|
+
"sub": {
|
|
15043
|
+
"type": "string",
|
|
15044
|
+
"format": "uuid"
|
|
15045
|
+
},
|
|
15046
|
+
"email": {
|
|
15047
|
+
"type": "string",
|
|
15048
|
+
"format": "email"
|
|
15049
|
+
},
|
|
15050
|
+
"name": {
|
|
15051
|
+
"type": "string",
|
|
15052
|
+
"nullable": true
|
|
15053
|
+
},
|
|
15054
|
+
"wallet_address": {
|
|
15055
|
+
"type": "string",
|
|
15056
|
+
"nullable": true
|
|
15057
|
+
}
|
|
15058
|
+
}
|
|
15059
|
+
},
|
|
15060
|
+
"CreateSpendPolicyRequest": {
|
|
15061
|
+
"type": "object",
|
|
15062
|
+
"properties": {
|
|
15063
|
+
"user_id": {
|
|
15064
|
+
"type": "string",
|
|
15065
|
+
"format": "uuid",
|
|
15066
|
+
"description": "Scope to a specific user (app-level policies only)"
|
|
15067
|
+
},
|
|
15068
|
+
"to_allowlist": {
|
|
15069
|
+
"type": "array",
|
|
15070
|
+
"items": {
|
|
15071
|
+
"type": "string"
|
|
15072
|
+
},
|
|
15073
|
+
"description": "Permitted destination addresses (empty = unrestricted)"
|
|
15074
|
+
},
|
|
15075
|
+
"to_denylist": {
|
|
15076
|
+
"type": "array",
|
|
15077
|
+
"items": {
|
|
15078
|
+
"type": "string"
|
|
15079
|
+
},
|
|
15080
|
+
"description": "Blocked destination addresses"
|
|
15081
|
+
},
|
|
15082
|
+
"max_value_per_tx_eth": {
|
|
15083
|
+
"type": "string",
|
|
15084
|
+
"description": "Maximum value per transaction in ETH (decimal string)"
|
|
15085
|
+
},
|
|
15086
|
+
"daily_limit_eth": {
|
|
15087
|
+
"type": "string",
|
|
15088
|
+
"description": "Rolling 24h spend cap in ETH (decimal string)"
|
|
15089
|
+
},
|
|
15090
|
+
"allowed_chains": {
|
|
15091
|
+
"type": "array",
|
|
15092
|
+
"items": {
|
|
15093
|
+
"type": "string"
|
|
15094
|
+
},
|
|
15095
|
+
"description": "Chains the user may transact on (empty = all enabled)"
|
|
15096
|
+
},
|
|
15097
|
+
"allowed_tokens": {
|
|
15098
|
+
"type": "array",
|
|
15099
|
+
"items": {
|
|
15100
|
+
"type": "string"
|
|
15101
|
+
},
|
|
15102
|
+
"description": "Permitted ERC-20 token contract addresses"
|
|
15103
|
+
},
|
|
15104
|
+
"max_transactions_per_day": {
|
|
15105
|
+
"type": "integer",
|
|
15106
|
+
"description": "Maximum number of transactions per 24h window"
|
|
15107
|
+
}
|
|
15108
|
+
}
|
|
15109
|
+
},
|
|
15110
|
+
"SpendPolicyResponse": {
|
|
15111
|
+
"type": "object",
|
|
15112
|
+
"required": [
|
|
15113
|
+
"id",
|
|
15114
|
+
"platform_app_id",
|
|
15115
|
+
"created_at"
|
|
15116
|
+
],
|
|
15117
|
+
"properties": {
|
|
15118
|
+
"id": {
|
|
15119
|
+
"type": "string",
|
|
15120
|
+
"format": "uuid"
|
|
15121
|
+
},
|
|
15122
|
+
"platform_app_id": {
|
|
15123
|
+
"type": "string",
|
|
15124
|
+
"format": "uuid"
|
|
15125
|
+
},
|
|
15126
|
+
"user_id": {
|
|
15127
|
+
"type": "string",
|
|
15128
|
+
"format": "uuid",
|
|
15129
|
+
"nullable": true
|
|
15130
|
+
},
|
|
15131
|
+
"to_allowlist": {
|
|
15132
|
+
"type": "array",
|
|
15133
|
+
"items": {
|
|
15134
|
+
"type": "string"
|
|
15135
|
+
}
|
|
15136
|
+
},
|
|
15137
|
+
"to_denylist": {
|
|
15138
|
+
"type": "array",
|
|
15139
|
+
"items": {
|
|
15140
|
+
"type": "string"
|
|
15141
|
+
}
|
|
15142
|
+
},
|
|
15143
|
+
"max_value_per_tx_eth": {
|
|
15144
|
+
"type": "string",
|
|
15145
|
+
"nullable": true
|
|
15146
|
+
},
|
|
15147
|
+
"daily_limit_eth": {
|
|
15148
|
+
"type": "string",
|
|
15149
|
+
"nullable": true
|
|
15150
|
+
},
|
|
15151
|
+
"allowed_chains": {
|
|
15152
|
+
"type": "array",
|
|
15153
|
+
"items": {
|
|
15154
|
+
"type": "string"
|
|
15155
|
+
}
|
|
15156
|
+
},
|
|
15157
|
+
"allowed_tokens": {
|
|
15158
|
+
"type": "array",
|
|
15159
|
+
"items": {
|
|
15160
|
+
"type": "string"
|
|
15161
|
+
}
|
|
15162
|
+
},
|
|
15163
|
+
"max_transactions_per_day": {
|
|
15164
|
+
"type": "integer",
|
|
15165
|
+
"nullable": true
|
|
15166
|
+
},
|
|
15167
|
+
"created_at": {
|
|
15168
|
+
"type": "string",
|
|
15169
|
+
"format": "date-time"
|
|
15170
|
+
}
|
|
15171
|
+
}
|
|
14277
15172
|
}
|
|
14278
15173
|
}
|
|
14279
15174
|
}
|