@workos/openapi-spec 0.89.0 → 0.91.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.
@@ -1783,6 +1783,13 @@ paths:
1783
1783
  `after` fetches newer records). Defaults to `normal`.
1784
1784
  schema:
1785
1785
  $ref: '#/components/schemas/PaginationOrder'
1786
+ - name: organization_id
1787
+ required: false
1788
+ in: query
1789
+ description: Only return sessions of instances acting within this organization.
1790
+ schema:
1791
+ type: string
1792
+ example: org_01EHWNCE74X7JSDV0X3SZ3KJNY
1786
1793
  - name: agent_blueprint_id
1787
1794
  required: false
1788
1795
  in: query
@@ -10352,7 +10359,9 @@ paths:
10352
10359
  description: >-
10353
10360
  Lists the environment's data integrations configured with `custom` or
10354
10361
  `organization` credentials, including custom providers and API key
10355
- integrations.
10362
+ integrations. Both user-owned and organization-owned roots are returned,
10363
+ each as its own row with an `ownership`; filter with `ownership` to
10364
+ return only one kind.
10356
10365
  operationId: DataIntegrationsManagementController_listDataIntegrations
10357
10366
  parameters:
10358
10367
  - name: before
@@ -10401,6 +10410,19 @@ paths:
10401
10410
  `after` fetches newer records). Defaults to `normal`.
10402
10411
  schema:
10403
10412
  $ref: '#/components/schemas/PaginationOrder'
10413
+ - name: ownership
10414
+ required: false
10415
+ in: query
10416
+ description: >-
10417
+ Only return Data Integrations with this ownership: `user` for the
10418
+ integrations users connect their own accounts to, or `organization`
10419
+ for the roots organizations connect to. Omit to return both.
10420
+ schema:
10421
+ example: user
10422
+ enum:
10423
+ - user
10424
+ - organization
10425
+ type: string
10404
10426
  responses:
10405
10427
  '200':
10406
10428
  description: OK
@@ -10410,13 +10432,41 @@ paths:
10410
10432
  $ref: '#/components/schemas/DataIntegrationList'
10411
10433
  '401':
10412
10434
  description: Unauthorized
10435
+ '404':
10436
+ description: >-
10437
+ Organization-owned data integrations are not available for this
10438
+ environment.
10439
+ content:
10440
+ application/json:
10441
+ schema:
10442
+ type: object
10443
+ properties:
10444
+ message:
10445
+ type: string
10446
+ description: A human-readable description of the error.
10447
+ example: 'Organization not found: ''org_01EHQMYV6MBK39QC5PZXHY59C3''.'
10448
+ required:
10449
+ - message
10450
+ '422':
10451
+ description: Unprocessable Entity
10452
+ content:
10453
+ application/json:
10454
+ schema:
10455
+ type: object
10456
+ properties:
10457
+ message:
10458
+ type: string
10459
+ description: A human-readable description of the error.
10460
+ example: 'Organization not found: ''org_01EHQMYV6MBK39QC5PZXHY59C3''.'
10461
+ required:
10462
+ - message
10413
10463
  summary: List data integrations
10414
10464
  tags:
10415
10465
  - pipes
10416
10466
  x-feature-flag: pipes-management-api
10417
10467
  /data-integrations/{slug}:
10418
10468
  get:
10419
- description: Retrieves a data integration by its slug.
10469
+ description: Retrieves the user-owned data integration by its slug.
10420
10470
  operationId: DataIntegrationsManagementController_getDataIntegration
10421
10471
  parameters:
10422
10472
  - name: slug
@@ -10454,9 +10504,9 @@ paths:
10454
10504
  x-feature-flag: pipes-management-api
10455
10505
  put:
10456
10506
  description: >-
10457
- Updates the description, enabled state, or custom credentials of a data
10458
- integration. For custom providers, `custom_provider` updates the OAuth
10459
- definition.
10507
+ Updates the description, enabled state, or custom credentials of the
10508
+ user-owned data integration. For custom providers, `custom_provider`
10509
+ updates the OAuth definition.
10460
10510
  operationId: DataIntegrationsManagementController_updateDataIntegration
10461
10511
  parameters:
10462
10512
  - name: slug
@@ -10554,8 +10604,9 @@ paths:
10554
10604
  x-feature-flag: pipes-management-api
10555
10605
  delete:
10556
10606
  description: >-
10557
- Deletes a data integration and all of its connected installations. For a
10558
- custom provider, also deletes the custom provider definition.
10607
+ Deletes the user-owned data integration and all of its connected
10608
+ installations. For a custom provider, the provider definition is deleted
10609
+ once no organization-owned root references it either.
10559
10610
  operationId: DataIntegrationsManagementController_deleteDataIntegration
10560
10611
  parameters:
10561
10612
  - name: slug
@@ -11047,6 +11098,15 @@ paths:
11047
11098
  `organization` vends the organization's shared connection
11048
11099
  and requires `organization_id`.
11049
11100
  example: user
11101
+ supports_multiple_connections:
11102
+ type: boolean
11103
+ description: >-
11104
+ Set to `true` to use the plural connection contract. If no
11105
+ `connected_account_id` is supplied and several connections
11106
+ match, the request returns `account_selection_required`.
11107
+ When omitted or `false`, only the compatibility connection
11108
+ is considered.
11109
+ example: true
11050
11110
  required:
11051
11111
  - user_id
11052
11112
  responses:
@@ -11136,6 +11196,263 @@ paths:
11136
11196
  summary: Vend credentials for a connected account
11137
11197
  tags:
11138
11198
  - pipes
11199
+ /data-integrations/{slug}/organization:
11200
+ get:
11201
+ description: >-
11202
+ Retrieves the organization-owned data integration for a provider by its
11203
+ slug. The `/organization` suffix selects the environment-level
11204
+ organization-owned root for the provider; it does not name a particular
11205
+ organization.
11206
+ operationId: DataIntegrationsManagementController_getOrganizationDataIntegration
11207
+ parameters:
11208
+ - name: slug
11209
+ required: true
11210
+ in: path
11211
+ description: The slug identifier of the data integration.
11212
+ schema:
11213
+ example: github
11214
+ type: string
11215
+ responses:
11216
+ '200':
11217
+ content:
11218
+ application/json:
11219
+ schema:
11220
+ $ref: '#/components/schemas/DataIntegration'
11221
+ example:
11222
+ object: data_integration
11223
+ id: data_integration_01EHZNVPK3SFK441A1RGBFSHRT
11224
+ slug: github
11225
+ integration_type: github
11226
+ ownership: organization
11227
+ description: Production GitHub app
11228
+ enabled: true
11229
+ state: valid
11230
+ scopes:
11231
+ - repo
11232
+ - read:org
11233
+ redirect_uri: >-
11234
+ https://api.workos.com/data-integrations/github/dik_01EHZNVPK3SFK441A1RGBFSHRT/callback
11235
+ auth_methods:
11236
+ - oauth
11237
+ credentials:
11238
+ type: custom
11239
+ client_id: Iv1.abc123
11240
+ redacted_client_secret: '6789'
11241
+ installation: null
11242
+ config:
11243
+ account: myorg-myaccount
11244
+ custom_provider:
11245
+ name: My OAuth App
11246
+ authorization_url: https://provider.example.com/oauth/authorize
11247
+ token_url: https://provider.example.com/oauth/token
11248
+ refresh_token_url: https://provider.example.com/oauth/token
11249
+ pkce_enabled: true
11250
+ request_scope_separator: ' '
11251
+ scopes_required: false
11252
+ client_secret_required: true
11253
+ additional_authorization_parameters:
11254
+ prompt: consent
11255
+ token_body_content_type: application/x-www-form-urlencoded
11256
+ authenticate_via: request_body
11257
+ created_at: '2026-01-15T12:00:00.000Z'
11258
+ updated_at: '2026-01-15T12:00:00.000Z'
11259
+ description: OK
11260
+ '401':
11261
+ description: Unauthorized
11262
+ '404':
11263
+ description: Not Found
11264
+ content:
11265
+ application/json:
11266
+ schema:
11267
+ type: object
11268
+ properties:
11269
+ message:
11270
+ type: string
11271
+ description: A human-readable description of the error.
11272
+ example: 'Organization not found: ''org_01EHQMYV6MBK39QC5PZXHY59C3''.'
11273
+ required:
11274
+ - message
11275
+ summary: Get an organization-owned data integration
11276
+ tags:
11277
+ - pipes
11278
+ x-feature-flag: pipes-management-api
11279
+ put:
11280
+ description: >-
11281
+ Updates the description, enabled state, or custom credentials of the
11282
+ organization-owned data integration for a provider. For custom
11283
+ providers, `custom_provider` updates the OAuth definition, which is
11284
+ shared with the user-owned root. The `/organization` suffix selects the
11285
+ environment-level organization-owned root for the provider; it does not
11286
+ name a particular organization.
11287
+ operationId: DataIntegrationsManagementController_updateOrganizationDataIntegration
11288
+ parameters:
11289
+ - name: slug
11290
+ required: true
11291
+ in: path
11292
+ description: The slug identifier of the data integration.
11293
+ schema:
11294
+ example: github
11295
+ type: string
11296
+ requestBody:
11297
+ required: true
11298
+ content:
11299
+ application/json:
11300
+ schema:
11301
+ $ref: '#/components/schemas/UpdateDataIntegrationDto'
11302
+ responses:
11303
+ '200':
11304
+ content:
11305
+ application/json:
11306
+ schema:
11307
+ $ref: '#/components/schemas/DataIntegration'
11308
+ example:
11309
+ object: data_integration
11310
+ id: data_integration_01EHZNVPK3SFK441A1RGBFSHRT
11311
+ slug: github
11312
+ integration_type: github
11313
+ ownership: organization
11314
+ description: Production GitHub app
11315
+ enabled: true
11316
+ state: valid
11317
+ scopes:
11318
+ - repo
11319
+ - read:org
11320
+ redirect_uri: >-
11321
+ https://api.workos.com/data-integrations/github/dik_01EHZNVPK3SFK441A1RGBFSHRT/callback
11322
+ auth_methods:
11323
+ - oauth
11324
+ credentials:
11325
+ type: custom
11326
+ client_id: Iv1.abc123
11327
+ redacted_client_secret: '6789'
11328
+ installation: null
11329
+ config:
11330
+ account: myorg-myaccount
11331
+ custom_provider:
11332
+ name: My OAuth App
11333
+ authorization_url: https://provider.example.com/oauth/authorize
11334
+ token_url: https://provider.example.com/oauth/token
11335
+ refresh_token_url: https://provider.example.com/oauth/token
11336
+ pkce_enabled: true
11337
+ request_scope_separator: ' '
11338
+ scopes_required: false
11339
+ client_secret_required: true
11340
+ additional_authorization_parameters:
11341
+ prompt: consent
11342
+ token_body_content_type: application/x-www-form-urlencoded
11343
+ authenticate_via: request_body
11344
+ created_at: '2026-01-15T12:00:00.000Z'
11345
+ updated_at: '2026-01-15T12:00:00.000Z'
11346
+ description: OK
11347
+ '400':
11348
+ description: Bad Request
11349
+ content:
11350
+ application/json:
11351
+ schema:
11352
+ type: object
11353
+ properties:
11354
+ message:
11355
+ type: string
11356
+ description: A human-readable description of the error.
11357
+ example: 'Organization not found: ''org_01EHQMYV6MBK39QC5PZXHY59C3''.'
11358
+ required:
11359
+ - message
11360
+ '401':
11361
+ description: Unauthorized
11362
+ '403':
11363
+ description: Forbidden
11364
+ content:
11365
+ application/json:
11366
+ schema:
11367
+ type: object
11368
+ properties:
11369
+ message:
11370
+ type: string
11371
+ description: A human-readable description of the error.
11372
+ example: 'Organization not found: ''org_01EHQMYV6MBK39QC5PZXHY59C3''.'
11373
+ required:
11374
+ - message
11375
+ '404':
11376
+ description: Not Found
11377
+ content:
11378
+ application/json:
11379
+ schema:
11380
+ type: object
11381
+ properties:
11382
+ message:
11383
+ type: string
11384
+ description: A human-readable description of the error.
11385
+ example: 'Organization not found: ''org_01EHQMYV6MBK39QC5PZXHY59C3''.'
11386
+ required:
11387
+ - message
11388
+ '409':
11389
+ description: ''
11390
+ content:
11391
+ application/json:
11392
+ schema:
11393
+ type: object
11394
+ properties:
11395
+ message:
11396
+ type: string
11397
+ description: A human-readable description of the error.
11398
+ example: 'Organization not found: ''org_01EHQMYV6MBK39QC5PZXHY59C3''.'
11399
+ required:
11400
+ - message
11401
+ '422':
11402
+ description: Unprocessable Entity
11403
+ content:
11404
+ application/json:
11405
+ schema:
11406
+ type: object
11407
+ properties:
11408
+ message:
11409
+ type: string
11410
+ description: A human-readable description of the error.
11411
+ example: 'Organization not found: ''org_01EHQMYV6MBK39QC5PZXHY59C3''.'
11412
+ required:
11413
+ - message
11414
+ summary: Update an organization-owned data integration
11415
+ tags:
11416
+ - pipes
11417
+ x-feature-flag: pipes-management-api
11418
+ delete:
11419
+ description: >-
11420
+ Deletes the organization-owned data integration for a provider and all
11421
+ of its connected installations. For a custom provider, the provider
11422
+ definition is deleted once no user-owned root references it either. The
11423
+ `/organization` suffix selects the environment-level organization-owned
11424
+ root for the provider; it does not name a particular organization.
11425
+ operationId: DataIntegrationsManagementController_deleteOrganizationDataIntegration
11426
+ parameters:
11427
+ - name: slug
11428
+ required: true
11429
+ in: path
11430
+ description: The slug identifier of the data integration.
11431
+ schema:
11432
+ example: github
11433
+ type: string
11434
+ responses:
11435
+ '204':
11436
+ description: No Content
11437
+ '401':
11438
+ description: Unauthorized
11439
+ '404':
11440
+ description: Not Found
11441
+ content:
11442
+ application/json:
11443
+ schema:
11444
+ type: object
11445
+ properties:
11446
+ message:
11447
+ type: string
11448
+ description: A human-readable description of the error.
11449
+ example: 'Organization not found: ''org_01EHQMYV6MBK39QC5PZXHY59C3''.'
11450
+ required:
11451
+ - message
11452
+ summary: Delete an organization-owned data integration
11453
+ tags:
11454
+ - pipes
11455
+ x-feature-flag: pipes-management-api
11139
11456
  /data-integrations/{slug}/token:
11140
11457
  post:
11141
11458
  description: >-
@@ -11193,6 +11510,15 @@ paths:
11193
11510
  `organization` vends the organization's shared connection
11194
11511
  and requires `organization_id`.
11195
11512
  example: user
11513
+ supports_multiple_connections:
11514
+ type: boolean
11515
+ description: >-
11516
+ Set to `true` to use the plural connection contract. If no
11517
+ `connected_account_id` is supplied and several connections
11518
+ match, the request returns `account_selection_required`.
11519
+ When omitted or `false`, only the compatibility connection
11520
+ is considered.
11521
+ example: true
11196
11522
  required:
11197
11523
  - user_id
11198
11524
  responses:
@@ -17118,6 +17444,235 @@ paths:
17118
17444
  summary: Authenticate
17119
17445
  tags:
17120
17446
  - user-management.authentication
17447
+ /user_management/authkit_oauth_resources:
17448
+ post:
17449
+ description: >-
17450
+ Adds an MCP resource indicator (RFC 8707) to an environment, leaving any
17451
+ others in place.
17452
+ operationId: AuthkitOauthResourcesController_create
17453
+ parameters: []
17454
+ requestBody:
17455
+ required: true
17456
+ content:
17457
+ application/json:
17458
+ schema:
17459
+ $ref: '#/components/schemas/CreateAuthkitOauthResourceDto'
17460
+ responses:
17461
+ '201':
17462
+ description: MCP resource indicator created successfully.
17463
+ content:
17464
+ application/json:
17465
+ schema:
17466
+ $ref: '#/components/schemas/AuthkitOauthResource'
17467
+ example:
17468
+ object: authkit_oauth_resource
17469
+ id: authkit_oauth_resource_01EHZNVPK3SFK441A1RGBFSHRT
17470
+ uri: https://api.example.com
17471
+ default: false
17472
+ created_at: '2026-01-15T12:00:00.000Z'
17473
+ updated_at: '2026-01-15T12:00:00.000Z'
17474
+ '401':
17475
+ description: Unauthorized
17476
+ content:
17477
+ application/json:
17478
+ schema:
17479
+ type: object
17480
+ properties:
17481
+ message:
17482
+ type: string
17483
+ description: A human-readable description of the error.
17484
+ example: 'Organization not found: ''org_01EHQMYV6MBK39QC5PZXHY59C3''.'
17485
+ required:
17486
+ - message
17487
+ example:
17488
+ message: Unauthorized
17489
+ '422':
17490
+ description: Validation failed.
17491
+ content:
17492
+ application/json:
17493
+ schema:
17494
+ type: object
17495
+ properties:
17496
+ message:
17497
+ type: string
17498
+ description: A human-readable description of the error.
17499
+ example: 'Organization not found: ''org_01EHQMYV6MBK39QC5PZXHY59C3''.'
17500
+ required:
17501
+ - message
17502
+ example:
17503
+ message: >-
17504
+ AuthKit OAuth resource 'https://api.example.com' already
17505
+ exists.
17506
+ summary: Create an MCP resource indicator
17507
+ tags:
17508
+ - user-management.authkit-oauth-resources
17509
+ get:
17510
+ description: Lists the MCP resource indicators configured for an environment.
17511
+ operationId: AuthkitOauthResourcesController_list
17512
+ parameters:
17513
+ - name: before
17514
+ required: false
17515
+ in: query
17516
+ description: >-
17517
+ An object ID that defines your place in the list. When the ID is not
17518
+ present, you are at the end of the list. For example, if you make a
17519
+ list request and receive 100 objects, ending with `"obj_123"`, your
17520
+ subsequent call can include `before="obj_123"` to fetch a new batch
17521
+ of objects before `"obj_123"`.
17522
+ schema:
17523
+ example: xxx_01HXYZ123456789ABCDEFGHIJ
17524
+ type: string
17525
+ - name: after
17526
+ required: false
17527
+ in: query
17528
+ description: >-
17529
+ An object ID that defines your place in the list. When the ID is not
17530
+ present, you are at the end of the list. For example, if you make a
17531
+ list request and receive 100 objects, ending with `"obj_123"`, your
17532
+ subsequent call can include `after="obj_123"` to fetch a new batch
17533
+ of objects after `"obj_123"`.
17534
+ schema:
17535
+ example: xxx_01HXYZ987654321KJIHGFEDCBA
17536
+ type: string
17537
+ - name: limit
17538
+ required: false
17539
+ in: query
17540
+ description: >-
17541
+ Upper limit on the number of objects to return, between `1` and
17542
+ `100`.
17543
+ schema:
17544
+ minimum: 1
17545
+ maximum: 100
17546
+ default: 10
17547
+ example: 10
17548
+ type: integer
17549
+ - name: order
17550
+ required: false
17551
+ in: query
17552
+ description: >-
17553
+ Order the results by the creation time. Supported values are `"asc"`
17554
+ (ascending), `"desc"` (descending), and `"normal"` (descending with
17555
+ reversed cursor semantics where `before` fetches older records and
17556
+ `after` fetches newer records). Defaults to `normal`.
17557
+ schema:
17558
+ $ref: '#/components/schemas/PaginationOrder'
17559
+ responses:
17560
+ '200':
17561
+ description: MCP resource indicators listed successfully.
17562
+ content:
17563
+ application/json:
17564
+ schema:
17565
+ allOf:
17566
+ - type: object
17567
+ properties:
17568
+ object:
17569
+ type: string
17570
+ description: Indicates this is a list response.
17571
+ const: list
17572
+ list_metadata:
17573
+ type: object
17574
+ properties:
17575
+ before:
17576
+ type:
17577
+ - string
17578
+ - 'null'
17579
+ description: >-
17580
+ An object ID that defines your place in the list.
17581
+ When the ID is not present, you are at the start
17582
+ of the list.
17583
+ example: authkit_oauth_resource_01HXYZ123456789ABCDEFGHIJ
17584
+ after:
17585
+ type:
17586
+ - string
17587
+ - 'null'
17588
+ description: >-
17589
+ An object ID that defines your place in the list.
17590
+ When the ID is not present, you are at the end of
17591
+ the list.
17592
+ example: authkit_oauth_resource_01HXYZ987654321KJIHGFEDCBA
17593
+ required:
17594
+ - before
17595
+ - after
17596
+ description: >-
17597
+ Pagination cursors for navigating between pages of
17598
+ results.
17599
+ - type: object
17600
+ properties:
17601
+ data:
17602
+ type: array
17603
+ description: The list of records for the current page.
17604
+ items:
17605
+ $ref: '#/components/schemas/AuthkitOauthResource'
17606
+ '401':
17607
+ description: Unauthorized
17608
+ content:
17609
+ application/json:
17610
+ schema:
17611
+ type: object
17612
+ properties:
17613
+ message:
17614
+ type: string
17615
+ description: A human-readable description of the error.
17616
+ example: 'Organization not found: ''org_01EHQMYV6MBK39QC5PZXHY59C3''.'
17617
+ required:
17618
+ - message
17619
+ example:
17620
+ message: Unauthorized
17621
+ summary: List MCP resource indicators
17622
+ tags:
17623
+ - user-management.authkit-oauth-resources
17624
+ /user_management/authkit_oauth_resources/{id}:
17625
+ delete:
17626
+ description: >-
17627
+ Removes an MCP resource indicator from an environment. Any application
17628
+ consents granted against it are removed too.
17629
+ operationId: AuthkitOauthResourcesController_delete
17630
+ parameters:
17631
+ - name: id
17632
+ required: true
17633
+ in: path
17634
+ description: The ID of the MCP resource indicator to delete.
17635
+ schema:
17636
+ type: string
17637
+ example: authkit_oauth_resource_01EHZNVPK3SFK441A1RGBFSHRT
17638
+ responses:
17639
+ '204':
17640
+ description: MCP resource indicator deleted successfully.
17641
+ '401':
17642
+ description: Unauthorized
17643
+ content:
17644
+ application/json:
17645
+ schema:
17646
+ type: object
17647
+ properties:
17648
+ message:
17649
+ type: string
17650
+ description: A human-readable description of the error.
17651
+ example: 'Organization not found: ''org_01EHQMYV6MBK39QC5PZXHY59C3''.'
17652
+ required:
17653
+ - message
17654
+ example:
17655
+ message: Unauthorized
17656
+ '404':
17657
+ description: MCP resource indicator not found.
17658
+ content:
17659
+ application/json:
17660
+ schema:
17661
+ type: object
17662
+ properties:
17663
+ message:
17664
+ type: string
17665
+ description: A human-readable description of the error.
17666
+ example: 'Organization not found: ''org_01EHQMYV6MBK39QC5PZXHY59C3''.'
17667
+ required:
17668
+ - message
17669
+ example:
17670
+ message: >-
17671
+ AuthKit OAuth resource not found:
17672
+ 'authkit_oauth_resource_01EHZNVPK3SFK441A1RGBFSHRT'.
17673
+ summary: Delete an MCP resource indicator
17674
+ tags:
17675
+ - user-management.authkit-oauth-resources
17121
17676
  /user_management/authorize:
17122
17677
  get:
17123
17678
  description: >-
@@ -22270,6 +22825,15 @@ paths:
22270
22825
  schema:
22271
22826
  example: org_01EHZNVPK3SFK441A1RGBFSHRT
22272
22827
  type: string
22828
+ - name: supports_multiple_connections
22829
+ required: false
22830
+ in: query
22831
+ description: >-
22832
+ Set to `true` to use the plural connection contract. When omitted or
22833
+ `false`, only the compatibility connection is considered.
22834
+ schema:
22835
+ example: true
22836
+ type: boolean
22273
22837
  - name: connected_account_id
22274
22838
  required: false
22275
22839
  in: query
@@ -22324,90 +22888,122 @@ paths:
22324
22888
  application/json:
22325
22889
  schema:
22326
22890
  $ref: '#/components/schemas/AccountSelectionRequiredError'
22327
- summary: Get a connected account
22328
- tags:
22329
- - user-management.data-providers
22330
- delete:
22331
- description: >-
22332
- Disconnects WorkOS's account for the user, including removing any stored
22333
- access and refresh tokens. The user will need to reauthorize if they
22334
- want to reconnect. This does not revoke access on the provider side.
22335
- operationId: DataIntegrationsUserManagementController_deleteUserDataInstallation
22336
- parameters:
22337
- - name: user_id
22338
- required: true
22339
- in: path
22340
- description: A [User](/reference/authkit/user) identifier.
22341
- schema:
22342
- example: user_01EHZNVPK3SFK441A1RGBFSHRT
22343
- type: string
22344
- - name: slug
22345
- required: true
22346
- in: path
22347
- description: >-
22348
- The slug identifier of the provider (e.g., `github`, `slack`,
22349
- `notion`).
22350
- schema:
22351
- example: github
22352
- type: string
22353
- - name: organization_id
22354
- required: false
22355
- in: query
22356
- description: >-
22357
- An [Organization](/reference/organization) identifier. Optional
22358
- parameter if the connection is scoped to an organization.
22359
- schema:
22360
- example: org_01EHZNVPK3SFK441A1RGBFSHRT
22361
- type: string
22362
- - name: connected_account_id
22363
- required: false
22364
- in: query
22891
+ summary: Get a connected account
22892
+ tags:
22893
+ - user-management.data-providers
22894
+ delete:
22895
+ description: >-
22896
+ Disconnects WorkOS's account for the user, including removing any stored
22897
+ access and refresh tokens. The user will need to reauthorize if they
22898
+ want to reconnect. Access is not revoked on the provider side, except
22899
+ for the WorkOS OAuth provider, whose underlying AuthKit grant is
22900
+ revoked.
22901
+ operationId: DataIntegrationsUserManagementController_deleteUserDataInstallation
22902
+ parameters:
22903
+ - name: user_id
22904
+ required: true
22905
+ in: path
22906
+ description: A [User](/reference/authkit/user) identifier.
22907
+ schema:
22908
+ example: user_01EHZNVPK3SFK441A1RGBFSHRT
22909
+ type: string
22910
+ - name: slug
22911
+ required: true
22912
+ in: path
22913
+ description: >-
22914
+ The slug identifier of the provider (e.g., `github`, `slack`,
22915
+ `notion`).
22916
+ schema:
22917
+ example: github
22918
+ type: string
22919
+ - name: organization_id
22920
+ required: false
22921
+ in: query
22922
+ description: >-
22923
+ An [Organization](/reference/organization) identifier. Optional
22924
+ parameter if the connection is scoped to an organization.
22925
+ schema:
22926
+ example: org_01EHZNVPK3SFK441A1RGBFSHRT
22927
+ type: string
22928
+ - name: supports_multiple_connections
22929
+ required: false
22930
+ in: query
22931
+ description: >-
22932
+ Set to `true` to use the plural connection contract. When omitted or
22933
+ `false`, only the compatibility connection is considered.
22934
+ schema:
22935
+ example: true
22936
+ type: boolean
22937
+ - name: connected_account_id
22938
+ required: false
22939
+ in: query
22940
+ description: >-
22941
+ A [connected account](/reference/pipes/connected-account)
22942
+ identifier. Use this to select the connection to delete.
22943
+ schema:
22944
+ minLength: 1
22945
+ example: data_installation_01EHZNVPK3SFK441A1RGBFSHRT
22946
+ type: string
22947
+ responses:
22948
+ '204':
22949
+ description: The connected account was deleted successfully.
22950
+ '400':
22951
+ description: The connected account selector is malformed.
22952
+ content:
22953
+ application/json:
22954
+ schema:
22955
+ type: object
22956
+ properties:
22957
+ message:
22958
+ type: string
22959
+ description: A human-readable description of the error.
22960
+ example: 'Organization not found: ''org_01EHQMYV6MBK39QC5PZXHY59C3''.'
22961
+ required:
22962
+ - message
22963
+ '401':
22964
+ description: The request is missing a valid API key.
22965
+ '404':
22966
+ description: The user, organization, or connected account was not found.
22967
+ content:
22968
+ application/json:
22969
+ schema:
22970
+ type: object
22971
+ properties:
22972
+ message:
22973
+ type: string
22974
+ description: A human-readable description of the error.
22975
+ example: 'Organization not found: ''org_01EHQMYV6MBK39QC5PZXHY59C3''.'
22976
+ required:
22977
+ - message
22978
+ '409':
22979
+ description: >-
22980
+ Several connected accounts match this user for the provider; one
22981
+ must be named.
22982
+ content:
22983
+ application/json:
22984
+ schema:
22985
+ $ref: '#/components/schemas/AccountSelectionRequiredError'
22986
+ '503':
22365
22987
  description: >-
22366
- A [connected account](/reference/pipes/connected-account)
22367
- identifier. Use this to select the connection to delete.
22368
- schema:
22369
- minLength: 1
22370
- example: data_installation_01EHZNVPK3SFK441A1RGBFSHRT
22371
- type: string
22372
- responses:
22373
- '204':
22374
- description: The connected account was deleted successfully.
22375
- '400':
22376
- description: The connected account selector is malformed.
22988
+ The connected account or its WorkOS OAuth grant is being changed by
22989
+ another request. Retry the request.
22377
22990
  content:
22378
22991
  application/json:
22379
22992
  schema:
22380
22993
  type: object
22381
22994
  properties:
22382
- message:
22995
+ code:
22383
22996
  type: string
22384
- description: A human-readable description of the error.
22385
- example: 'Organization not found: ''org_01EHQMYV6MBK39QC5PZXHY59C3''.'
22386
- required:
22387
- - message
22388
- '401':
22389
- description: The request is missing a valid API key.
22390
- '404':
22391
- description: The user, organization, or connected account was not found.
22392
- content:
22393
- application/json:
22394
- schema:
22395
- type: object
22396
- properties:
22997
+ description: The error code identifying the type of error.
22998
+ example: concurrent_request
22999
+ const: concurrent_request
22397
23000
  message:
22398
23001
  type: string
22399
23002
  description: A human-readable description of the error.
22400
- example: 'Organization not found: ''org_01EHQMYV6MBK39QC5PZXHY59C3''.'
23003
+ example: Request could not be processed.
22401
23004
  required:
23005
+ - code
22402
23006
  - message
22403
- '409':
22404
- description: >-
22405
- Several connected accounts match this user for the provider; one
22406
- must be named.
22407
- content:
22408
- application/json:
22409
- schema:
22410
- $ref: '#/components/schemas/AccountSelectionRequiredError'
22411
23007
  summary: Delete a connected account
22412
23008
  tags:
22413
23009
  - user-management.data-providers
@@ -22488,18 +23084,86 @@ paths:
22488
23084
  - message
22489
23085
  '422':
22490
23086
  description: >-
22491
- The data integration is not in a valid state or the token
22492
- combination is invalid.
23087
+ The request body is malformed (`invalid_request_parameters`), the
23088
+ data integration is not in a valid state
23089
+ (`invalid_data_integration_state`), the token combination is invalid
23090
+ (`invalid_token_combination`), or `refresh_token` is not an active
23091
+ WorkOS OAuth grant of this user (`invalid_refresh_token`).
23092
+ content:
23093
+ application/json:
23094
+ schema:
23095
+ oneOf:
23096
+ - type: object
23097
+ properties:
23098
+ code:
23099
+ type: string
23100
+ enum:
23101
+ - invalid_refresh_token
23102
+ - invalid_token_combination
23103
+ - invalid_data_integration_state
23104
+ description: The error code identifying the type of error.
23105
+ example: invalid_refresh_token
23106
+ message:
23107
+ type: string
23108
+ description: A human-readable description of the error.
23109
+ example: Request could not be processed.
23110
+ required:
23111
+ - code
23112
+ - message
23113
+ - type: object
23114
+ properties:
23115
+ code:
23116
+ type: string
23117
+ description: The error code identifying the type of error.
23118
+ example: invalid_request_parameters
23119
+ const: invalid_request_parameters
23120
+ message:
23121
+ type: string
23122
+ description: A human-readable description of the error.
23123
+ example: Validation failed.
23124
+ errors:
23125
+ type: array
23126
+ items:
23127
+ type: object
23128
+ properties:
23129
+ code:
23130
+ type: string
23131
+ description: The validation error code.
23132
+ example: unknown_event_type
23133
+ message:
23134
+ type: string
23135
+ description: >-
23136
+ A human-readable description of the validation
23137
+ error.
23138
+ example: Invalid enum value.
23139
+ required:
23140
+ - code
23141
+ - message
23142
+ description: The list of validation errors.
23143
+ required:
23144
+ - code
23145
+ - message
23146
+ - errors
23147
+ '503':
23148
+ description: >-
23149
+ The WorkOS OAuth grant behind `refresh_token` is being changed by
23150
+ another request. Retry the request.
22493
23151
  content:
22494
23152
  application/json:
22495
23153
  schema:
22496
23154
  type: object
22497
23155
  properties:
23156
+ code:
23157
+ type: string
23158
+ description: The error code identifying the type of error.
23159
+ example: concurrent_request
23160
+ const: concurrent_request
22498
23161
  message:
22499
23162
  type: string
22500
23163
  description: A human-readable description of the error.
22501
- example: 'Organization not found: ''org_01EHQMYV6MBK39QC5PZXHY59C3''.'
23164
+ example: Request could not be processed.
22502
23165
  required:
23166
+ - code
22503
23167
  - message
22504
23168
  summary: Import a connected account
22505
23169
  tags:
@@ -22536,6 +23200,15 @@ paths:
22536
23200
  schema:
22537
23201
  example: org_01EHZNVPK3SFK441A1RGBFSHRT
22538
23202
  type: string
23203
+ - name: supports_multiple_connections
23204
+ required: false
23205
+ in: query
23206
+ description: >-
23207
+ Set to `true` to use the plural connection contract. When omitted or
23208
+ `false`, only the compatibility connection is considered.
23209
+ schema:
23210
+ example: true
23211
+ type: boolean
22539
23212
  - name: connected_account_id
22540
23213
  required: false
22541
23214
  in: query
@@ -22595,6 +23268,84 @@ paths:
22595
23268
  application/json:
22596
23269
  schema:
22597
23270
  $ref: '#/components/schemas/AccountSelectionRequiredError'
23271
+ '422':
23272
+ description: >-
23273
+ The request body is malformed (`invalid_request_parameters`), or
23274
+ `refresh_token` is not an active WorkOS OAuth grant of this user
23275
+ (`invalid_refresh_token`).
23276
+ content:
23277
+ application/json:
23278
+ schema:
23279
+ oneOf:
23280
+ - type: object
23281
+ properties:
23282
+ code:
23283
+ type: string
23284
+ description: The error code identifying the type of error.
23285
+ example: invalid_refresh_token
23286
+ const: invalid_refresh_token
23287
+ message:
23288
+ type: string
23289
+ description: A human-readable description of the error.
23290
+ example: Request could not be processed.
23291
+ required:
23292
+ - code
23293
+ - message
23294
+ - type: object
23295
+ properties:
23296
+ code:
23297
+ type: string
23298
+ description: The error code identifying the type of error.
23299
+ example: invalid_request_parameters
23300
+ const: invalid_request_parameters
23301
+ message:
23302
+ type: string
23303
+ description: A human-readable description of the error.
23304
+ example: Validation failed.
23305
+ errors:
23306
+ type: array
23307
+ items:
23308
+ type: object
23309
+ properties:
23310
+ code:
23311
+ type: string
23312
+ description: The validation error code.
23313
+ example: unknown_event_type
23314
+ message:
23315
+ type: string
23316
+ description: >-
23317
+ A human-readable description of the validation
23318
+ error.
23319
+ example: Invalid enum value.
23320
+ required:
23321
+ - code
23322
+ - message
23323
+ description: The list of validation errors.
23324
+ required:
23325
+ - code
23326
+ - message
23327
+ - errors
23328
+ '503':
23329
+ description: >-
23330
+ The WorkOS OAuth grant behind `refresh_token` is being changed by
23331
+ another request. Retry the request.
23332
+ content:
23333
+ application/json:
23334
+ schema:
23335
+ type: object
23336
+ properties:
23337
+ code:
23338
+ type: string
23339
+ description: The error code identifying the type of error.
23340
+ example: concurrent_request
23341
+ const: concurrent_request
23342
+ message:
23343
+ type: string
23344
+ description: A human-readable description of the error.
23345
+ example: Request could not be processed.
23346
+ required:
23347
+ - code
23348
+ - message
22598
23349
  summary: Update a connected account
22599
23350
  tags:
22600
23351
  - user-management.data-providers
@@ -22626,6 +23377,15 @@ paths:
22626
23377
  schema:
22627
23378
  example: org_01EHZNVPK3SFK441A1RGBFSHRT
22628
23379
  type: string
23380
+ - name: supports_multiple_connections
23381
+ required: false
23382
+ in: query
23383
+ description: >-
23384
+ Set to `true` to use the plural connection contract. When omitted or
23385
+ `false`, only the compatibility connection is considered.
23386
+ schema:
23387
+ example: true
23388
+ type: boolean
22629
23389
  responses:
22630
23390
  '200':
22631
23391
  description: The list of data providers was retrieved successfully.
@@ -24319,6 +25079,8 @@ tags:
24319
25079
  description: Single Sign-On endpoints.
24320
25080
  - name: user-management.authentication
24321
25081
  description: User authentication endpoints.
25082
+ - name: user-management.authkit-oauth-resources
25083
+ description: Manage MCP resource indicators (RFC 8707).
24322
25084
  - name: user-management.cors-origins
24323
25085
  description: Manage CORS origins for user management.
24324
25086
  - name: user-management.data-providers
@@ -26490,15 +27252,15 @@ components:
26490
27252
  ownership:
26491
27253
  type: string
26492
27254
  enum:
26493
- - userland_user
27255
+ - user
26494
27256
  - organization
26495
27257
  description: >-
26496
- Who owns the Data Integration. `userland_user` (the default) creates
26497
- the integration users connect their own accounts to; `organization`
27258
+ Who owns the Data Integration. `user` (the default) creates the
27259
+ integration users connect their own accounts to; `organization`
26498
27260
  creates the root organizations connect to. Ownership is fixed at
26499
27261
  creation, and one integration of each ownership may exist per
26500
27262
  provider. Independent of `credentials.type`.
26501
- example: userland_user
27263
+ example: user
26502
27264
  description:
26503
27265
  type:
26504
27266
  - string
@@ -26801,6 +27563,26 @@ components:
26801
27563
  - user_id
26802
27564
  - pending_authentication_token
26803
27565
  - phone_number
27566
+ CreateAuthkitOauthResourceDto:
27567
+ type: object
27568
+ properties:
27569
+ uri:
27570
+ type: string
27571
+ description: >-
27572
+ The resource URI. May be a wildcard pattern with a single `*` in the
27573
+ leftmost hostname label, where enabled for the environment.
27574
+ example: https://api.example.com
27575
+ default:
27576
+ type: boolean
27577
+ description: >-
27578
+ Whether the resource being created becomes the environment default,
27579
+ clearing any previous default. Applies at creation only — this API
27580
+ has no update endpoint yet, so changing the default on an existing
27581
+ resource is done from the dashboard. A wildcard pattern cannot be
27582
+ the default.
27583
+ example: false
27584
+ required:
27585
+ - uri
26804
27586
  CreateRedirectUriDto:
26805
27587
  type: object
26806
27588
  properties:
@@ -42480,13 +43262,13 @@ components:
42480
43262
  ownership:
42481
43263
  type: string
42482
43264
  enum:
42483
- - userland_user
43265
+ - user
42484
43266
  - organization
42485
43267
  description: >-
42486
- Who owns the Data Integration: `userland_user` when users connect
42487
- their own accounts, `organization` when organizations connect. Fixed
42488
- at creation.
42489
- example: userland_user
43268
+ Who owns the Data Integration: `user` when users connect their own
43269
+ accounts, `organization` when organizations connect. Fixed at
43270
+ creation.
43271
+ example: user
42490
43272
  description:
42491
43273
  type:
42492
43274
  - string
@@ -43339,9 +44121,10 @@ components:
43339
44121
  description: Use updated_at instead.
43340
44122
  connected_account:
43341
44123
  description: >-
43342
- The user's [connected
44124
+ The user's compatibility [connected
43343
44125
  account](/reference/pipes/connected-account) for this
43344
- provider, or `null` if the user has not connected.
44126
+ provider, or `null` when the compatibility slot is empty. This
44127
+ legacy field never selects a standard connection.
43345
44128
  oneOf:
43346
44129
  - type: object
43347
44130
  properties:
@@ -43632,7 +44415,9 @@ components:
43632
44415
  - updatedAt
43633
44416
  description: >-
43634
44417
  The user's connected accounts for this provider in the
43635
- requested ownership context.
44418
+ requested ownership context. This contains only the
44419
+ compatibility connection unless
44420
+ `supports_multiple_connections` is `true`.
43636
44421
  required:
43637
44422
  - object
43638
44423
  - id
@@ -43799,6 +44584,42 @@ components:
43799
44584
  example: Entry already present in list
43800
44585
  required:
43801
44586
  - message
44587
+ AuthkitOauthResource:
44588
+ type: object
44589
+ properties:
44590
+ object:
44591
+ type: string
44592
+ description: The object type.
44593
+ const: authkit_oauth_resource
44594
+ id:
44595
+ type: string
44596
+ description: The ID of the MCP resource indicator.
44597
+ example: authkit_oauth_resource_01EHZNVPK3SFK441A1RGBFSHRT
44598
+ uri:
44599
+ type: string
44600
+ description: The resource URI.
44601
+ example: https://api.example.com
44602
+ default:
44603
+ type: boolean
44604
+ description: >-
44605
+ Whether this is the default MCP resource indicator for the
44606
+ environment.
44607
+ example: false
44608
+ created_at:
44609
+ type: string
44610
+ description: The timestamp when the MCP resource indicator was created.
44611
+ example: '2026-01-15T12:00:00.000Z'
44612
+ updated_at:
44613
+ type: string
44614
+ description: The timestamp when the MCP resource indicator was last updated.
44615
+ example: '2026-01-15T12:00:00.000Z'
44616
+ required:
44617
+ - object
44618
+ - id
44619
+ - uri
44620
+ - default
44621
+ - created_at
44622
+ - updated_at
43802
44623
  RedirectUri:
43803
44624
  type: object
43804
44625
  properties:
@@ -44969,7 +45790,7 @@ components:
44969
45790
  example: https://authkit_domain/device
44970
45791
  verification_uri_complete:
44971
45792
  type: string
44972
- format: password
45793
+ format: uri
44973
45794
  description: Verification URI that includes the user code.
44974
45795
  example: https://authkit_domain/device?user_code=BCDF-GHJK
44975
45796
  expires_in: