## 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.

# PUT /v1/m2m/clients/{client_id}

### C#
```javascript
// PUT /v1/m2m/clients/{client_id}
const stytch = require('stytch');

const client = new stytch.B2BClient({
  project_id: '${projectId}',
  secret: '${secret}',
});

const params = {
  client_id: "m2m-client-test-d731954d-dab3-4a2b-bdee-07f3ad1be885",
  client_name: "My Sample Client",
  client_description: "My sample client for testing out M2M authentication.",
  scopes: ["read:users", "write:users"],
};

client.M2M.Clients.Update(params)
  .then(resp => { console.log(resp) })
  .catch(err => { console.log(err) });
```

### Go
```go
// PUT /v1/m2m/clients/{client_id}
package main

import (
	"context"
	"log"

"github.com/stytchauth/stytch-go/v18/stytch/b2b/b2bstytchapi"
	"github.com/stytchauth/stytch-go/v18/stytch/consumer/m2m/clients"
)

func main() {
	client, err := b2bstytchapi.NewClient(
		"${projectId}",
		"${secret}",
	)
	if err != nil {
		log.Fatalf("error instantiating client: %v", err)
	}

params := &clients.UpdateParams{
		ClientID:          "m2m-client-test-d731954d-dab3-4a2b-bdee-07f3ad1be885",
		ClientName:        "My Sample Client",
		ClientDescription: "My sample client for testing out M2M authentication.",
		Scopes:            []string{"read:users", "write:users"},
	}

resp, err := client.M2M.Clients.Update(context.Background(), params)
	if err != nil {
		log.Fatalf("error in method call: %v", err)
	}

log.Println(resp)
}
```

### Java
```java
// PUT /v1/m2m/clients/{client_id}
package com.example;

import com.stytch.java.b2b.StytchB2BClient;
import com.stytch.java.common.StytchResult;
import com.stytch.java.consumer.models.m2mclients.UpdateRequest;

public class Main {
    public static void main(String[] args) {
        StytchB2BClient.configure("${projectId}", "${secret}");

UpdateRequest params = new UpdateRequest();
        params.setClientId("m2m-client-test-d731954d-dab3-4a2b-bdee-07f3ad1be885");
        params.setClientName("My Sample Client");
        params.setClientDescription("My sample client for testing out M2M authentication.");
        params.setScopes(new String[]{"read:users", "write:users"});

Object result = StytchB2BClient.getM2M().getClients().update(params);
        if (result instanceof StytchResult.Success) {
            System.out.println(((StytchResult.Success) result).getValue());
        } else {
            System.out.println(((StytchResult.Error) result).getException());
        }
    }
}
```

### Python
```python
# PUT /v1/m2m/clients/{client_id}
from stytch import B2BClient

client = B2BClient(
    project_id="${projectId}",
    secret="${secret}",
)

resp = client.m2m.clients.update(
    client_id="m2m-client-test-d731954d-dab3-4a2b-bdee-07f3ad1be885",
    client_name="My Sample Client",
    client_description="My sample client for testing out M2M authentication.",
    scopes=["read:users", "write:users"],
)

print(resp)
```

### Response
```json
{
  "request_id": "<string>",
  "m2m_client": {
    "client_id": "<string>",
    "client_name": "<string>",
    "client_description": "<string>",
    "status": "<string>",
    "scopes": ["<string>"],
    "client_secret_last_four": "<string>",
    "trusted_metadata": {},
    "next_client_secret_last_four": "<string>"
  },
  "status_code": 123
}
```

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

Use this endpoint to activate or deactivate an M2M Client by changing its `status`. A deactivated M2M Client will not be allowed to perform future token exchange flows until it is reactivated.

Deactivating an M2M Client will not invalidate any existing JWTs issued to the client, only prevent it from receiving new ones. To protect more-sensitive routes, pass a lower `max_token_age` value when [authenticating the token](/content/docs/api-reference/b2b/api/m2m/token/authenticate-access-token/index.html).

#### Authorizations

Authorization

string

header

required

Basic authentication header of the form `Basic <encoded-value>`, where `<encoded-value>` is the base64-encoded string `username:password`.

#### Path Parameters

client_id

string

required

The ID of the client.

#### Body

application/json

Request type

client_name

string

A human-readable name for the client.

client_description

string

A human-readable description for the client.

status

enum<string>

The status of the client - either `active` or `inactive`.

Available options:

`active`,

`inactive`

scopes

string[]

An array of scopes assigned to the client.

trusted_metadata

object

The `trusted_metadata` field contains an arbitrary JSON object of application-specific data.
