openapi: 3.0.3 info: title: Stytch B2B Authentication Application Connected Apps API version: 2.0.0 description: Stytch's B2B API for multi-tenant authentication. Supports Organizations, Members, SSO (SAML/OIDC), Magic Links, OTP, OAuth, Discovery, Sessions, B2B RBAC, SCIM, TOTP, Recovery Codes, Passwords, Impersonation, and the B2B IDP. contact: name: Stytch url: https://stytch.com/docs license: name: Proprietary servers: - url: https://api.stytch.com description: Production - url: https://test.stytch.com description: Test tags: - name: Connected Apps paths: /v1/connected_apps/clients/{client_id}: get: summary: Get operationId: api_connectedapps_v1_connected_apps_clients_Get tags: - Connected Apps description: Retrieve details of a specific Connected App by `client_id`. parameters: - name: client_id in: path required: true schema: type: string description: The ID of the Connected App client. description: The ID of the Connected App client. responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/api_connectedapps_v1_connected_apps_clients_GetResponse' '400': description: Bad request '401': description: Unauthorized content: application/json: example: status_code: 401 request_id: request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141 error_type: unauthorized_credentials error_message: Unauthorized credentials. error_url: https://stytch.com/docs/api/errors/401 '429': description: Too Many Requests content: application/json: example: status_code: 429 request_id: request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141 error_type: too_many_requests error_message: Too many requests have been made. error_url: https://stytch.com/docs/api/errors/429 '500': description: Internal server error content: application/json: example: status_code: 500 request_id: request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141 error_type: internal_server_error error_message: Oops, something seems to have gone wrong, please reach out to support@stytch.com to let us know what went wrong. error_url: https://stytch.com/docs/api/errors/500 x-code-samples: - lang: csharp label: C# source: "// GET /v1/connected_apps/clients/{client_id}\nconst stytch = require('stytch');\n\nconst client = new stytch.B2BClient({\n project_id: '${projectId}',\n secret: '${secret}',\n});\n\nconst params = {\n client_id: \"${exampleConnectedAppClientID}\",\n};\n\nclient.ConnectedApp.Clients.Get(params)\n .then(resp => { console.log(resp) })\n .catch(err => { console.log(err) });" - lang: go label: Go source: "// GET /v1/connected_apps/clients/{client_id}\npackage main\n\nimport (\n\t\"context\"\n\t\"log\"\n\n\t\"github.com/stytchauth/stytch-go/v17/stytch/b2b/b2bstytchapi\"\n\t\"github.com/stytchauth/stytch-go/v17/stytch/consumer/connectedapps/clients\"\n)\n\nfunc main() {\n\tclient, err := b2bstytchapi.NewClient(\n\t\t\"${projectId}\",\n\t\t\"${secret}\",\n\t)\n\tif err != nil {\n\t\tlog.Fatalf(\"error instantiating client: %v\", err)\n\t}\n\n\tparams := &clients.GetParams{\n\t\tClientID: \"${exampleConnectedAppClientID}\",\n\t}\n\n\tresp, err := client.ConnectedApp.Clients.Get(context.Background(), params)\n\tif err != nil {\n\t\tlog.Fatalf(\"error in method call: %v\", err)\n\t}\n\n\tlog.Println(resp)\n}\n" - lang: java label: Java source: "// GET /v1/connected_apps/clients/{client_id}\npackage com.example;\n\nimport com.stytch.java.b2b.StytchB2BClient;\nimport com.stytch.java.common.StytchResult;\nimport com.stytch.java.consumer.models.connectedappsclients.GetRequest;\n\npublic class Main {\n public static void main(String[] args) {\n StytchB2BClient.configure(\"${projectId}\", \"${secret}\");\n\n GetRequest params = new GetRequest();\n params.setClientId(\"${exampleConnectedAppClientID}\");\n\n Object result = StytchB2BClient.getConnectedApp().getClients().get(params);\n if (result instanceof StytchResult.Success) {\n System.out.println(((StytchResult.Success) result).getValue());\n } else {\n System.out.println(((StytchResult.Error) result).getException());\n }\n }\n}" - lang: kotlin label: Kotlin source: "// GET /v1/connected_apps/clients/{client_id}\npackage com.example\n\nimport com.stytch.java.b2b.StytchB2BClient\nimport com.stytch.java.consumer.models.connectedappsclients.GetRequest\n\nfun main() {\n StytchB2BClient.configure(\n projectId = \"${projectId}\",\n secret = \"${secret}\",\n )\n\n when (\n val result =\n StytchB2BClient.connectedApp.clients.get(\n GetRequest(\n clientId = \"${exampleConnectedAppClientID}\",\n ),\n )\n ) {\n is StytchResult.Success -> println(result.value)\n is StytchResult.Error -> println(result.exception)\n }\n}\n" - lang: javascript label: Node.js source: "// GET /v1/connected_apps/clients/{client_id}\nconst stytch = require('stytch');\n\nconst client = new stytch.B2BClient({\n project_id: '${projectId}',\n secret: '${secret}',\n});\n\nconst params = {\n client_id: \"${exampleConnectedAppClientID}\",\n};\n\nclient.connectedApp.clients.get(params)\n .then(resp => { console.log(resp) })\n .catch(err => { console.log(err) });" - lang: php label: PHP source: "$response = $client->connected_app->clients->get([\n 'client_id' => '${exampleConnectedAppClientID}',\n]);" - lang: python label: Python source: "# GET /v1/connected_apps/clients/{client_id}\nfrom stytch import B2BClient\n\nclient = B2BClient(\n project_id=\"${projectId}\",\n secret=\"${secret}\",\n)\n\nresp = client.connected_app.clients.get(\n client_id=\"${exampleConnectedAppClientID}\",\n)\n\nprint(resp)\n" - lang: ruby label: Ruby source: "# GET /v1/connected_apps/clients/{client_id}\nrequire 'stytch'\n\nclient = StytchB2B::Client.new(\n project_id: \"${projectId}\",\n secret: \"${secret}\"\n)\n\nresp = client.connected_app.clients.get(\n client_id: \"${exampleConnectedAppClientID}\"\n \n)\n\nputs resp" - lang: rust label: Rust source: "// GET /v1/connected_apps/clients/{client_id}\nuse stytch::b2b::client::Client;\nuse stytch::consumer::connected_apps_clients::GetRequest;\n\nfn main() {\n let client = Client::new(\"${projectId}\", \"${secret}\").unwrap();\n let resp = client.connected_app.clients.get(\n GetRequest{\n client_id: \"${exampleConnectedAppClientID}\",\n ..Default::default()\n }\n ).await;\n println!(\"The response is {:?}\", resp);\n}" - lang: bash label: cURL source: "# GET /v1/connected_apps/clients/{client_id}\ncurl --request GET \\\n --url https://test.stytch.com/v1/connected_apps/clients/${exampleConnectedAppClientID} \\\n -u '${projectId}:${secret}' \\\n -H 'Content-Type: application/json'" put: summary: Update operationId: api_connectedapps_v1_connected_apps_clients_Update tags: - Connected Apps description: Updates mutable fields of a Connected App. Cannot update Client Type, Client ID, or Secrets. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/api_connectedapps_v1_connected_apps_clients_UpdateRequest' parameters: - name: client_id in: path required: true schema: type: string description: The ID of the client. description: The ID of the client. responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/api_connectedapps_v1_connected_apps_clients_UpdateResponse' '400': description: Bad request '401': description: Unauthorized content: application/json: example: status_code: 401 request_id: request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141 error_type: unauthorized_credentials error_message: Unauthorized credentials. error_url: https://stytch.com/docs/api/errors/401 '429': description: Too Many Requests content: application/json: example: status_code: 429 request_id: request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141 error_type: too_many_requests error_message: Too many requests have been made. error_url: https://stytch.com/docs/api/errors/429 '500': description: Internal server error content: application/json: example: status_code: 500 request_id: request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141 error_type: internal_server_error error_message: Oops, something seems to have gone wrong, please reach out to support@stytch.com to let us know what went wrong. error_url: https://stytch.com/docs/api/errors/500 x-code-samples: - lang: csharp label: C# source: "// PUT /v1/connected_apps/clients/{client_id}\nconst stytch = require('stytch');\n\nconst client = new stytch.B2BClient({\n project_id: '${projectId}',\n secret: '${secret}',\n});\n\nconst params = {\n client_id: \"${exampleM2MClientID}\",\n client_name: \"My Sample Client\",\n client_description: \"My sample client for testing out Connected Apps\",\n redirect_urls: [\"https://example.com/callback\"],\n full_access_allowed: false,\n};\n\nclient.ConnectedApp.Clients.Update(params)\n .then(resp => { console.log(resp) })\n .catch(err => { console.log(err) });" - lang: go label: Go source: "// PUT /v1/connected_apps/clients/{client_id}\npackage main\n\nimport (\n\t\"context\"\n\t\"log\"\n\n\t\"github.com/stytchauth/stytch-go/v17/stytch/b2b/b2bstytchapi\"\n\t\"github.com/stytchauth/stytch-go/v17/stytch/consumer/connectedapps/clients\"\n)\n\nfunc main() {\n\tclient, err := b2bstytchapi.NewClient(\n\t\t\"${projectId}\",\n\t\t\"${secret}\",\n\t)\n\tif err != nil {\n\t\tlog.Fatalf(\"error instantiating client: %v\", err)\n\t}\n\n\tparams := &clients.UpdateParams{\n\t\tClientID: \"${exampleM2MClientID}\",\n\t\tClientName: \"My Sample Client\",\n\t\tClientDescription: \"My sample client for testing out Connected Apps\",\n\t\tRedirectURLs: []string{\"https://example.com/callback\"},\n\t\tFullAccessAllowed: false,\n\t}\n\n\tresp, err := client.ConnectedApp.Clients.Update(context.Background(), params)\n\tif err != nil {\n\t\tlog.Fatalf(\"error in method call: %v\", err)\n\t}\n\n\tlog.Println(resp)\n}\n" - lang: java label: Java source: "// PUT /v1/connected_apps/clients/{client_id}\npackage com.example;\n\nimport com.stytch.java.b2b.StytchB2BClient;\nimport com.stytch.java.common.StytchResult;\nimport com.stytch.java.consumer.models.connectedappsclients.UpdateRequest;\n\npublic class Main {\n public static void main(String[] args) {\n StytchB2BClient.configure(\"${projectId}\", \"${secret}\");\n\n UpdateRequest params = new UpdateRequest();\n params.setClientId(\"${exampleM2MClientID}\");\n params.setClientName(\"My Sample Client\");\n params.setClientDescription(\"My sample client for testing out Connected Apps\");\n params.setRedirectURLs(new String(\"https://example.com/callback\"));\n params.setFullAccessAllowed(false);\n\n Object result = StytchB2BClient.getConnectedApp().getClients().update(params);\n if (result instanceof StytchResult.Success) {\n System.out.println(((StytchResult.Success) result).getValue());\n } else {\n System.out.println(((StytchResult.Error) result).getException());\n }\n }\n}" - lang: kotlin label: Kotlin source: "// PUT /v1/connected_apps/clients/{client_id}\npackage com.example\n\nimport com.stytch.java.b2b.StytchB2BClient\nimport com.stytch.java.consumer.models.connectedappsclients.UpdateRequest\n\nfun main() {\n StytchB2BClient.configure(\n projectId = \"${projectId}\",\n secret = \"${secret}\",\n )\n\n when (\n val result =\n StytchB2BClient.connectedApp.clients.update(\n UpdateRequest(\n clientId = \"${exampleM2MClientID}\",\n clientName = \"My Sample Client\",\n clientDescription = \"My sample client for testing out Connected Apps\",\n redirectURLs = arrayOf(\"https://example.com/callback\"),\n fullAccessAllowed = false,\n ),\n )\n ) {\n is StytchResult.Success -> println(result.value)\n is StytchResult.Error -> println(result.exception)\n }\n}\n" - lang: javascript label: Node.js source: "// PUT /v1/connected_apps/clients/{client_id}\nconst stytch = require('stytch');\n\nconst client = new stytch.B2BClient({\n project_id: '${projectId}',\n secret: '${secret}',\n});\n\nconst params = {\n client_id: \"${exampleM2MClientID}\",\n client_name: \"My Sample Client\",\n client_description: \"My sample client for testing out Connected Apps\",\n redirect_urls: [\"https://example.com/callback\"],\n full_access_allowed: false,\n};\n\nclient.connectedApp.clients.update(params)\n .then(resp => { console.log(resp) })\n .catch(err => { console.log(err) });" - lang: php label: PHP source: "$response = $client->connected_app->clients->update([\n 'client_id' => '${exampleM2MClientID}',\n 'client_name' => 'My Sample Client',\n 'client_description' => 'My sample client for testing out Connected Apps',\n 'redirect_urls' => ['https://example.com/callback'],\n 'full_access_allowed' => false,\n]);" - lang: python label: Python source: "# PUT /v1/connected_apps/clients/{client_id}\nfrom stytch import B2BClient\n\nclient = B2BClient(\n project_id=\"${projectId}\",\n secret=\"${secret}\",\n)\n\nresp = client.connected_app.clients.update(\n client_id=\"${exampleM2MClientID}\",\n client_name=\"My Sample Client\",\n client_description=\"My sample client for testing out Connected Apps\",\n redirect_urls=[\"https://example.com/callback\"],\n full_access_allowed=False,\n)\n\nprint(resp)\n" - lang: ruby label: Ruby source: "# PUT /v1/connected_apps/clients/{client_id}\nrequire 'stytch'\n\nclient = StytchB2B::Client.new(\n project_id: \"${projectId}\",\n secret: \"${secret}\"\n)\n\nresp = client.connected_app.clients.update(\n client_id: \"${exampleM2MClientID}\",\n client_name: \"My Sample Client\",\n client_description: \"My sample client for testing out Connected Apps\",\n redirect_urls: ['https://example.com/callback'],\n full_access_allowed: false\n \n)\n\nputs resp" - lang: rust label: Rust source: "// PUT /v1/connected_apps/clients/{client_id}\nuse stytch::b2b::client::Client;\nuse stytch::consumer::connected_apps_clients::UpdateRequest;\n\nfn main() {\n let client = Client::new(\"${projectId}\", \"${secret}\").unwrap();\n let resp = client.connected_app.clients.update(\n UpdateRequest{\n client_id: \"${exampleM2MClientID}\",\n client_name: Some(String::from(\"My Sample Client\")),\n client_description: Some(String::from(\"My sample client for testing out Connected Apps\")),\n redirect_urls: vec![\"https://example.com/callback\"],\n full_access_allowed: false,\n ..Default::default()\n }\n ).await;\n println!(\"The response is {:?}\", resp);\n}" - lang: bash label: cURL source: "# PUT /v1/connected_apps/clients/{client_id}\ncurl --request PUT \\\n --url https://test.stytch.com/v1/connected_apps/clients/${exampleM2MClientID} \\\n -u '${projectId}:${secret}' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"client_name\": \"My Sample Client\",\n \"client_description\": \"My sample client for testing out Connected Apps\",\n \"redirect_urls\": [\"https://example.com/callback\"],\n \"full_access_allowed\": false\n }'" delete: summary: Delete operationId: api_connectedapps_v1_connected_apps_clients_Delete tags: - Connected Apps description: Deletes a Connected App. parameters: - name: client_id in: path required: true schema: type: string description: The ID of the client. description: The ID of the client. responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/api_connectedapps_v1_connected_apps_clients_DeleteResponse' '400': description: Bad request '401': description: Unauthorized content: application/json: example: status_code: 401 request_id: request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141 error_type: unauthorized_credentials error_message: Unauthorized credentials. error_url: https://stytch.com/docs/api/errors/401 '429': description: Too Many Requests content: application/json: example: status_code: 429 request_id: request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141 error_type: too_many_requests error_message: Too many requests have been made. error_url: https://stytch.com/docs/api/errors/429 '500': description: Internal server error content: application/json: example: status_code: 500 request_id: request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141 error_type: internal_server_error error_message: Oops, something seems to have gone wrong, please reach out to support@stytch.com to let us know what went wrong. error_url: https://stytch.com/docs/api/errors/500 x-code-samples: - lang: csharp label: C# source: "// DELETE /v1/connected_apps/clients/{client_id}\nconst stytch = require('stytch');\n\nconst client = new stytch.B2BClient({\n project_id: '${projectId}',\n secret: '${secret}',\n});\n\nconst params = {\n client_id: \"${exampleM2MClientID}\",\n};\n\nclient.ConnectedApp.Clients.Delete(params)\n .then(resp => { console.log(resp) })\n .catch(err => { console.log(err) });" - lang: go label: Go source: "// DELETE /v1/connected_apps/clients/{client_id}\npackage main\n\nimport (\n\t\"context\"\n\t\"log\"\n\n\t\"github.com/stytchauth/stytch-go/v17/stytch/b2b/b2bstytchapi\"\n\t\"github.com/stytchauth/stytch-go/v17/stytch/consumer/connectedapps/clients\"\n)\n\nfunc main() {\n\tclient, err := b2bstytchapi.NewClient(\n\t\t\"${projectId}\",\n\t\t\"${secret}\",\n\t)\n\tif err != nil {\n\t\tlog.Fatalf(\"error instantiating client: %v\", err)\n\t}\n\n\tparams := &clients.DeleteParams{\n\t\tClientID: \"${exampleM2MClientID}\",\n\t}\n\n\tresp, err := client.ConnectedApp.Clients.Delete(context.Background(), params)\n\tif err != nil {\n\t\tlog.Fatalf(\"error in method call: %v\", err)\n\t}\n\n\tlog.Println(resp)\n}\n" - lang: java label: Java source: "// DELETE /v1/connected_apps/clients/{client_id}\npackage com.example;\n\nimport com.stytch.java.b2b.StytchB2BClient;\nimport com.stytch.java.common.StytchResult;\nimport com.stytch.java.consumer.models.connectedappsclients.DeleteRequest;\n\npublic class Main {\n public static void main(String[] args) {\n StytchB2BClient.configure(\"${projectId}\", \"${secret}\");\n\n DeleteRequest params = new DeleteRequest();\n params.setClientId(\"${exampleM2MClientID}\");\n\n Object result = StytchB2BClient.getConnectedApp().getClients().delete(params);\n if (result instanceof StytchResult.Success) {\n System.out.println(((StytchResult.Success) result).getValue());\n } else {\n System.out.println(((StytchResult.Error) result).getException());\n }\n }\n}" - lang: kotlin label: Kotlin source: "// DELETE /v1/connected_apps/clients/{client_id}\npackage com.example\n\nimport com.stytch.java.b2b.StytchB2BClient\nimport com.stytch.java.consumer.models.connectedappsclients.DeleteRequest\n\nfun main() {\n StytchB2BClient.configure(\n projectId = \"${projectId}\",\n secret = \"${secret}\",\n )\n\n when (\n val result =\n StytchB2BClient.connectedApp.clients.delete(\n DeleteRequest(\n clientId = \"${exampleM2MClientID}\",\n ),\n )\n ) {\n is StytchResult.Success -> println(result.value)\n is StytchResult.Error -> println(result.exception)\n }\n}\n" - lang: javascript label: Node.js source: "// DELETE /v1/connected_apps/clients/{client_id}\nconst stytch = require('stytch');\n\nconst client = new stytch.B2BClient({\n project_id: '${projectId}',\n secret: '${secret}',\n});\n\nconst params = {\n client_id: \"${exampleM2MClientID}\",\n};\n\nclient.connectedApp.clients.delete(params)\n .then(resp => { console.log(resp) })\n .catch(err => { console.log(err) });" - lang: php label: PHP source: "$response = $client->connected_app->clients->delete([\n 'client_id' => '${exampleM2MClientID}',\n]);" - lang: python label: Python source: "# DELETE /v1/connected_apps/clients/{client_id}\nfrom stytch import B2BClient\n\nclient = B2BClient(\n project_id=\"${projectId}\",\n secret=\"${secret}\",\n)\n\nresp = client.connected_app.clients.delete(\n client_id=\"${exampleM2MClientID}\",\n)\n\nprint(resp)\n" - lang: ruby label: Ruby source: "# DELETE /v1/connected_apps/clients/{client_id}\nrequire 'stytch'\n\nclient = StytchB2B::Client.new(\n project_id: \"${projectId}\",\n secret: \"${secret}\"\n)\n\nresp = client.connected_app.clients.delete(\n client_id: \"${exampleM2MClientID}\"\n \n)\n\nputs resp" - lang: rust label: Rust source: "// DELETE /v1/connected_apps/clients/{client_id}\nuse stytch::b2b::client::Client;\nuse stytch::consumer::connected_apps_clients::DeleteRequest;\n\nfn main() {\n let client = Client::new(\"${projectId}\", \"${secret}\").unwrap();\n let resp = client.connected_app.clients.delete(\n DeleteRequest{\n client_id: \"${exampleM2MClientID}\",\n ..Default::default()\n }\n ).await;\n println!(\"The response is {:?}\", resp);\n}" - lang: bash label: cURL source: "# DELETE /v1/connected_apps/clients/{client_id}\ncurl --request DELETE \\\n --url https://test.stytch.com/v1/connected_apps/clients/${exampleM2MClientID} \\\n -u '${projectId}:${secret}' \\\n -H 'Content-Type: application/json'" /v1/connected_apps/clients/search: post: summary: Search operationId: api_connectedapps_v1_connected_apps_clients_Search tags: - Connected Apps description: Search for Connected Apps. Supports cursor-based pagination. Specific filters coming soon. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/api_connectedapps_v1_connected_apps_clients_SearchRequest' responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/api_connectedapps_v1_connected_apps_clients_SearchResponse' '400': description: Bad request '401': description: Unauthorized content: application/json: example: status_code: 401 request_id: request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141 error_type: unauthorized_credentials error_message: Unauthorized credentials. error_url: https://stytch.com/docs/api/errors/401 '429': description: Too Many Requests content: application/json: example: status_code: 429 request_id: request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141 error_type: too_many_requests error_message: Too many requests have been made. error_url: https://stytch.com/docs/api/errors/429 '500': description: Internal server error content: application/json: example: status_code: 500 request_id: request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141 error_type: internal_server_error error_message: Oops, something seems to have gone wrong, please reach out to support@stytch.com to let us know what went wrong. error_url: https://stytch.com/docs/api/errors/500 x-code-samples: - lang: csharp label: C# source: "// POST /v1/connected_apps/clients/search\nconst stytch = require('stytch');\n\nconst client = new stytch.B2BClient({\n project_id: '${projectId}',\n secret: '${secret}',\n});\n\nconst params = {\n limit: 10,\n};\n\nclient.ConnectedApp.Clients.Search(params)\n .then(resp => { console.log(resp) })\n .catch(err => { console.log(err) });" - lang: go label: Go source: "// POST /v1/connected_apps/clients/search\npackage main\n\nimport (\n\t\"context\"\n\t\"log\"\n\n\t\"github.com/stytchauth/stytch-go/v17/stytch/b2b/b2bstytchapi\"\n\t\"github.com/stytchauth/stytch-go/v17/stytch/consumer/connectedapps/clients\"\n)\n\nfunc main() {\n\tclient, err := b2bstytchapi.NewClient(\n\t\t\"${projectId}\",\n\t\t\"${secret}\",\n\t)\n\tif err != nil {\n\t\tlog.Fatalf(\"error instantiating client: %v\", err)\n\t}\n\n\tparams := &clients.SearchParams{\n\t\tLimit: 10,\n\t}\n\n\tresp, err := client.ConnectedApp.Clients.Search(context.Background(), params)\n\tif err != nil {\n\t\tlog.Fatalf(\"error in method call: %v\", err)\n\t}\n\n\tlog.Println(resp)\n}\n" - lang: java label: Java source: "// POST /v1/connected_apps/clients/search\npackage com.example;\n\nimport com.stytch.java.b2b.StytchB2BClient;\nimport com.stytch.java.common.StytchResult;\nimport com.stytch.java.consumer.models.connectedappsclients.SearchRequest;\n\npublic class Main {\n public static void main(String[] args) {\n StytchB2BClient.configure(\"${projectId}\", \"${secret}\");\n\n SearchRequest params = new SearchRequest();\n params.setLimit(10);\n\n Object result = StytchB2BClient.getConnectedApp().getClients().search(params);\n if (result instanceof StytchResult.Success) {\n System.out.println(((StytchResult.Success) result).getValue());\n } else {\n System.out.println(((StytchResult.Error) result).getException());\n }\n }\n}" - lang: kotlin label: Kotlin source: "// POST /v1/connected_apps/clients/search\npackage com.example\n\nimport com.stytch.java.b2b.StytchB2BClient\nimport com.stytch.java.consumer.models.connectedappsclients.SearchRequest\n\nfun main() {\n StytchB2BClient.configure(\n projectId = \"${projectId}\",\n secret = \"${secret}\",\n )\n\n when (\n val result =\n StytchB2BClient.connectedApp.clients.search(\n SearchRequest(\n limit = 10,\n ),\n )\n ) {\n is StytchResult.Success -> println(result.value)\n is StytchResult.Error -> println(result.exception)\n }\n}\n" - lang: javascript label: Node.js source: "// POST /v1/connected_apps/clients/search\nconst stytch = require('stytch');\n\nconst client = new stytch.B2BClient({\n project_id: '${projectId}',\n secret: '${secret}',\n});\n\nconst params = {\n limit: 10,\n};\n\nclient.connectedApp.clients.search(params)\n .then(resp => { console.log(resp) })\n .catch(err => { console.log(err) });" - lang: php label: PHP source: "$response = $client->connected_app->clients->search([\n 'limit' => 10,\n]);" - lang: python label: Python source: "# POST /v1/connected_apps/clients/search\nfrom stytch import B2BClient\n\nclient = B2BClient(\n project_id=\"${projectId}\",\n secret=\"${secret}\",\n)\n\nresp = client.connected_app.clients.search(\n limit=10,\n)\n\nprint(resp)\n" - lang: ruby label: Ruby source: "# POST /v1/connected_apps/clients/search\nrequire 'stytch'\n\nclient = StytchB2B::Client.new(\n project_id: \"${projectId}\",\n secret: \"${secret}\"\n)\n\nresp = client.connected_app.clients.search(\n limit: 10\n \n)\n\nputs resp" - lang: rust label: Rust source: "// POST /v1/connected_apps/clients/search\nuse stytch::b2b::client::Client;\nuse stytch::consumer::connected_apps_clients::SearchRequest;\n\nfn main() {\n let client = Client::new(\"${projectId}\", \"${secret}\").unwrap();\n let resp = client.connected_app.clients.search(\n SearchRequest{\n limit: 10,\n ..Default::default()\n }\n ).await;\n println!(\"The response is {:?}\", resp);\n}" - lang: bash label: cURL source: "# POST /v1/connected_apps/clients/search\ncurl --request POST \\\n --url https://test.stytch.com/v1/connected_apps/clients/search \\\n -u '${projectId}:${secret}' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"limit\": 10\n }'" /v1/connected_apps/clients: post: summary: Create operationId: api_connectedapps_v1_connected_apps_clients_Create tags: - Connected Apps description: 'Creates a new Connected App. If the Connected App `client_type` is `first_party` or `third_party` a `client_secret` is returned. **Important:** This is the only time you will be able to view the generated `client_secret` in the API response. Stytch stores a hash of the `client_secret` and cannot recover the value if lost. Be sure to persist the `client_secret` in a secure location. If the `client_secret` is lost, you will need to trigger a secret rotation flow to receive another one.' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/api_connectedapps_v1_connected_apps_clients_CreateRequest' responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/api_connectedapps_v1_connected_apps_clients_CreateResponse' '400': description: Bad request '401': description: Unauthorized content: application/json: example: status_code: 401 request_id: request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141 error_type: unauthorized_credentials error_message: Unauthorized credentials. error_url: https://stytch.com/docs/api/errors/401 '429': description: Too Many Requests content: application/json: example: status_code: 429 request_id: request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141 error_type: too_many_requests error_message: Too many requests have been made. error_url: https://stytch.com/docs/api/errors/429 '500': description: Internal server error content: application/json: example: status_code: 500 request_id: request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141 error_type: internal_server_error error_message: Oops, something seems to have gone wrong, please reach out to support@stytch.com to let us know what went wrong. error_url: https://stytch.com/docs/api/errors/500 x-code-samples: - lang: csharp label: C# source: "// POST /v1/connected_apps/clients\nconst stytch = require('stytch');\n\nconst client = new stytch.B2BClient({\n project_id: '${projectId}',\n secret: '${secret}',\n});\n\nconst params = {\n client_type: \"first_party\",\n client_name: \"My Sample Client\",\n client_description: \"My sample client for testing out Connected Apps\",\n redirect_urls: [\"https://example.com/callback\"],\n full_access_allowed: false,\n};\n\nclient.ConnectedApp.Clients.Create(params)\n .then(resp => { console.log(resp) })\n .catch(err => { console.log(err) });" - lang: go label: Go source: "// POST /v1/connected_apps/clients\npackage main\n\nimport (\n\t\"context\"\n\t\"log\"\n\n\t\"github.com/stytchauth/stytch-go/v17/stytch/b2b/b2bstytchapi\"\n\t\"github.com/stytchauth/stytch-go/v17/stytch/consumer/connectedapps/clients\"\n)\n\nfunc main() {\n\tclient, err := b2bstytchapi.NewClient(\n\t\t\"${projectId}\",\n\t\t\"${secret}\",\n\t)\n\tif err != nil {\n\t\tlog.Fatalf(\"error instantiating client: %v\", err)\n\t}\n\n\tparams := &clients.CreateParams{\n\t\tClientType: clients.CreateRequestClientTypeFirstParty,\n\t\tClientName: \"My Sample Client\",\n\t\tClientDescription: \"My sample client for testing out Connected Apps\",\n\t\tRedirectURLs: []string{\"https://example.com/callback\"},\n\t\tFullAccessAllowed: false,\n\t}\n\n\tresp, err := client.ConnectedApp.Clients.Create(context.Background(), params)\n\tif err != nil {\n\t\tlog.Fatalf(\"error in method call: %v\", err)\n\t}\n\n\tlog.Println(resp)\n}\n" - lang: java label: Java source: "// POST /v1/connected_apps/clients\npackage com.example;\n\nimport com.stytch.java.b2b.StytchB2BClient;\nimport com.stytch.java.common.StytchResult;\nimport com.stytch.java.consumer.models.connectedappsclients.CreateRequest;\nimport com.stytch.java.consumer.models.connectedappsclients.CreateRequestClientType;\n\npublic class Main {\n public static void main(String[] args) {\n StytchB2BClient.configure(\"${projectId}\", \"${secret}\");\n\n CreateRequest params = new CreateRequest();\n params.setClientType(CreateRequestClientType.FIRST_PARTY);\n params.setClientName(\"My Sample Client\");\n params.setClientDescription(\"My sample client for testing out Connected Apps\");\n params.setRedirectURLs(new String(\"https://example.com/callback\"));\n params.setFullAccessAllowed(false);\n\n Object result = StytchB2BClient.getConnectedApp().getClients().create(params);\n if (result instanceof StytchResult.Success) {\n System.out.println(((StytchResult.Success) result).getValue());\n } else {\n System.out.println(((StytchResult.Error) result).getException());\n }\n }\n}" - lang: kotlin label: Kotlin source: "// POST /v1/connected_apps/clients\npackage com.example\n\nimport com.stytch.java.b2b.StytchB2BClient\nimport com.stytch.java.consumer.models.connectedappsclients.CreateRequest\nimport com.stytch.java.consumer.models.connectedappsclients.CreateRequestClientType\n\nfun main() {\n StytchB2BClient.configure(\n projectId = \"${projectId}\",\n secret = \"${secret}\",\n )\n\n when (\n val result =\n StytchB2BClient.connectedApp.clients.create(\n CreateRequest(\n clientType = CreateRequestClientType.FIRST_PARTY,\n clientName = \"My Sample Client\",\n clientDescription = \"My sample client for testing out Connected Apps\",\n redirectURLs = arrayOf(\"https://example.com/callback\"),\n fullAccessAllowed = false,\n ),\n )\n ) {\n is StytchResult.Success -> println(result.value)\n is StytchResult.Error -> println(result.exception)\n }\n}\n" - lang: javascript label: Node.js source: "// POST /v1/connected_apps/clients\nconst stytch = require('stytch');\n\nconst client = new stytch.B2BClient({\n project_id: '${projectId}',\n secret: '${secret}',\n});\n\nconst params = {\n client_type: \"first_party\",\n client_name: \"My Sample Client\",\n client_description: \"My sample client for testing out Connected Apps\",\n redirect_urls: [\"https://example.com/callback\"],\n full_access_allowed: false,\n};\n\nclient.connectedApp.clients.create(params)\n .then(resp => { console.log(resp) })\n .catch(err => { console.log(err) });" - lang: php label: PHP source: "$response = $client->connected_app->clients->create([\n 'client_type' => 'first_party',\n 'client_name' => 'My Sample Client',\n 'client_description' => 'My sample client for testing out Connected Apps',\n 'redirect_urls' => ['https://example.com/callback'],\n 'full_access_allowed' => false,\n]);" - lang: python label: Python source: "# POST /v1/connected_apps/clients\nfrom stytch import B2BClient\nfrom stytch.consumer.models.connected_apps_clients import CreateRequestClientType\n\nclient = B2BClient(\n project_id=\"${projectId}\",\n secret=\"${secret}\",\n)\n\nresp = client.connected_app.clients.create(\n client_type=CreateRequestClientType.FIRST_PARTY,\n client_name=\"My Sample Client\",\n client_description=\"My sample client for testing out Connected Apps\",\n redirect_urls=[\"https://example.com/callback\"],\n full_access_allowed=False,\n)\n\nprint(resp)\n" - lang: ruby label: Ruby source: "# POST /v1/connected_apps/clients\nrequire 'stytch'\n\nclient = StytchB2B::Client.new(\n project_id: \"${projectId}\",\n secret: \"${secret}\"\n)\n\nresp = client.connected_app.clients.create(\n client_type: \"first_party\",\n client_name: \"My Sample Client\",\n client_description: \"My sample client for testing out Connected Apps\",\n redirect_urls: ['https://example.com/callback'],\n full_access_allowed: false\n \n)\n\nputs resp" - lang: rust label: Rust source: "// POST /v1/connected_apps/clients\nuse stytch::b2b::client::Client;\nuse stytch::consumer::connected_apps_clients::CreateRequestClientType;\nuse stytch::consumer::connected_apps_clients::CreateRequest;\n\nfn main() {\n let client = Client::new(\"${projectId}\", \"${secret}\").unwrap();\n let resp = client.connected_app.clients.create(\n CreateRequest{\n client_type: CreateRequestClientType::FIRST_PARTY,\n client_name: Some(String::from(\"My Sample Client\")),\n client_description: Some(String::from(\"My sample client for testing out Connected Apps\")),\n redirect_urls: vec![\"https://example.com/callback\"],\n full_access_allowed: false,\n ..Default::default()\n }\n ).await;\n println!(\"The response is {:?}\", resp);\n}" - lang: bash label: cURL source: "# POST /v1/connected_apps/clients\ncurl --request POST \\\n --url https://test.stytch.com/v1/connected_apps/clients \\\n -u '${projectId}:${secret}' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"client_type\": \"first_party\",\n \"client_name\": \"My Sample Client\",\n \"client_description\": \"My sample client for testing out Connected Apps\",\n \"redirect_urls\": [\"https://example.com/callback\"],\n \"full_access_allowed\": false\n }'" components: schemas: api_connectedapps_v1_connected_apps_clients_SearchResponse: type: object properties: request_id: type: string description: Globally unique UUID that is returned with every API call. This value is important to log for debugging purposes; we may ask for this value to help identify a specific API call when helping you debug an issue. connected_apps: type: array items: $ref: '#/components/schemas/api_connectedapps_v1_ConnectedApp' results_metadata: $ref: '#/components/schemas/api_connectedapps_v1_ResultsMetadata' description: The search `results_metadata` object contains metadata relevant to your specific query like total and `next_cursor`. status_code: type: integer format: int32 description: The HTTP status code of the response. Stytch follows standard HTTP response status code patterns, e.g. 2XX values equate to success, 3XX values are redirects, 4XX are client errors, and 5XX are server errors. required: - request_id - connected_apps - results_metadata - status_code api_connectedapps_v1_ResultsMetadata: type: object properties: total: type: integer format: int32 description: The total number of results returned by your search query. If totals have been disabled for your Stytch Workspace to improve search performance, the value will always be -1. next_cursor: type: string description: The `next_cursor` string is returned when your search result contains more than one page of results. This value is passed into your next search call in the `cursor` field. required: - total api_connectedapps_v1_connected_apps_clients_CreateRequest: type: object properties: client_type: $ref: '#/components/schemas/api_connectedapps_v1_CreateRequestClientType' description: The type of Connected App. Supported values are `first_party`, `first_party_public`, `third_party`, and `third_party_public`. client_name: type: string description: A human-readable name for the client. client_description: type: string description: A human-readable description for the client. redirect_urls: type: array items: type: string description: Array of redirect URI values for use in OAuth Authorization flows. full_access_allowed: type: boolean description: Valid for first party clients only. If `true`, an authorization token granted to this Client can be exchanged for a full Stytch session. access_token_expiry_minutes: type: integer format: int32 description: The number of minutes before the access token expires. The default is 60 minutes. access_token_custom_audience: type: string description: The custom audience for the access token. access_token_template_content: type: string description: The content of the access token custom claims template. The template must be a valid JSON object. post_logout_redirect_urls: type: array items: type: string description: Array of redirect URI values for use in OIDC Logout flows. logo_url: type: string description: The logo URL of the Connected App, if any. bypass_consent_for_offline_access: type: boolean description: Valid for first party clients only. If true, the client does not need to request explicit user consent for the `offline_access` scope. description: Request type required: - client_type api_connectedapps_v1_connected_apps_clients_CreateResponse: type: object properties: request_id: type: string description: Globally unique UUID that is returned with every API call. This value is important to log for debugging purposes; we may ask for this value to help identify a specific API call when helping you debug an issue. connected_app: $ref: '#/components/schemas/api_connectedapps_v1_ConnectedAppWithClientSecret' description: The Connected App created by this API call. status_code: type: integer format: int32 description: The HTTP status code of the response. Stytch follows standard HTTP response status code patterns, e.g. 2XX values equate to success, 3XX values are redirects, 4XX are client errors, and 5XX are server errors. required: - request_id - connected_app - status_code api_connectedapps_v1_ConnectedAppWithClientSecret: type: object properties: client_id: type: string description: The ID of the Connected App client. client_name: type: string description: A human-readable name for the client. client_description: type: string description: A human-readable description for the client. status: type: string full_access_allowed: type: boolean description: Valid for first party clients only. If `true`, an authorization token granted to this Client can be exchanged for a full Stytch session. client_type: type: string description: The type of Connected App. Supported values are `first_party`, `first_party_public`, `third_party`, and `third_party_public`. redirect_urls: type: array items: type: string description: Array of redirect URI values for use in OAuth Authorization flows. access_token_expiry_minutes: type: integer format: int32 access_token_template_content: type: string post_logout_redirect_urls: type: array items: type: string description: Array of redirect URI values for use in OIDC Logout flows. bypass_consent_for_offline_access: type: boolean description: Valid for first party clients only. If true, the client does not need to request explicit user consent for the `offline_access` scope. client_secret_last_four: type: string description: The last four characters of the client secret. next_client_secret_last_four: type: string description: The last four characters of the `next_client_secret`. Null if no `next_client_secret` exists. client_secret: type: string description: The secret of the Connected App client. **Required for confidential clients** access_token_custom_audience: type: string logo_url: type: string description: The logo URL of the Connected App, if any. client_id_metadata_url: type: string required: - client_id - client_name - client_description - status - full_access_allowed - client_type - redirect_urls - access_token_expiry_minutes - access_token_template_content - post_logout_redirect_urls - bypass_consent_for_offline_access api_connectedapps_v1_connected_apps_clients_GetResponse: type: object properties: request_id: type: string description: Globally unique UUID that is returned with every API call. This value is important to log for debugging purposes; we may ask for this value to help identify a specific API call when helping you debug an issue. connected_app: $ref: '#/components/schemas/api_connectedapps_v1_ConnectedApp' description: The Connected App affected by this operation. status_code: type: integer format: int32 description: The HTTP status code of the response. Stytch follows standard HTTP response status code patterns, e.g. 2XX values equate to success, 3XX values are redirects, 4XX are client errors, and 5XX are server errors. required: - request_id - connected_app - status_code api_connectedapps_v1_ConnectedApp: type: object properties: client_id: type: string description: The ID of the Connected App client. client_name: type: string description: A human-readable name for the client. client_description: type: string description: A human-readable description for the client. status: type: string full_access_allowed: type: boolean description: Valid for first party clients only. If `true`, an authorization token granted to this Client can be exchanged for a full Stytch session. client_type: type: string description: The type of Connected App. Supported values are `first_party`, `first_party_public`, `third_party`, and `third_party_public`. redirect_urls: type: array items: type: string description: Array of redirect URI values for use in OAuth Authorization flows. access_token_expiry_minutes: type: integer format: int32 access_token_template_content: type: string post_logout_redirect_urls: type: array items: type: string description: Array of redirect URI values for use in OIDC Logout flows. bypass_consent_for_offline_access: type: boolean description: Valid for first party clients only. If true, the client does not need to request explicit user consent for the `offline_access` scope. creation_method: type: string client_secret_last_four: type: string description: The last four characters of the client secret. next_client_secret_last_four: type: string description: The last four characters of the `next_client_secret`. Null if no `next_client_secret` exists. access_token_custom_audience: type: string logo_url: type: string description: The logo URL of the Connected App, if any. client_id_metadata_url: type: string required: - client_id - client_name - client_description - status - full_access_allowed - client_type - redirect_urls - access_token_expiry_minutes - access_token_template_content - post_logout_redirect_urls - bypass_consent_for_offline_access - creation_method api_connectedapps_v1_connected_apps_clients_UpdateRequest: type: object properties: client_name: type: string description: A human-readable name for the client. client_description: type: string description: A human-readable description for the client. redirect_urls: type: array items: type: string description: Array of redirect URI values for use in OAuth Authorization flows. full_access_allowed: type: boolean description: Valid for first party clients only. If `true`, an authorization token granted to this Client can be exchanged for a full Stytch session. access_token_expiry_minutes: type: integer format: int32 description: The number of minutes before the access token expires. The default is 60 minutes. access_token_custom_audience: type: string description: The custom audience for the access token. access_token_template_content: type: string description: The content of the access token custom claims template. The template must be a valid JSON object. post_logout_redirect_urls: type: array items: type: string description: Array of redirect URI values for use in OIDC Logout flows. logo_url: type: string description: The logo URL of the Connected App, if any. bypass_consent_for_offline_access: type: boolean description: Valid for first party clients only. If true, the client does not need to request explicit user consent for the `offline_access` scope. description: Request type api_connectedapps_v1_connected_apps_clients_DeleteResponse: type: object properties: request_id: type: string client_id: type: string description: The ID of the client. status_code: type: integer format: int32 required: - request_id - client_id - status_code api_connectedapps_v1_connected_apps_clients_SearchRequest: type: object properties: cursor: type: string description: The `cursor` field allows you to paginate through your results. Each result array is limited to 1000 results. If your query returns more than 1000 results, you will need to paginate the responses using the `cursor`. If you receive a response that includes a non-null `next_cursor` in the `results_metadata` object, repeat the search call with the `next_cursor` value set to the `cursor` field to retrieve the next page of results. Continue to make search calls until the `next_cursor` in the response is null. limit: type: integer format: int32 minimum: 0 description: The number of search results to return per page. The default limit is 100. A maximum of 1000 results can be returned by a single search request. If the total size of your result set is greater than one page size, you must paginate the response. See the `cursor` field. description: Request type api_connectedapps_v1_connected_apps_clients_UpdateResponse: type: object properties: request_id: type: string description: Globally unique UUID that is returned with every API call. This value is important to log for debugging purposes; we may ask for this value to help identify a specific API call when helping you debug an issue. connected_app: $ref: '#/components/schemas/api_connectedapps_v1_ConnectedApp' description: The Connected App affected by this operation. status_code: type: integer format: int32 description: The HTTP status code of the response. Stytch follows standard HTTP response status code patterns, e.g. 2XX values equate to success, 3XX values are redirects, 4XX are client errors, and 5XX are server errors. required: - request_id - connected_app - status_code api_connectedapps_v1_CreateRequestClientType: type: string enum: - first_party - first_party_public - third_party - third_party_public securitySchemes: basicAuth: type: http scheme: basic