// POST /v1/connected_apps/clients
const stytch = require('stytch');
const client = new stytch.B2BClient({
project_id: '${projectId}',
secret: '${secret}',
});
const params = {
client_type: "first_party",
client_name: "My Sample Client",
client_description: "My sample client for testing out Connected Apps",
redirect_urls: ["https://example.com/callback"],
full_access_allowed: false,
};
client.ConnectedApp.Clients.Create(params)
.then(resp => { console.log(resp) })
.catch(err => { console.log(err) });// POST /v1/connected_apps/clients
package main
import (
"context"
"log"
"github.com/stytchauth/stytch-go/v18/stytch/b2b/b2bstytchapi"
"github.com/stytchauth/stytch-go/v18/stytch/consumer/connectedapps/clients"
)
func main() {
client, err := b2bstytchapi.NewClient(
"${projectId}",
"${secret}",
)
if err != nil {
log.Fatalf("error instantiating client: %v", err)
}
params := &clients.CreateParams{
ClientType: clients.CreateRequestClientTypeFirstParty,
ClientName: "My Sample Client",
ClientDescription: "My sample client for testing out Connected Apps",
RedirectURLs: []string{"https://example.com/callback"},
FullAccessAllowed: false,
}
resp, err := client.ConnectedApp.Clients.Create(context.Background(), params)
if err != nil {
log.Fatalf("error in method call: %v", err)
}
log.Println(resp)
}// POST /v1/connected_apps/clients
package com.example;
import com.stytch.java.b2b.StytchB2BClient;
import com.stytch.java.common.StytchResult;
import com.stytch.java.consumer.models.connectedappsclients.CreateRequest;
import com.stytch.java.consumer.models.connectedappsclients.CreateRequestClientType;
public class Main {
public static void main(String[] args) {
StytchB2BClient.configure("${projectId}", "${secret}");
CreateRequest params = new CreateRequest();
params.setClientType(CreateRequestClientType.FIRST_PARTY);
params.setClientName("My Sample Client");
params.setClientDescription("My sample client for testing out Connected Apps");
params.setRedirectURLs(new String("https://example.com/callback"));
params.setFullAccessAllowed(false);
Object result = StytchB2BClient.getConnectedApp().getClients().create(params);
if (result instanceof StytchResult.Success) {
System.out.println(((StytchResult.Success) result).getValue());
} else {
System.out.println(((StytchResult.Error) result).getException());
}
}
}// POST /v1/connected_apps/clients
package com.example
import com.stytch.java.b2b.StytchB2BClient
import com.stytch.java.consumer.models.connectedappsclients.CreateRequest
import com.stytch.java.consumer.models.connectedappsclients.CreateRequestClientType
fun main() {
StytchB2BClient.configure(
projectId = "${projectId}",
secret = "${secret}",
)
when (
val result =
StytchB2BClient.connectedApp.clients.create(
CreateRequest(
clientType = CreateRequestClientType.FIRST_PARTY,
clientName = "My Sample Client",
clientDescription = "My sample client for testing out Connected Apps",
redirectURLs = arrayOf("https://example.com/callback"),
fullAccessAllowed = false,
),
)
) {
is StytchResult.Success -> println(result.value)
is StytchResult.Error -> println(result.exception)
}
}// POST /v1/connected_apps/clients
const stytch = require('stytch');
const client = new stytch.B2BClient({
project_id: '${projectId}',
secret: '${secret}',
});
const params = {
client_type: "first_party",
client_name: "My Sample Client",
client_description: "My sample client for testing out Connected Apps",
redirect_urls: ["https://example.com/callback"],
full_access_allowed: false,
};
client.connectedApp.clients.create(params)
.then(resp => { console.log(resp) })
.catch(err => { console.log(err) });$response = $client->connected_app->clients->create([
'client_type' => 'first_party',
'client_name' => 'My Sample Client',
'client_description' => 'My sample client for testing out Connected Apps',
'redirect_urls' => ['https://example.com/callback'],
'full_access_allowed' => false,
]);# POST /v1/connected_apps/clients
from stytch import B2BClient
from stytch.consumer.models.connected_apps_clients import CreateRequestClientType
client = B2BClient(
project_id="${projectId}",
secret="${secret}",
)
resp = client.connected_app.clients.create(
client_type=CreateRequestClientType.FIRST_PARTY,
client_name="My Sample Client",
client_description="My sample client for testing out Connected Apps",
redirect_urls=["https://example.com/callback"],
full_access_allowed=False,
)
print(resp)# frozen_string_literal: true
# POST /v1/connected_apps/clients
require 'stytch'
client = StytchB2B::Client.new(
project_id: "${projectId}",
secret: "${secret}"
)
resp = client.connected_app.clients.create(
client_type: "first_party",
client_name: "My Sample Client",
client_description: "My sample client for testing out Connected Apps",
redirect_urls: ['https://example.com/callback'],
full_access_allowed: false
)
puts resp// POST /v1/connected_apps/clients
use stytch::b2b::client::Client;
use stytch::consumer::connected_apps_clients::CreateRequestClientType;
use stytch::consumer::connected_apps_clients::CreateRequest;
fn main() {
let client = Client::new("${projectId}", "${secret}").unwrap();
let resp = client.connected_app.clients.create(
CreateRequest{
client_type: CreateRequestClientType::FIRST_PARTY,
client_name: Some(String::from("My Sample Client")),
client_description: Some(String::from("My sample client for testing out Connected Apps")),
redirect_urls: vec!["https://example.com/callback"],
full_access_allowed: false,
..Default::default()
}
).await;
println!("The response is {:?}", resp);
}# POST /v1/connected_apps/clients
curl --request POST \
--url https://test.stytch.com/v1/connected_apps/clients \
-u '${projectId}:${secret}' \
-H 'Content-Type: application/json' \
-d '{
"client_type": "first_party",
"client_name": "My Sample Client",
"client_description": "My sample client for testing out Connected Apps",
"redirect_urls": ["https://example.com/callback"],
"full_access_allowed": false
}'{
"request_id": "<string>",
"connected_app": {
"client_id": "<string>",
"client_name": "<string>",
"client_description": "<string>",
"status": "<string>",
"full_access_allowed": true,
"client_type": "<string>",
"redirect_urls": [
"<string>"
],
"access_token_expiry_minutes": 123,
"access_token_template_content": "<string>",
"post_logout_redirect_urls": [
"<string>"
],
"bypass_consent_for_offline_access": true,
"id_token_template_content": "<string>",
"client_secret_last_four": "<string>",
"next_client_secret_last_four": "<string>",
"client_secret": "<string>",
"access_token_custom_audience": "<string>",
"logo_url": "<string>",
"client_id_metadata_url": "<string>"
},
"status_code": 123
}{
"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"
}{
"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"
}{
"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"
}Create Connected App
Create a new Connected App.
// POST /v1/connected_apps/clients
const stytch = require('stytch');
const client = new stytch.B2BClient({
project_id: '${projectId}',
secret: '${secret}',
});
const params = {
client_type: "first_party",
client_name: "My Sample Client",
client_description: "My sample client for testing out Connected Apps",
redirect_urls: ["https://example.com/callback"],
full_access_allowed: false,
};
client.ConnectedApp.Clients.Create(params)
.then(resp => { console.log(resp) })
.catch(err => { console.log(err) });// POST /v1/connected_apps/clients
package main
import (
"context"
"log"
"github.com/stytchauth/stytch-go/v18/stytch/b2b/b2bstytchapi"
"github.com/stytchauth/stytch-go/v18/stytch/consumer/connectedapps/clients"
)
func main() {
client, err := b2bstytchapi.NewClient(
"${projectId}",
"${secret}",
)
if err != nil {
log.Fatalf("error instantiating client: %v", err)
}
params := &clients.CreateParams{
ClientType: clients.CreateRequestClientTypeFirstParty,
ClientName: "My Sample Client",
ClientDescription: "My sample client for testing out Connected Apps",
RedirectURLs: []string{"https://example.com/callback"},
FullAccessAllowed: false,
}
resp, err := client.ConnectedApp.Clients.Create(context.Background(), params)
if err != nil {
log.Fatalf("error in method call: %v", err)
}
log.Println(resp)
}// POST /v1/connected_apps/clients
package com.example;
import com.stytch.java.b2b.StytchB2BClient;
import com.stytch.java.common.StytchResult;
import com.stytch.java.consumer.models.connectedappsclients.CreateRequest;
import com.stytch.java.consumer.models.connectedappsclients.CreateRequestClientType;
public class Main {
public static void main(String[] args) {
StytchB2BClient.configure("${projectId}", "${secret}");
CreateRequest params = new CreateRequest();
params.setClientType(CreateRequestClientType.FIRST_PARTY);
params.setClientName("My Sample Client");
params.setClientDescription("My sample client for testing out Connected Apps");
params.setRedirectURLs(new String("https://example.com/callback"));
params.setFullAccessAllowed(false);
Object result = StytchB2BClient.getConnectedApp().getClients().create(params);
if (result instanceof StytchResult.Success) {
System.out.println(((StytchResult.Success) result).getValue());
} else {
System.out.println(((StytchResult.Error) result).getException());
}
}
}// POST /v1/connected_apps/clients
package com.example
import com.stytch.java.b2b.StytchB2BClient
import com.stytch.java.consumer.models.connectedappsclients.CreateRequest
import com.stytch.java.consumer.models.connectedappsclients.CreateRequestClientType
fun main() {
StytchB2BClient.configure(
projectId = "${projectId}",
secret = "${secret}",
)
when (
val result =
StytchB2BClient.connectedApp.clients.create(
CreateRequest(
clientType = CreateRequestClientType.FIRST_PARTY,
clientName = "My Sample Client",
clientDescription = "My sample client for testing out Connected Apps",
redirectURLs = arrayOf("https://example.com/callback"),
fullAccessAllowed = false,
),
)
) {
is StytchResult.Success -> println(result.value)
is StytchResult.Error -> println(result.exception)
}
}// POST /v1/connected_apps/clients
const stytch = require('stytch');
const client = new stytch.B2BClient({
project_id: '${projectId}',
secret: '${secret}',
});
const params = {
client_type: "first_party",
client_name: "My Sample Client",
client_description: "My sample client for testing out Connected Apps",
redirect_urls: ["https://example.com/callback"],
full_access_allowed: false,
};
client.connectedApp.clients.create(params)
.then(resp => { console.log(resp) })
.catch(err => { console.log(err) });$response = $client->connected_app->clients->create([
'client_type' => 'first_party',
'client_name' => 'My Sample Client',
'client_description' => 'My sample client for testing out Connected Apps',
'redirect_urls' => ['https://example.com/callback'],
'full_access_allowed' => false,
]);# POST /v1/connected_apps/clients
from stytch import B2BClient
from stytch.consumer.models.connected_apps_clients import CreateRequestClientType
client = B2BClient(
project_id="${projectId}",
secret="${secret}",
)
resp = client.connected_app.clients.create(
client_type=CreateRequestClientType.FIRST_PARTY,
client_name="My Sample Client",
client_description="My sample client for testing out Connected Apps",
redirect_urls=["https://example.com/callback"],
full_access_allowed=False,
)
print(resp)# frozen_string_literal: true
# POST /v1/connected_apps/clients
require 'stytch'
client = StytchB2B::Client.new(
project_id: "${projectId}",
secret: "${secret}"
)
resp = client.connected_app.clients.create(
client_type: "first_party",
client_name: "My Sample Client",
client_description: "My sample client for testing out Connected Apps",
redirect_urls: ['https://example.com/callback'],
full_access_allowed: false
)
puts resp// POST /v1/connected_apps/clients
use stytch::b2b::client::Client;
use stytch::consumer::connected_apps_clients::CreateRequestClientType;
use stytch::consumer::connected_apps_clients::CreateRequest;
fn main() {
let client = Client::new("${projectId}", "${secret}").unwrap();
let resp = client.connected_app.clients.create(
CreateRequest{
client_type: CreateRequestClientType::FIRST_PARTY,
client_name: Some(String::from("My Sample Client")),
client_description: Some(String::from("My sample client for testing out Connected Apps")),
redirect_urls: vec!["https://example.com/callback"],
full_access_allowed: false,
..Default::default()
}
).await;
println!("The response is {:?}", resp);
}# POST /v1/connected_apps/clients
curl --request POST \
--url https://test.stytch.com/v1/connected_apps/clients \
-u '${projectId}:${secret}' \
-H 'Content-Type: application/json' \
-d '{
"client_type": "first_party",
"client_name": "My Sample Client",
"client_description": "My sample client for testing out Connected Apps",
"redirect_urls": ["https://example.com/callback"],
"full_access_allowed": false
}'{
"request_id": "<string>",
"connected_app": {
"client_id": "<string>",
"client_name": "<string>",
"client_description": "<string>",
"status": "<string>",
"full_access_allowed": true,
"client_type": "<string>",
"redirect_urls": [
"<string>"
],
"access_token_expiry_minutes": 123,
"access_token_template_content": "<string>",
"post_logout_redirect_urls": [
"<string>"
],
"bypass_consent_for_offline_access": true,
"id_token_template_content": "<string>",
"client_secret_last_four": "<string>",
"next_client_secret_last_four": "<string>",
"client_secret": "<string>",
"access_token_custom_audience": "<string>",
"logo_url": "<string>",
"client_id_metadata_url": "<string>"
},
"status_code": 123
}{
"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"
}{
"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"
}{
"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"
}client_type is first_party or third_party (i.e. a confidential client), a client_secret is returned.
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.Authorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Body
Request type
The type of Connected App. Supported values are first_party, first_party_public, third_party, and third_party_public.
first_party, first_party_public, third_party, third_party_public A human-readable name for the client.
A human-readable description for the client.
Array of redirect URI values for use in OAuth Authorization flows.
Valid for first party clients only. If true, an authorization token granted to this Client can be exchanged for a full Stytch session.
The number of minutes before the access token expires. The default is 60 minutes.
The custom audience for the access token.
The content of the access token custom claims template. The template must be a valid JSON object.
Array of redirect URI values for use in OIDC Logout flows.
The logo URL of the Connected App, if any.
Valid for first party clients only. If true, the client does not need to request explicit user consent for the offline_access scope.
Response
Successful response
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.
The Connected App created by this API call.
Show child attributes
Show child attributes
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.