## Documentation Index

Fetch the complete documentation index at: [/docs/llms.txt](/content/docs/llms.txt)

Use this file to discover all available pages before exploring further.

---

### Code Examples

#### Node.js

```javascript
// 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

```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

```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

```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

```bash
# 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

```json
{
  "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

```json
{
  "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"
}
```

```json
{
  "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"
}
```

```json
{
  "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.
