Skip to content

Session check

This endpoint validates the user code in the session.

API key

You must add the x-api-key: your-api-key from the admin panel settings to the headers

Endpoint

POST https://api.kod.mobi/session/check

Request

JSON body

SessionCheckBody

Param Type Description Required
session_id ulid Session id true
code string User code true

Response

SessionCheckResponse

Param Type Description
verify_token uuid Verify token
is_test boolean Whether the user in test logins table

Verify token expiration

The verify token expires in 60 seconds

Example

1
2
3
4
5
6
curl --location 'https://api.kod.mobi/session/check' \
    --header 'x-api-key: <replace me>' \
    --data '{
        "session_id": "<replace me>",
        "code": "0000"
    }'
const headers = new Headers();
myHeaders.append("x-api-key", "<replace me>");

const raw = JSON.stringify({
 "session_id": "<replace me>",
 "code": "0000"
});

const requestOptions: RequestInit = {
  method: "POST",
  headers,
  body: raw,
  redirect: "follow"
};

fetch("https://api.kod.mobi/session/check", requestOptions)
  .then((response) => response.json())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));
<?php

$client = new \GuzzleHttp\Client(); 
$headers = [
  'x-api-key' => '<replace me>'
];

$body = '{
  "session_id": "<replace me>",
  "code": "0000"
}';

$request = new Request('POST', 'https://api.kod.mobi/session/check', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
package main

import (
  "fmt"
  "strings"
  "net/http"
  "io"
)

func main() {
  payload := strings.NewReader(`{
    "session_id": "<replace me>",
    "code": "0000"
  }`)

  client := &http.Client {}
  req, err := http.NewRequest("POST", "https://api.kod.mobi/session/check", payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("x-api-key", "<replace me>")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = reqwest::Client::builder()
        .build()?;

    let mut headers = reqwest::header::HeaderMap::new();
    headers.insert("x-api-key", "<replace me>".into());

    let data = r#"{
        "session_id": "<replace me>",
        "code": "0000"
    }"#;

    let json: serde_json::Value = serde_json::from_str(&data)?;

    let request = client.request(reqwest::Method::POST, "https://api.kod.mobi/session/check")
        .headers(headers)
        .json(&json);

    let response = request.send().await?;
    let body = response.text().await?;

    println!("{}", body);

    Ok(())
}

Example output

{
    "verify_token": "e8a064ca-7c4c-4c7b-a073-1e2cebaa057b",
    "is_test": false
}