Sign in as client member
Sign in with client_member credentials to obtain a Bearer token.
Request Body
- client_member_emailStringrequired
- Client member email address
- client_member_passwordStringrequired
- Client member password
Response Fields
- access_tokenStringrequired
- Bearer access token. Use it as-is in the form `Authorization: Bearer {access_token}` when calling protected endpoints.
- refresh_tokenStringrequired
- Refresh token. Used to renew an expired access token.
Only client_member credentials are accepted. Internal staff/superadmin credentials are rejected. Key errors: 400 NotExistMember (email not registered), 400 MismatchedPassword (password mismatch), 400 NotActivatedClientMember (inactive member or inactive client).
curl -X POST "https://opsapi.edutap.ai/ops/v1/auth/signin" \
-H "Content-Type: application/json" \
-d '{
"client_member_email": "partner-admin@example.com",
"client_member_password": "S3cure!Pass"
}'import requests
res = requests.post(
"https://opsapi.edutap.ai/ops/v1/auth/signin",
json={
"client_member_email": "partner-admin@example.com",
"client_member_password": "S3cure!Pass"
},
)
print(res.json())package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
body := []byte(`{
"client_member_email": "partner-admin@example.com",
"client_member_password": "S3cure!Pass"
}`)
req, _ := http.NewRequest("POST", "https://opsapi.edutap.ai/ops/v1/auth/signin", bytes.NewBuffer(body))
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
b, _ := io.ReadAll(res.Body)
fmt.Println(string(b))
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
String body = """
{
"client_member_email": "partner-admin@example.com",
"client_member_password": "S3cure!Pass"
}
""";
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://opsapi.edutap.ai/ops/v1/auth/signin"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();
HttpResponse<String> res = HttpClient.newHttpClient().send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(res.body());
}
}const res = await fetch("https://opsapi.edutap.ai/ops/v1/auth/signin", {
method: "POST",
headers: {"Content-Type": "application/json"},
body: JSON.stringify({
"client_member_email": "partner-admin@example.com",
"client_member_password": "S3cure!Pass"
}),
});
console.log(await res.json());Response
{
"access_token": "eyJhbGciOi...payload...",
"refresh_token": "eyJhbGciOi...refresh-payload..."
}