// 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"
}Create M2M Client
Create a new M2M Client using the Stytch API
// 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"
}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.
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
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Body
Request type
An array of scopes assigned to the client.
If provided, the ID of the client to create. If not provided, Stytch will generate this value for you. The client_id must be unique within your project.
If provided, the stored secret of the client to create. If not provided, Stytch will generate this value for you. If provided, the client_secret must be at least 8 characters long and pass entropy requirements.
A human-readable name for the client.
A human-readable description for the client.
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 M2M Client 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.