@1claw/openapi-spec 0.61.49 → 0.61.51

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 CHANGED
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.1.0",
3
3
  "info": {
4
4
  "title": "1Claw API",
5
- "version": "0.61.49",
5
+ "version": "0.61.51",
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"
@@ -7026,6 +7026,38 @@
7026
7026
  }
7027
7027
  }
7028
7028
  },
7029
+ "/v1/referrals/me": {
7030
+ "get": {
7031
+ "tags": [
7032
+ "Organization"
7033
+ ],
7034
+ "summary": "Your own referral link and signups",
7035
+ "description": "The caller's referral code, the link to share, how many signups it has\nproduced, and a recent list.\n\nUsers only — a referral link belongs to a person, so an agent principal\ngets 403.\n\nThe link's host comes from the brand the request arrived on, the same\nway the SIWE domain and the WebAuthn rpId do: someone on 1claw.co must\nnot be handed a 1claw.xyz link to post.\n\n`recent[].referred_hint` is masked (`a**@example.com`) — enough to\nrecognise someone you did invite, not enough to contact someone you did\nnot. Neither the referred address nor its user id is returned.\n",
7036
+ "operationId": "getMyReferrals",
7037
+ "responses": {
7038
+ "200": {
7039
+ "description": "The caller's referral code, link and signup count",
7040
+ "content": {
7041
+ "application/json": {
7042
+ "schema": {
7043
+ "$ref": "#/components/schemas/MyReferralsResponse"
7044
+ }
7045
+ }
7046
+ }
7047
+ },
7048
+ "403": {
7049
+ "description": "The caller is an agent, not a person.",
7050
+ "content": {
7051
+ "application/json": {
7052
+ "schema": {
7053
+ "$ref": "#/components/schemas/ProblemDetails"
7054
+ }
7055
+ }
7056
+ }
7057
+ }
7058
+ }
7059
+ }
7060
+ },
7029
7061
  "/v1/onboarding/provision": {
7030
7062
  "post": {
7031
7063
  "tags": [
@@ -18334,7 +18366,7 @@
18334
18366
  "OAuth"
18335
18367
  ],
18336
18368
  "summary": "Get authenticated user info (OIDC UserInfo)",
18337
- "description": "Standard OIDC UserInfo endpoint. Returns claims about the authenticated user\nbased on the granted scopes.\n",
18369
+ "description": "Standard OIDC UserInfo endpoint. Returns claims about the authenticated user\nbased on the granted scopes.\n\nScopes: `profile` for `name`, `email` for `email`, `wallet` for\n`wallet_address`, and `referral` for `referral_code` and `referral_link`.\nA non-OAuth user token sees every field, since it is the user's own data.\n\n`referral` is separate from `profile` deliberately: a referral code is\nsomething the holder is asked to spread, so an app has to request it by name\nand the consent screen names it.\n",
18338
18370
  "operationId": "getOAuthUserInfo",
18339
18371
  "security": [
18340
18372
  {
@@ -32924,6 +32956,63 @@
32924
32956
  }
32925
32957
  },
32926
32958
  "schemas": {
32959
+ "MyReferralsResponse": {
32960
+ "type": "object",
32961
+ "required": [
32962
+ "code",
32963
+ "link",
32964
+ "total",
32965
+ "recent"
32966
+ ],
32967
+ "properties": {
32968
+ "code": {
32969
+ "type": "string",
32970
+ "description": "The caller's referral code, created on first read.",
32971
+ "example": "7f3a9c2b"
32972
+ },
32973
+ "link": {
32974
+ "type": "string",
32975
+ "format": "uri",
32976
+ "description": "The URL to share, built for the brand the request arrived on.",
32977
+ "example": "https://1claw.co/?ref=7f3a9c2b"
32978
+ },
32979
+ "total": {
32980
+ "type": "integer",
32981
+ "format": "int64",
32982
+ "description": "Countable signups attributed to this code."
32983
+ },
32984
+ "recent": {
32985
+ "type": "array",
32986
+ "items": {
32987
+ "$ref": "#/components/schemas/ReferralRow"
32988
+ }
32989
+ }
32990
+ }
32991
+ },
32992
+ "ReferralRow": {
32993
+ "type": "object",
32994
+ "required": [
32995
+ "signup_method",
32996
+ "created_at"
32997
+ ],
32998
+ "properties": {
32999
+ "signup_method": {
33000
+ "type": "string",
33001
+ "description": "How the referred person signed up.",
33002
+ "example": "email_otp"
33003
+ },
33004
+ "created_at": {
33005
+ "type": "string",
33006
+ "format": "date-time"
33007
+ },
33008
+ "referred_hint": {
33009
+ "type": "string",
33010
+ "nullable": true,
33011
+ "description": "Masked address — first character, then the domain.",
33012
+ "example": "a**@example.com"
33013
+ }
33014
+ }
33015
+ },
32927
33016
  "OtelTopology": {
32928
33017
  "type": "object",
32929
33018
  "required": [
@@ -43897,6 +43986,22 @@
43897
43986
  "string",
43898
43987
  "null"
43899
43988
  ]
43989
+ },
43990
+ "referral_code": {
43991
+ "type": [
43992
+ "string",
43993
+ "null"
43994
+ ],
43995
+ "description": "The user's referral code, returned only under the `referral` scope.\nMinted on first read, so a user signing in to a partner site for the\nfirst time still gets one.\n",
43996
+ "example": "7f3a9c2b"
43997
+ },
43998
+ "referral_link": {
43999
+ "type": [
44000
+ "string",
44001
+ "null"
44002
+ ],
44003
+ "description": "The same code as a shareable URL, built for the brand the request\narrived on — returned so a host app never has to assemble it and pick\nthe wrong domain.\n",
44004
+ "example": "https://1claw.co/?ref=7f3a9c2b"
43900
44005
  }
43901
44006
  }
43902
44007
  },
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.49"
5
+ version: "0.61.51"
6
6
  description: |
7
7
  Secure secret management for AI agents. Provides vaults, secrets,
8
8
  policy-based access control, agent identity, Intents API,
@@ -4530,6 +4530,39 @@ paths:
4530
4530
  schema:
4531
4531
  $ref: "#/components/schemas/OnboardingStatus"
4532
4532
 
4533
+ /v1/referrals/me:
4534
+ get:
4535
+ tags: [Organization]
4536
+ summary: Your own referral link and signups
4537
+ description: |
4538
+ The caller's referral code, the link to share, how many signups it has
4539
+ produced, and a recent list.
4540
+
4541
+ Users only — a referral link belongs to a person, so an agent principal
4542
+ gets 403.
4543
+
4544
+ The link's host comes from the brand the request arrived on, the same
4545
+ way the SIWE domain and the WebAuthn rpId do: someone on 1claw.co must
4546
+ not be handed a 1claw.xyz link to post.
4547
+
4548
+ `recent[].referred_hint` is masked (`a**@example.com`) — enough to
4549
+ recognise someone you did invite, not enough to contact someone you did
4550
+ not. Neither the referred address nor its user id is returned.
4551
+ operationId: getMyReferrals
4552
+ responses:
4553
+ "200":
4554
+ description: The caller's referral code, link and signup count
4555
+ content:
4556
+ application/json:
4557
+ schema:
4558
+ $ref: "#/components/schemas/MyReferralsResponse"
4559
+ "403":
4560
+ description: The caller is an agent, not a person.
4561
+ content:
4562
+ application/json:
4563
+ schema:
4564
+ $ref: "#/components/schemas/ProblemDetails"
4565
+
4533
4566
  /v1/onboarding/provision:
4534
4567
  post:
4535
4568
  tags: [Organization]
@@ -11699,6 +11732,14 @@ paths:
11699
11732
  description: |
11700
11733
  Standard OIDC UserInfo endpoint. Returns claims about the authenticated user
11701
11734
  based on the granted scopes.
11735
+
11736
+ Scopes: `profile` for `name`, `email` for `email`, `wallet` for
11737
+ `wallet_address`, and `referral` for `referral_code` and `referral_link`.
11738
+ A non-OAuth user token sees every field, since it is the user's own data.
11739
+
11740
+ `referral` is separate from `profile` deliberately: a referral code is
11741
+ something the holder is asked to spread, so an app has to request it by name
11742
+ and the consent screen names it.
11702
11743
  operationId: getOAuthUserInfo
11703
11744
  security:
11704
11745
  - BearerAuth: []
@@ -21113,6 +21154,43 @@ components:
21113
21154
  $ref: "#/components/schemas/ProblemDetails"
21114
21155
 
21115
21156
  schemas:
21157
+ MyReferralsResponse:
21158
+ type: object
21159
+ required: [code, link, total, recent]
21160
+ properties:
21161
+ code:
21162
+ type: string
21163
+ description: The caller's referral code, created on first read.
21164
+ example: 7f3a9c2b
21165
+ link:
21166
+ type: string
21167
+ format: uri
21168
+ description: The URL to share, built for the brand the request arrived on.
21169
+ example: https://1claw.co/?ref=7f3a9c2b
21170
+ total:
21171
+ type: integer
21172
+ format: int64
21173
+ description: Countable signups attributed to this code.
21174
+ recent:
21175
+ type: array
21176
+ items:
21177
+ $ref: "#/components/schemas/ReferralRow"
21178
+ ReferralRow:
21179
+ type: object
21180
+ required: [signup_method, created_at]
21181
+ properties:
21182
+ signup_method:
21183
+ type: string
21184
+ description: How the referred person signed up.
21185
+ example: email_otp
21186
+ created_at:
21187
+ type: string
21188
+ format: date-time
21189
+ referred_hint:
21190
+ type: string
21191
+ nullable: true
21192
+ description: Masked address — first character, then the domain.
21193
+ example: a**@example.com
21116
21194
  OtelTopology:
21117
21195
  type: object
21118
21196
  required: [nodes, edges, truncated, total_nodes]
@@ -28147,6 +28225,20 @@ components:
28147
28225
  type: [string, "null"]
28148
28226
  wallet_address:
28149
28227
  type: [string, "null"]
28228
+ referral_code:
28229
+ type: [string, "null"]
28230
+ description: |
28231
+ The user's referral code, returned only under the `referral` scope.
28232
+ Minted on first read, so a user signing in to a partner site for the
28233
+ first time still gets one.
28234
+ example: 7f3a9c2b
28235
+ referral_link:
28236
+ type: [string, "null"]
28237
+ description: |
28238
+ The same code as a shareable URL, built for the brand the request
28239
+ arrived on — returned so a host app never has to assemble it and pick
28240
+ the wrong domain.
28241
+ example: https://1claw.co/?ref=7f3a9c2b
28150
28242
 
28151
28243
  # --- Spend Policies ---
28152
28244
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1claw/openapi-spec",
3
- "version": "0.61.49",
3
+ "version": "0.61.51",
4
4
  "description": "OpenAPI 3.1.0 specification for the 1Claw Vault API \u2014 generate clients in any language",
5
5
  "license": "MIT",
6
6
  "repository": {