C#
// POST /v1/m2m/clients
const stytch = require('stytch');
const client = new stytch.B2BClient({
project_id: '${projectId}',
secret: '${secret}',
});
const params = {
scopes: ["read:users", "write:users"],
client_name: "My Sample Client",
client_description: "My sample client for testing out M2M authentication.",
};
client.M2M.Clients.Create(params)
.then(resp => { console.log(resp) })
.catch(err => { console.log(err) });// POST /v1/m2m/clients
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.CreateParams{
Scopes: []string{"read:users", "write:users"},
ClientName: "My Sample Client",
ClientDescription: "My sample client for testing out M2M authentication.",
}
resp, err := client.M2M.Clients.Create(context.Background(), params)
if err != nil {
log.Fatalf("error in method call: %v", err)
}
log.Println(resp)
}
// POST /v1/m2m/clients
package com.example;
import com.stytch.java.b2b.StytchB2BClient;
import com.stytch.java.common.StytchResult;
import com.stytch.java.consumer.models.m2mclients.CreateRequest;
public class Main {
public static void main(String[] args) {
StytchB2BClient.configure("${projectId}", "${secret}");
CreateRequest params = new CreateRequest();
params.setScopes(new String("read:users", "write:users"));
params.setClientName("My Sample Client");
params.setClientDescription("My sample client for testing out M2M authentication.");
Object result = StytchB2BClient.getM2M().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/m2m/clients
package com.example
import com.stytch.java.b2b.StytchB2BClient
import com.stytch.java.consumer.models.m2mclients.CreateRequest
fun main() {
StytchB2BClient.configure(
projectId = "${projectId}",
secret = "${secret}",
)
when (
val result =
StytchB2BClient.m2m.clients.create(
CreateRequest(
scopes = arrayOf("read:users", "write:users"),
clientName = "My Sample Client",
clientDescription = "My sample client for testing out M2M authentication.",
),
)
) {
is StytchResult.Success -> println(result.value)
is StytchResult.Error -> println(result.exception)
}
}
// POST /v1/m2m/clients
const stytch = require('stytch');
const client = new stytch.B2BClient({
project_id: '${projectId}',
secret: '${secret}',
});
const params = {
scopes: ["read:users", "write:users"],
client_name: "My Sample Client",
client_description: "My sample client for testing out M2M authentication.",
};
client.m2m.clients.create(params)
.then(resp => { console.log(resp) })
.catch(err => { console.log(err) });$response = $client->m2m->clients->create([
'scopes' => ['read:users', 'write:users'],
'client_name' => 'My Sample Client',
'client_description' => 'My sample client for testing out M2M authentication.',
]);# POST /v1/m2m/clients
from stytch import B2BClient
client = B2BClient(
project_id="${projectId}",
secret="${secret}",
)
resp = client.m2m.clients.create(
scopes=["read:users", "write:users"],
client_name="My Sample Client",
client_description="My sample client for testing out M2M authentication.",
)
print(resp)
# frozen_string_literal: true
# POST /v1/m2m/clients
require 'stytch'
client = StytchB2B::Client.new(
project_id: "${projectId}",
secret: "${secret}"
)
resp = client.m2m.clients.create(
scopes: ['read:users', 'write:users'],
client_name: "My Sample Client",
client_description: "My sample client for testing out M2M authentication."
)
puts resp// POST /v1/m2m/clients
use stytch::b2b::client::Client;
use stytch::consumer::m2m_clients::CreateRequest;
fn main() {
let client = Client::new("${projectId}", "${secret}").unwrap();
let resp = client.m2m.clients.create(
CreateRequest{
scopes: vec!["read:users", "write:users"],
client_name: Some(String::from("My Sample Client")),
client_description: Some(String::from("My sample client for testing out M2M authentication.")),
..Default::default()
}
).await;
println!("The response is {:?}", resp);
}# POST /v1/m2m/clients
curl --request POST \
--url https://test.stytch.com/v1/m2m/clients \
-u '${projectId}:${secret}' \
-H 'Content-Type: application/json' \
-d '{
"scopes": ["read:users", "write:users"],
"client_name": "My Sample Client",
"client_description": "My sample client for testing out M2M authentication."
}'{
"request_id": "<string>",
"m2m_client": {
"client_id": "<string>",
"client_secret": "<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
}{
"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"
}M2M Client
Create M2M Client
Create a new M2M Client using the Stytch API
POST
/
v1
/
m2m
/
clients
C#
// POST /v1/m2m/clients
const stytch = require('stytch');
const client = new stytch.B2BClient({
project_id: '${projectId}',
secret: '${secret}',
});
const params = {
scopes: ["read:users", "write:users"],
client_name: "My Sample Client",
client_description: "My sample client for testing out M2M authentication.",
};
client.M2M.Clients.Create(params)
.then(resp => { console.log(resp) })
.catch(err => { console.log(err) });// POST /v1/m2m/clients
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.CreateParams{
Scopes: []string{"read:users", "write:users"},
ClientName: "My Sample Client",
ClientDescription: "My sample client for testing out M2M authentication.",
}
resp, err := client.M2M.Clients.Create(context.Background(), params)
if err != nil {
log.Fatalf("error in method call: %v", err)
}
log.Println(resp)
}
// POST /v1/m2m/clients
package com.example;
import com.stytch.java.b2b.StytchB2BClient;
import com.stytch.java.common.StytchResult;
import com.stytch.java.consumer.models.m2mclients.CreateRequest;
public class Main {
public static void main(String[] args) {
StytchB2BClient.configure("${projectId}", "${secret}");
CreateRequest params = new CreateRequest();
params.setScopes(new String("read:users", "write:users"));
params.setClientName("My Sample Client");
params.setClientDescription("My sample client for testing out M2M authentication.");
Object result = StytchB2BClient.getM2M().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/m2m/clients
package com.example
import com.stytch.java.b2b.StytchB2BClient
import com.stytch.java.consumer.models.m2mclients.CreateRequest
fun main() {
StytchB2BClient.configure(
projectId = "${projectId}",
secret = "${secret}",
)
when (
val result =
StytchB2BClient.m2m.clients.create(
CreateRequest(
scopes = arrayOf("read:users", "write:users"),
clientName = "My Sample Client",
clientDescription = "My sample client for testing out M2M authentication.",
),
)
) {
is StytchResult.Success -> println(result.value)
is StytchResult.Error -> println(result.exception)
}
}
// POST /v1/m2m/clients
const stytch = require('stytch');
const client = new stytch.B2BClient({
project_id: '${projectId}',
secret: '${secret}',
});
const params = {
scopes: ["read:users", "write:users"],
client_name: "My Sample Client",
client_description: "My sample client for testing out M2M authentication.",
};
client.m2m.clients.create(params)
.then(resp => { console.log(resp) })
.catch(err => { console.log(err) });$response = $client->m2m->clients->create([
'scopes' => ['read:users', 'write:users'],
'client_name' => 'My Sample Client',
'client_description' => 'My sample client for testing out M2M authentication.',
]);# POST /v1/m2m/clients
from stytch import B2BClient
client = B2BClient(
project_id="${projectId}",
secret="${secret}",
)
resp = client.m2m.clients.create(
scopes=["read:users", "write:users"],
client_name="My Sample Client",
client_description="My sample client for testing out M2M authentication.",
)
print(resp)
# frozen_string_literal: true
# POST /v1/m2m/clients
require 'stytch'
client = StytchB2B::Client.new(
project_id: "${projectId}",
secret: "${secret}"
)
resp = client.m2m.clients.create(
scopes: ['read:users', 'write:users'],
client_name: "My Sample Client",
client_description: "My sample client for testing out M2M authentication."
)
puts resp// POST /v1/m2m/clients
use stytch::b2b::client::Client;
use stytch::consumer::m2m_clients::CreateRequest;
fn main() {
let client = Client::new("${projectId}", "${secret}").unwrap();
let resp = client.m2m.clients.create(
CreateRequest{
scopes: vec!["read:users", "write:users"],
client_name: Some(String::from("My Sample Client")),
client_description: Some(String::from("My sample client for testing out M2M authentication.")),
..Default::default()
}
).await;
println!("The response is {:?}", resp);
}# POST /v1/m2m/clients
curl --request POST \
--url https://test.stytch.com/v1/m2m/clients \
-u '${projectId}:${secret}' \
-H 'Content-Type: application/json' \
-d '{
"scopes": ["read:users", "write:users"],
"client_name": "My Sample Client",
"client_description": "My sample client for testing out M2M authentication."
}'{
"request_id": "<string>",
"m2m_client": {
"client_id": "<string>",
"client_secret": "<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
}{
"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"
}On initial client creation, you may pass in a custom
client_id or client_secret to import an existing M2M client. If you do not pass in a custom client_id or client_secret, one will be generated automatically. The client_id must be unique among all clients in your project.
The API response is the only time you will be able to view the generated
client_secret. 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
Body
application/json
Request type
The trusted_metadata field contains an arbitrary JSON object of application-specific data. See the Metadata reference for complete field behavior details.
Response
Successful response