Create Connected App - Stytch Docs
Documentation Index
Fetch the complete documentation index at: /docs/llms.txt
Use this file to discover all available pages before exploring further.
Code Examples
Node.js
// 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) });
Go
// 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)
}
Java
// 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());
}
}
}
Python
# 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)
cURL
# 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
}'
API Responses
Success Response
{
"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,
"client_secret": "<string>",
...
},
"status_code": 123
}
Error Responses
{
"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"
}
Ensure to persist the client_secret in a secure location, as it cannot be recovered if lost. If lost, you'll need to trigger a secret rotation flow to obtain another one.