MENU navbar-image

Introduction

API oficial para acceder a los sistemas académicos de la Universidad Santander, incluyendo información sobre actividades, materias, calificaciones y programas académicos.

Bienvenido a la API de la Universidad Santander

Esta documentación proporciona toda la información necesaria para trabajar con nuestra API, permitiendo acceder a sistemas académicos de la institución, consultar información sobre actividades, materias, calificaciones y programas académicos.

Información general

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer Bearer {YOUR_JWT_TOKEN}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

La API utiliza autenticación basada en tokens JWT. Debes obtener un token mediante el endpoint /api/auth/login proporcionando las credenciales del estudiante. El token debe incluirse en el encabezado de autorización como Bearer {token} para todas las solicitudes a endpoints protegidos. Los tokens expiran después de 1 hora y pueden renovarse usando el endpoint /api/auth/refresh.

Autenticación

Cerrar sesión

requires authentication

Invalida el token JWT del usuario autenticado actualmente.

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/auth/logout" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/auth/logout"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/auth/logout';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Successfully logged out"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request      

POST api/auth/logout

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

Refrescar token

requires authentication

Genera un nuevo token JWT para el usuario autenticado.

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/auth/refresh" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/auth/refresh"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/auth/refresh';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
    "token_type": "bearer",
    "expires_in": 3600
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request      

POST api/auth/refresh

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

Obtener información del usuario autenticado

requires authentication

Devuelve los datos del alumno autenticado actualmente.

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/auth/me" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/auth/me"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/auth/me';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "matricula": "M12011299",
    "nombre": "John Doe",
    "email": "johndoe@example.com",
    "estado": {
        "id": 1,
        "name": "Activo"
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request      

POST api/auth/me

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

Iniciar sesión

requires authentication

Autentica al alumno y devuelve un token JWT para usar en solicitudes posteriores.

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/auth/login" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"matricula\": \"M12011299\",
    \"password\": \"contraseña123\"
}"
const url = new URL(
    "https://api.santander.edu.mx/api/auth/login"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "matricula": "M12011299",
    "password": "contraseña123"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/auth/login';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'matricula' => 'M12011299',
            'password' => 'contraseña123',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
    "token_type": "bearer",
    "expires_in": 3600
}
 

Example response (401):


{
    "error": "Unauthorized"
}
 

Request      

POST api/auth/login

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

matricula   string   

Matrícula del alumno. Example: M12011299

password   string   

Contraseña del alumno. Example: contraseña123

Enviar correo electrónico de recuperación de contraseña

Regresa la confirmación de envío del correo electrónico de recuperación de contraseña. Solo se puede enviar 1 vez por minuto por ip diferente.

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/auth/forget" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"searchKey\": \"M12011299 o dvaldivia@unisant.edu.mx\"
}"
const url = new URL(
    "https://api.santander.edu.mx/api/auth/forget"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "searchKey": "M12011299 o dvaldivia@unisant.edu.mx"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/auth/forget';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'searchKey' => 'M12011299 o dvaldivia@unisant.edu.mx',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "sent": true
}
 

Example response (200):


{
    "sent": false
}
 

Example response (423):


{}
 

Request      

POST api/auth/forget

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

searchKey   string   

Matrícula o correo electrónico del alumno. Example: M12011299 o dvaldivia@unisant.edu.mx

Actividades

APIs para gestionar las actividades del alumno

Recalcula las actividades de un alumno en una materia

requires authentication

Obtiene y recalcula las actividades asociadas a un alumno en una materia específica. Devuelve un listado de todas las actividades con su estado actual (presentada, calificada, etc.) y la calificación correspondiente.

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/activities/151554/recount" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/activities/151554/recount"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/activities/151554/recount';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "actividades": [
    {
      "actividad_id": 6188,
      "presentada": true,
      "calificada": 1,
      "calificacion": 10,
      "estado": "aprobada",
      "invalidada": 0
    },
    {
      "actividad_id": 6189,
      "presentada": true,
      "calificada": 1,
      "calificacion": 6.6,
      "estado": "aprobada",
      "invalidada": 0
    }
  ]
}

/**
 

Example response (404):


{
    "message": "Alumno materia not found"
}
 

Request      

POST api/activities/{alumno_materia_id}/recount

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

alumno_materia_id   integer   

El ID de la relación alumno-materia. Example: 151554

Response

Response Fields

actividades   string[]   

Un array de objetos, donde cada objeto representa una actividad.

actividad_id   integer   

Identificador único de la actividad.

presentada   boolean   

Indica si el alumno ha entregado la actividad.

calificada   integer   

Indica si la actividad ha sido calificada (1) o no (0).

calificacion   number   

La calificación numérica asignada a la actividad.

estado   string   

Estado actual de la actividad. Posibles valores: "no presentada", "pendiente", "aprobada", "reprobada".

invalidada   integer   

Indica si la actividad ha sido invalidada (1) o no (0). /

Materias de Estudiantes

APIs para gestionar las materias de los estudiantes

Este controlador permite consultar las materias de un estudiante según su estado:

Todas las rutas requieren autenticación mediante token JWT.

Obtener Materias Actuales

requires authentication

Devuelve una lista de materias que se estan cursando para una oferta académica específica.

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/subjects/1/current" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/subjects/1/current"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/subjects/1/current';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Éxito):


[
    {
        "id": 1,
        "materia": "Matemáticas",
        "profesor": "Juan Pérez",
        "calificacion": 8.5,
        "estado": "Cursando",
        "estado_id": 1,
        "fecha_inicio": "2025-01-15",
        "fecha_termino": "2025-06-30"
    },
    {
        "id": 2,
        "materia": "Física",
        "profesor": "María García",
        "calificacion": null,
        "estado": "Cursando",
        "estado_id": 1,
        "fecha_inicio": "2025-01-15",
        "fecha_termino": "2025-06-30"
    }
]
 

Example response (401, No autenticado):


{
    "message": "No autenticado."
}
 

Example response (404, Oferta académica no encontrada):


{
    "message": "Oferta académica no encontrada"
}
 

Request      

POST api/subjects/{academic_offer_id}/current

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

academic_offer_id   integer   

El ID de la oferta académica. Example: 1

Response

Response Fields

id   integer   

El identificador único de la relación alumno-materia

materia   string   

Nombre completo de la materia

profesor   string   

Nombre completo del profesor que imparte la materia

calificacion   number|null   

Calificación obtenida por el alumno (null si aún no tiene calificación)

estado   string   

Descripción textual del estado de la materia (Cursando, Aprobada, Reprobada)

estado_id   integer   

Identificador numérico del estado (1=Cursando, 2=Aprobada, 3=Reprobada)

fecha_inicio   string   

date Fecha de inicio del curso (formato YYYY-MM-DD)

fecha_termino   string   

date Fecha de finalización del curso (formato YYYY-MM-DD)

Obtener Materias Aprobadas

requires authentication

Devuelve una lista de materias aprobadas para una oferta académica específica.

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/subjects/1/approved" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/subjects/1/approved"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/subjects/1/approved';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Éxito):


[
    {
        "id": 3,
        "materia": "Química",
        "profesor": "Roberto Sánchez",
        "calificacion": 9.2,
        "estado": "Aprobada",
        "estado_id": 2,
        "fecha_inicio": "2024-08-10",
        "fecha_termino": "2024-12-20"
    },
    {
        "id": 4,
        "materia": "Biología",
        "profesor": "Laura Martínez",
        "calificacion": 8.7,
        "estado": "Aprobada",
        "estado_id": 2,
        "fecha_inicio": "2024-08-10",
        "fecha_termino": "2024-12-20"
    }
]
 

Example response (401, No autenticado):


{
    "message": "No autenticado."
}
 

Example response (404, Oferta académica no encontrada):


{
    "message": "Oferta académica no encontrada"
}
 

Request      

POST api/subjects/{academic_offer_id}/approved

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

academic_offer_id   integer   

El ID de la oferta académica. Example: 1

Response

Response Fields

id   integer   

El identificador único de la relación alumno-materia

materia   string   

Nombre completo de la materia

profesor   string   

Nombre completo del profesor que impartió la materia

calificacion   number   

La calificación final obtenida por el alumno

estado   string   

Descripción textual del estado de la materia ("Aprobada")

estado_id   integer   

Identificador numérico del estado (2=Aprobada)

fecha_inicio   string   

date Fecha en que inició el curso (formato YYYY-MM-DD)

fecha_termino   string   

date Fecha en que finalizó el curso (formato YYYY-MM-DD)

Obtener Materias Reprobadas

requires authentication

Devuelve una lista de materias reprobadas para una oferta académica específica.

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/subjects/1/rejected" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/subjects/1/rejected"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/subjects/1/rejected';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Éxito):


[
    {
        "id": 5,
        "materia": "Historia",
        "profesor": "Carlos Rodríguez",
        "calificacion": 5.4,
        "estado": "Reprobada",
        "estado_id": 3,
        "fecha_inicio": "2024-02-05",
        "fecha_termino": "2024-06-15"
    },
    {
        "id": 6,
        "materia": "Literatura",
        "profesor": "Ana López",
        "calificacion": 5.9,
        "estado": "Reprobada",
        "estado_id": 3,
        "fecha_inicio": "2024-02-05",
        "fecha_termino": "2024-06-15"
    }
]
 

Example response (401, No autenticado):


{
    "message": "No autenticado."
}
 

Example response (404, Oferta académica no encontrada):


{
    "message": "Oferta académica no encontrada"
}
 

Request      

POST api/subjects/{academic_offer_id}/rejected

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

academic_offer_id   integer   

El ID de la oferta académica. Example: 1

Response

Response Fields

id   integer   

El identificador único de la relación alumno-materia

materia   string   

Nombre completo de la materia

profesor   string   

Nombre completo del profesor que impartió la materia

calificacion   number   

La calificación final obtenida por el alumno (inferior a la nota de aprobación)

estado   string   

Descripción textual del estado de la materia ("Reprobada")

estado_id   integer   

Identificador numérico del estado (3=Reprobada)

fecha_inicio   string   

date Fecha en que inició el curso (formato YYYY-MM-DD)

fecha_termino   string   

date Fecha en que finalizó el curso (formato YYYY-MM-DD)

Obtener Historial Completo de una Materia

requires authentication

Devuelve el historial académico completo de una materia específica para un alumno, mostrando todos los intentos realizados independientemente de su estado (cursando, aprobada, reprobada).

A diferencia de los endpoints de materias por estado (current/approved/rejected), este endpoint:

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/subjects/10" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/subjects/10"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/subjects/10';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Éxito):


[
    {
        "id": 10,
        "materia": "Cálculo Diferencial",
        "profesor": "Roberto Méndez",
        "calificacion": 4.5,
        "estado": "Reprobada",
        "estado_id": 3,
        "fecha_inicio": "2023-08-10",
        "fecha_termino": "2023-12-20"
    },
    {
        "id": 24,
        "materia": "Cálculo Diferencial",
        "profesor": "Laura Jiménez",
        "calificacion": 6.8,
        "estado": "Reprobada",
        "estado_id": 3,
        "fecha_inicio": "2024-02-05",
        "fecha_termino": "2024-06-15"
    },
    {
        "id": 42,
        "materia": "Cálculo Diferencial",
        "profesor": "Carlos Martínez",
        "calificacion": 8.2,
        "estado": "Aprobada",
        "estado_id": 2,
        "fecha_inicio": "2024-08-10",
        "fecha_termino": "2024-12-20"
    },
    {
        "id": 55,
        "materia": "Cálculo Diferencial",
        "profesor": "Silvia Ramírez",
        "calificacion": 9.5,
        "estado": "Aprobada",
        "estado_id": 2,
        "fecha_inicio": "2025-01-15",
        "fecha_termino": "2025-06-30"
    }
]
 

Example response (404, Materia no encontrada):


{
    "message": "La relación alumno-materia solicitada no existe"
}
 

Request      

POST api/subjects/{materia_alumno_id}

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

materia_alumno_id   integer   

El ID de la relación alumno-materia a consultar. Example: 10

Response

Response Fields

id   integer   

El identificador único de cada intento de la relación alumno-materia

materia   string   

Nombre de la materia (será el mismo en todos los registros)

profesor   string   

Nombre completo del profesor que impartió la materia en cada intento

calificacion   number   

La calificación obtenida en cada intento

estado   string   

Descripción textual del estado de la materia en cada intento

estado_id   integer   

Identificador numérico del estado (1=Cursando, 2=Aprobada, 3=Reprobada)

fecha_inicio   string   

date Fecha en que inició el curso (formato YYYY-MM-DD)

fecha_termino   string   

date Fecha en que finalizó el curso (formato YYYY-MM-DD)

Obtener imagen de materia

requires authentication

Devuelve la imagen de la materia específica para un alumno,

Example request:
curl --request GET \
    --get "https://api.santander.edu.mx/api/subjects/image/10" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/subjects/image/10"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/subjects/image/10';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
www-authenticate: jwt-auth
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Wrong number of segments"
}
 

Example response (404, Materia no encontrada):


{
    "message": "La relación alumno-materia solicitada no existe"
}
 

Request      

GET api/subjects/image/{materia_alumno_id}

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

materia_alumno_id   integer   

El ID de la relación alumno-materia a consultar. Example: 10

Ofertas Académicas

APIs para gestionar la información de ofertas académicas de los alumnos

Listar programas académicos del alumno

requires authentication

Obtiene la lista de programas académicos en los que está inscrito el alumno autenticado, incluyendo información detallada sobre cada programa y la cantidad de materias aprobadas.

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/academic_offers/list" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/academic_offers/list"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/academic_offers/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Programas encontrados):


{
    "data": [
        {
            "id": 12472,
            "alumno_id": 19058,
            "matricula": "2112100857",
            "name": "(O) Licenciatura en Administración de Empresas con Acentuación en Investigación y Docencia",
            "rvoe": "20171303",
            "tipo": "Licenciatura",
            "programa_id": 26,
            "cantidad_materias_aprobadas": 40,
            "cantidad_materias_total": 40,
            "estado": "Activo",
            "estado_id": 1,
            "imagen": "https://sii.santander.edu.mx/uc?id=1Tf3paIDVFQEnMcpuIdbz2Vyg4fKYXC3e&export=media"
        },
        {
            "id": 42979,
            "alumno_id": 19058,
            "matricula": "2112100857",
            "name": "Docente Memorable",
            "rvoe": "unisant2404",
            "tipo": "Curso",
            "programa_id": 257,
            "cantidad_materias_aprobadas": 0,
            "cantidad_materias_total": 1,
            "estado": "Activo",
            "estado_id": 1,
            "imagen": "https://sii.santander.edu.mx/uc?id=17GG_wgFVM1sr0rg5PUA-i6PBrb5vs2Uu&export=media"
        }
    ]
}
 

Example response (401, Usuario no autenticado):


{
    "message": "Unauthenticated."
}
 

Example response (404, Alumno no encontrado):


{
    "message": "No se encontró información académica para este alumno"
}
 

Request      

POST api/academic_offers/list

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

Response

Response Fields

id   integer   

El ID del registro de alumno-programa

alumno_id   integer   

El ID del alumno

matricula   string   

La matrícula del alumno

name   string   

El nombre del programa académico

rvoe   string   

La clave del RVOE del programa

tipo   string   

El tipo de RVOE (Licenciatura, Maestría, Curso, etc.)

programa_id   integer   

El ID del programa

cantidad_materias_aprobadas   integer   

Cantidad de materias aprobadas en este programa

cantidad_materias_total   integer   

Cantidad total de materias del programa

estado   string   

Estado actual del programa (Activo, Inactivo, etc.)

estado_id   integer   

ID del estado del programa

imagen   string   

URL de la imagen asociada al programa

Obtener detalle de una oferta académica

requires authentication

Devuelve información detallada sobre una oferta académica específica por su ID.

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/academic_offers/7/view" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/academic_offers/7/view"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/academic_offers/7/view';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Oferta académica encontrada):


{
    "id": 7,
    "name": "Métodos y Técnicas de lectura y redacción",
    "rvoe_clave": "00001",
    "rvoe_nombre": "Métodos y Técnicas de lectura y redacción",
    "rvoe_tipo": "Curso",
    "rvoe_tipo_id": 0,
    "modalidad": "Pago por materia",
    "modalidad_id": 1,
    "divisa": "MXN",
    "divisa_id": 4,
    "costo_inscripcion": 20,
    "costo_titulacion": 0,
    "descripcion_titulacion": "Sin descripción",
    "informacion_general": "<p>Sin descripci&oacute;n</p>",
    "configuraciones": {
        "requiere_solicitud_inscripcion": 1,
        "es_libre_acceso": 1,
        "es_libre_inscripcion": 1,
        "admite_nuevos_alumnos": 0,
        "siempre_activo": 1
    },
    "imagen": "https://sii.santander.edu.mx/uc?id=1EhvcrPdMZR6CCJ6wlTg_pVlEG5E6xAof&export=media",
    "tags": "Capacitación",
    "texto_registro": null,
    "plazos_colegiatura": null,
    "desplazamiento_para_inscripcion": 15,
    "materias_simultaneas": 1,
    "calificacion_minima_aprobatoria": 7,
    "cantidad_decimales": 1,
    "desplazamiento_dias_de_limite_pago": null,
    "obligatorias": 1,
    "materias_tronco_comun": 0,
    "materias_obligatorias": 1,
    "materias_opcionales": 0,
    "materias_opcionales_especialidad": 0,
    "materias_opcionales_investigacion": 0,
    "materias_opcionales_docencia": 0,
    "total_materias": 1
}
 

Example response (401, Usuario no autenticado):


{
    "message": "Unauthenticated."
}
 

Example response (404, Oferta académica no encontrada):


{
    "message": "No se encontró la oferta académica solicitada"
}
 

Request      

POST api/academic_offers/{academic_offer_id}/view

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

academic_offer_id   integer   

El ID de la oferta académica. Example: 7

Response

Response Fields

id   integer   

El ID de la oferta académica

name   string   

El nombre de la oferta académica

rvoe_clave   string   

La clave del RVOE

rvoe_nombre   string   

El nombre oficial del RVOE

rvoe_tipo   string   

El tipo de RVOE (Licenciatura, Maestría, Curso, etc.)

rvoe_tipo_id   integer   

El ID del tipo de RVOE

modalidad   string   

La modalidad de la oferta (ej. Pago por materia)

modalidad_id   integer   

El ID de la modalidad

divisa   string   

El código de la divisa para pagos

divisa_id   integer   

El ID de la divisa

costo_inscripcion   integer   

decimal El costo de inscripción

costo_titulacion   integer   

decimal El costo de titulación

descripcion_titulacion   string   

Descripción del proceso de titulación

informacion_general   string   

Información general del programa en HTML

configuraciones   object   

Configuraciones especiales del programa

requiere_solicitud_inscripcion   integer   

Si requiere solicitud de inscripción

es_libre_acceso   integer   

Si es de libre acceso

es_libre_inscripcion   integer   

Si tiene libre inscripción

admite_nuevos_alumnos   integer   

Si admite nuevos alumnos

siempre_activo   integer   

Si está siempre activo

imagen   string   

URL de la imagen asociada al programa

tags   string   

Etiquetas asociadas al programa

texto_registro   string   

Texto mostrado durante el registro

plazos_colegiatura   integer   

Plazos para el pago de colegiatura

desplazamiento_para_inscripcion   integer   

Días de desplazamiento para inscripción

materias_simultaneas   integer   

Número de materias que se pueden cursar simultáneamente

calificacion_minima_aprobatoria   integer   

decimal Calificación mínima para aprobar

cantidad_decimales   integer   

Cantidad de decimales en calificaciones

desplazamiento_dias_de_limite_pago   integer   

Días de desplazamiento para el límite de pago

obligatorias   integer   

Cantidad de materias obligatorias

materias_tronco_comun   integer   

Cantidad de materias del tronco común

materias_obligatorias   integer   

Cantidad de materias obligatorias

materias_opcionales   integer   

Cantidad de materias opcionales

materias_opcionales_especialidad   integer   

Cantidad de materias opcionales de especialidad

materias_opcionales_investigacion   integer   

Cantidad de materias opcionales de investigación

materias_opcionales_docencia   integer   

Cantidad de materias opcionales de docencia

total_materias   integer   

Cantidad total de materias del programa

Anuncios

Este endpoint recupera una lista de todos los anuncios. Los resultados se almacenan en caché por defecto.

Obtener lista de anuncios

requires authentication

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/announcements/list?renew=" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/announcements/list"
);

const params = {
    "renew": "0",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/announcements/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'renew' => '0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, éxito):


[
    {
        "id": 16,
        "title": "Hola, aviso de videoconferencia",
        "professor_id": 9,
        "professor_name": "LUIS ALEXIS TEPEPA ESTRADA",
        "materia_id": 518,
        "materia_name": "Métodos y Técnicas de lectura y redacción",
        "end_at": "2025-09-22 05:00:00"
    },
    {
        "id": 566,
        "title": "Aviso Demo perpetuo",
        "professor_id": 9,
        "professor_name": "LUIS ALEXIS TEPEPA ESTRADA",
        "materia_id": 518,
        "materia_name": "Métodos y Técnicas de lectura y redacción",
        "end_at": "2030-06-26 00:00:00"
    }
]
 

Example response (401, no autenticado):


{
    "message": "No autenticado."
}
 

Request      

POST api/announcements/list

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

renew   boolean  optional  

Opcional. Si se proporciona, fuerza una actualización de los datos ignorando la caché. Ejemplo: true Example: false

Obtener un anuncio específico por ID

requires authentication

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/announcements/16/view" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/announcements/16/view"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/announcements/16/view';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, éxito):


{
    "id": 566,
    "title": "Aviso Demo perpetuo",
    "professor_id": 9,
    "professor_name": "LUIS ALEXIS TEPEPA ESTRADA",
    "materia_id": 547,
    "materia_name": "Robando Calcetines",
    "end_at": "2030-06-26 00:00:00",
    "aviso": "<p>Aviso de prueba DEMO</p>"
}
 

Example response (401, no autenticado):


{
    "message": "No autenticado."
}
 

Example response (404, no encontrado):


{
    "message": "Anuncio no encontrado."
}
 

Request      

POST api/announcements/{announcement_id}/view

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

announcement_id   integer  optional  

requerido El ID del anuncio. Ejemplo: 566 Example: 16

Blog

APIs para gestionar el blog del sistema

Este controlador proporciona endpoints para acceder y gestionar las entradas del blog. Todas las operaciones requieren autenticación mediante token JWT.

Listar Blogs

requires authentication

Obtiene una lista paginada de blogs activos del sistema.

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/blog/list?limit=16&page=16&renew=" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/blog/list"
);

const params = {
    "limit": "16",
    "page": "16",
    "renew": "0",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/blog/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'limit' => '16',
            'page' => '16',
            'renew' => '0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Éxito):


{
    "current_page": 1,
    "data": [
        {
            "id": 9,
            "title": "Evento: Conferencia sobre Innovación y Emprendimiento",
            "fragment": "Nos complace anunciarles un evento muy especial que tendrá lugar en nuestra sede. ¡Es una oportunidad única que no querrán perderse! A continuación, les compartimos todos los detalles:",
            "owner_id": 359,
            "image_url": "image_url",
            "tags": "Conferencia",
            "created_at": "2024-10-09T09:31:44.000000Z",
            "updated_at": "2024-10-09T09:31:44.000000Z",
            "deleted_at": null
        }
    ],
    "first_page_url": "http://example.com/api/blogs?page=1",
    "from": 1,
    "last_page": 5,
    "last_page_url": "http://example.com/api/blogs?page=5",
    "links": [
        {
            "url": null,
            "label": "&laquo; Previous",
            "active": false
        },
        {
            "url": "http://example.com/api/blogs?page=1",
            "label": "1",
            "active": true
        }
    ],
    "next_page_url": "http://example.com/api/blogs?page=2",
    "path": "http://example.com/api/blogs",
    "per_page": 10,
    "prev_page_url": null,
    "to": 10,
    "total": 50
}
 

Example response (200, Sin resultados):


{
    "data": [],
    "current_page": 1,
    "per_page": 10,
    "total": 0,
    "last_page": 1
}
 

Example response (401, No autenticado):


{
    "message": "No autenticado."
}
 

Request      

POST api/blog/list

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

limit   integer  optional  

Número máximo de blogs por página (por defecto: 10) Example: 16

page   integer  optional  

Número de página a mostrar (por defecto: 1) Example: 16

renew   boolean  optional  

optional Ignora el caché Example: false

Response

Response Fields

current_page   integer   

Número de página actual

data   string[]   

Lista de blogs en la página actual

first_page_url   string   

URL de la primera página

from   integer   

Número del primer elemento en la página actual

last_page   integer   

Número total de páginas

last_page_url   string   

URL de la última página

links   string[]   

Enlaces de navegación

next_page_url   string|null   

URL de la siguiente página (null si no hay más páginas)

path   string   

URL base para la paginación

per_page   integer   

Número de elementos por página

prev_page_url   string|null   

URL de la página anterior (null si es la primera página)

to   integer   

Número del último elemento en la página actual

total   integer   

Número total de elementos

Ver entrada de blog

requires authentication

Obtiene una entrada especifica de blog.

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/blog/1/view" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/blog/1/view"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/blog/1/view';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Éxito):


{
    "id": 9,
    "title": "Evento: Conferencia sobre Innovación y Emprendimiento",
    "content": "Contenido del blog",
    "fragment": "Nos complace anunciarles un evento muy especial que tendrá lugar en nuestra sede. ¡Es una oportunidad única que no querrán perderse! A continuación, les compartimos todos los detalles:",
    "owner_id": 359,
    "image_url": "image_url",
    "tags": "Conferencia",
    "created_at": "2024-10-09T09:31:44.000000Z",
    "updated_at": "2024-10-09T09:31:44.000000Z",
    "deleted_at": null
}
 

Example response (401, No autenticado):


{
    "message": "No autenticado."
}
 

Example response (404, Entrada no encontrada):


{
 

Request      

POST api/blog/{blog_id}/view

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

blog_id   string   

El ID del blog. Example: 1

Response

Response Fields

id   integer   

ID de la entrada de blog

title   string   

Título de la entrada de blog

content   string   

Contenido completo de la entrada de blog

fragment   string   

Fragmento o resumen de la entrada de blog

owner_id   integer   

ID del propietario de la entrada de blog

image_url   string   

URL de la imagen asociada a la entrada de blog

tags   string   

Etiquetas asociadas a la entrada de blog

created_at   string   

Fecha y hora de creación de la entrada de blog

updated_at   string   

Fecha y hora de la última actualización de la entrada de blog

deleted_at   string|null   

Fecha y hora de eliminación de la entrada de blog (null si no ha sido eliminada)

Inbox

Endpoints relacionados con la gestión de los inbox.

Listar inboxes

requires authentication

Obtiene una colección de inboxes con sus relaciones cargadas.

Example request:
curl --request GET \
    --get "https://api.santander.edu.mx/api/inbox" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/inbox"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/inbox';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "alumno": {
                "id": 1,
                "name": "Juan Pérez"
            },
            "profesor": {
                "id": 2,
                "name": "María López"
            },
            "materia": {
                "id": 101,
                "name": "Matemáticas"
            },
            "user": {
                "id": 3,
                "name": "Carlos García"
            },
            "unread_messages_count": 5,
            "created_at": "2023-10-01T12:00:00Z",
            "updated_at": "2023-10-02T12:00:00Z"
        },
        {
            "id": 2,
            "alumno": {
                "id": 4,
                "name": "Ana Torres"
            },
            "profesor": {
                "id": 5,
                "name": "Luis Martínez"
            },
            "materia": {
                "id": 102,
                "name": "Historia"
            },
            "user": {
                "id": 6,
                "name": "Sofía Ramírez"
            },
            "unread_messages_count": 0,
            "created_at": "2023-10-03T12:00:00Z",
            "updated_at": "2023-10-04T12:00:00Z"
        }
    ],
    "meta": {
        "total_count": 2
    }
}
 

Request      

GET api/inbox

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

Listar inboxes con mensajes no leídos

requires authentication

Obtiene una colección de inboxes con sus relaciones cargadas de mensajes que no han sido leídos por el alumno.

Example request:
curl --request GET \
    --get "https://api.santander.edu.mx/api/inbox/unread" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/inbox/unread"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/inbox/unread';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "alumno": {
                "id": 1,
                "name": "Juan Pérez"
            },
            "profesor": {
                "id": 2,
                "name": "María López"
            },
            "materia": {
                "id": 101,
                "name": "Matemáticas"
            },
            "user": {
                "id": 3,
                "name": "Carlos García"
            },
            "unread_messages_count": 5,
            "created_at": "2023-10-01T12:00:00Z",
            "updated_at": "2023-10-02T12:00:00Z"
        },
        {
            "id": 2,
            "alumno": {
                "id": 4,
                "name": "Ana Torres"
            },
            "profesor": {
                "id": 5,
                "name": "Luis Martínez"
            },
            "materia": {
                "id": 102,
                "name": "Historia"
            },
            "user": {
                "id": 6,
                "name": "Sofía Ramírez"
            },
            "unread_messages_count": 0,
            "created_at": "2023-10-03T12:00:00Z",
            "updated_at": "2023-10-04T12:00:00Z"
        }
    ],
    "meta": {
        "total_count": 2,
        "unread_count": 5
    }
}
 

Request      

GET api/inbox/unread

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

Listar mensajes del inbox

requires authentication

Obtiene una colección de mensajes del inbox especificado.

Example request:
curl --request GET \
    --get "https://api.santander.edu.mx/api/inbox/messages?inbox_id=1" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"inbox_id\": 16
}"
const url = new URL(
    "https://api.santander.edu.mx/api/inbox/messages"
);

const params = {
    "inbox_id": "1",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "inbox_id": 16
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/inbox/messages';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'inbox_id' => '1',
        ],
        'json' => [
            'inbox_id' => 16,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 86560,
            "content": {
                "type": "text",
                "text": "Hola estudiante"
            },
            "viewed": true,
            "userable": {
                "id": 1039,
                "name": "DOCENTE MORELOS RVOE",
                "type": "\\App\\Models\\Profesores"
            },
            "created_at": "2025-05-05T15:53:30.000000Z"
        },
        {
            "id": 86561,
            "content": {
                "type": "audio",
                "url": "https://docs.google.com/uc?export=download&id=1IQk7bFxat4QVqgh1RDztbx06DAnGr2rq"
            },
            "viewed": true,
            "userable": {
                "id": 41879,
                "name": "DAVID VALDIVIA -",
                "type": "\\App\\Models\\Alumno"
            },
            "created_at": "2025-05-14T15:23:00.000000Z"
        }
    ]
}
 

Request      

GET api/inbox/messages

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

inbox_id   integer   

El ID del inbox. Example: 1

Body Parameters

inbox_id   integer   

The id of an existing record in the App\Models\InboxMessage table. Example: 16

Agregar mensaje al inbox

requires authentication

Agrega un nuevo mensaje al inbox especificado.

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/inbox/messages" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"inbox_id\": 1,
    \"message_content_type\": 1,
    \"message_content\": \"architecto\"
}"
const url = new URL(
    "https://api.santander.edu.mx/api/inbox/messages"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "inbox_id": 1,
    "message_content_type": 1,
    "message_content": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/inbox/messages';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'inbox_id' => 1,
            'message_content_type' => 1,
            'message_content' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 86577,
        "content": {
            "type": "text",
            "text": "Hola"
        },
        "viewed": false,
        "userable": {
            "id": 41879,
            "name": "DAVID VALDIVIA -",
            "type": "\\App\\Models\\Alumno"
        },
        "created_at": "2025-05-15T17:18:13.000000Z"
    }
}
 

Request      

POST api/inbox/messages

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

inbox_id   integer   

El ID del inbox. Example: 1

message_content_type   integer   

El tipo de contenido del mensaje (1: Texto, 2: Audio, 3: Documento). Example: 1

message_content   string/file   

El contenido del mensaje. Si es texto, debe ser un string. Si es un archivo, debe ser un archivo válido. Example: architecto

Notificaciones

APIs para gestionar notificaciones en el sistema

Establecer token de notificación

requires authentication

Registra un token de dispositivo para notificaciones push.

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/notifications/set" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"token\": \"eyJ0eXAiOiJKV1QiLC...\"
}"
const url = new URL(
    "https://api.santander.edu.mx/api/notifications/set"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "token": "eyJ0eXAiOiJKV1QiLC..."
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/notifications/set';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'token' => 'eyJ0eXAiOiJKV1QiLC...',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "success": true,
    "message": "Token establecido correctamente"
}
 

Example response (404):


{
    "message": "El token es obligatorio"
}
 

Request      

POST api/notifications/set

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

token   string   

El token del dispositivo para notificaciones push. Example: eyJ0eXAiOiJKV1QiLC...

Enviar notificación

requires authentication

Envía una notificación push a todos los dispositivos registrados.

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/notifications/send" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"Hola mi amigo\",
    \"message\": \"Wenas\",
    \"data\": null
}"
const url = new URL(
    "https://api.santander.edu.mx/api/notifications/send"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "Hola mi amigo",
    "message": "Wenas",
    "data": null
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/notifications/send';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'Hola mi amigo',
            'message' => 'Wenas',
            'data' => null,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "success": true
}
 

Example response (404):


{
    "message": "El título y el mensaje son obligatorios"
}
 

Request      

POST api/notifications/send

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

title   string   

El título de la notificación. Example: Hola mi amigo

message   string   

El mensaje de la notificación. Example: Wenas

data   string[]  optional  

Information adicional para la notificación.

Listar notificaciones

requires authentication

Obtiene una lista paginada de notificaciones.

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/notifications/list?page=16&limit=16&seen=16" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/notifications/list"
);

const params = {
    "page": "16",
    "limit": "16",
    "seen": "16",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/notifications/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'limit' => '16',
            'seen' => '16',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


[
    {
        "id": 8854246,
        "title": "Actividad Calificada",
        "message": "Tu actividad Redacción de un texto fue calificada,",
        "created_at": "2025-04-08T15:58:09.000000Z"
    },
    {
        "id": 8854247,
        "title": "Actividad Calificada",
        "message": "Tu actividad Redacción de un texto fue calificada,",
        "created_at": "2025-04-08T16:02:38.000000Z"
    }
]
 

Request      

POST api/notifications/list

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

optional El número de página (paginación). Default: 1 Example: 16

limit   integer  optional  

optional Número de elementos por página. Default: 10 Example: 16

seen   integer  optional  

optional Filtrar por estado de lectura (0,1). Default: null (devuelve ambos) Example: 16

Ver notificación

requires authentication

Obtiene información detallada sobre una notificación específica.

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/notifications/8854246/view" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/notifications/8854246/view"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/notifications/8854246/view';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": 8854246,
    "title": "Actividad Calificada",
    "message": "Tu actividad Redacción de un texto fue calificada,",
    "created_at": "2025-04-08T15:58:09.000000Z",
    "seen": true,
    "sended": true,
    "alumno_id": 72043,
    "alumnos_materias_id": null,
    "profesor_id": 1039,
    "materia_id": 518,
    "alumnos_actividades_respuestas_id": 979591,
    "clase_online_id": null,
    "orden_pago_id": null,
    "programa_id": 7,
    "actividad_id": 67,
    "plazo_id": null,
    "alumno": {
        "id": 72043,
        "name": "YAHIR GARDUZA GARDUZA"
    },
    "profesor": {
        "id": 1039,
        "name": "DOCENTE MORELOS RVOE"
    },
    "alumno_materia": {
        "id": 424348,
        "materia_id": 518,
        "calificacion": 0,
        "estado": 0,
        "profesor_id": 1039
    },
    "alumnos_actividades_respuestas": {
        "id": 979591,
        "retroalimentacion": null,
        "calificacion": 9.01,
        "intentos": 2,
        "calificado": 1
    },
    "programa": {
        "id": 7,
        "name": "Métodos y Técnicas de lectura y redacción"
    },
    "actividad": {
        "id": 67,
        "name": "Redacción de un texto"
    }
}
 

Request      

POST api/notifications/{id}/view

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

El ID de la notificación. Example: 8854246

Marcar notificación como vista

requires authentication

Marca una notificación específica como vista/leída.

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/notifications/8854246/seen" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/notifications/8854246/seen"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/notifications/8854246/seen';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "success": true,
    "message": "Notificación marcada como vista"
}
 

Request      

POST api/notifications/{id}/seen

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

El ID de la notificación. Example: 8854246

Verificar notificaciones nuevas

requires authentication

Verifica si hay notificaciones nuevas.

Example request:
curl --request GET \
    --get "https://api.santander.edu.mx/api/notifications/check" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/notifications/check"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/notifications/check';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "count": 5,
    "unseen": 2
}
 

Request      

GET api/notifications/check

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

Video llamadas

API para gestionar videos de clases

Listar video llamadas de clases

requires authentication

Obtiene la lista completa de videos disponibles. Opcionalmente se puede filtrar por oferta académica.

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/video/list?academic_offer_id=45" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/video/list"
);

const params = {
    "academic_offer_id": "45",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/video/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'academic_offer_id' => '45',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, success):


{
    [
        {
            "id": 8706,
            "meet_id": "DVC:1039:1742930643",
            "title": "Clase de pruebas ...",
            "resume": "Métodos y Técnicas de lectura y redacción- Prof: Docente Morelos RVOE",
            "materia": {
                "id": 518,
                "name": "Métodos y Técnicas de lectura y redacción"
            },
            "profesor": {
                "id": 1039,
                "name": "DOCENTE MORELOS RVOE"
            },
            "start_time": "2025-03-30T19:23:00.000000Z",
            "end_time": "2025-03-30T19:38:00.000000Z",
            "time_zone": "UTC",
            "duracion_min": 15,
            "password": "123456",
            "type": "Zoom",
            "link": "https://sii.santander.edu.mx/uc?id=182mesSFoTynhWsd1GCZJsUhCo69L608_&export=media"
        }
    ]
}
 

Example response (401, sin autenticación):


{
    "message": "Unauthenticated."
}
 

Request      

POST api/video/list

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

academic_offer_id   integer  optional  

opcional El ID de la oferta académica para filtrar los videos. Example: 45

Lista el historial de video llamadas

requires authentication

Obtiene la información de las video llamadas en general

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/video/history?academic_offer_id=13&subject_id=8706&professor_id=8706" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/video/history"
);

const params = {
    "academic_offer_id": "13",
    "subject_id": "8706",
    "professor_id": "8706",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/video/history';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'academic_offer_id' => '13',
            'subject_id' => '8706',
            'professor_id' => '8706',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, success):


{
[
{
"id": 8706,
"meet_id": "DVC:1039:1742930643",
"title": "Clase de pruebas ...",
"resume": "Métodos y Técnicas de lectura y redacción- Prof: Docente Morelos RVOE",
"materia": {
"id": 518,
"name": "Métodos y Técnicas de lectura y redacción"
},
"profesor": {
"id": 1039,
"name": "DOCENTE MORELOS RVOE"
},
"start_time": "2025-03-30T19:23:00.000000Z",
"end_time": "2025-03-30T19:38:00.000000Z",
"time_zone": "UTC",
"duracion_min": 15,
"password": "123456",
"type": "Zoom",
"link": "https://sii.santander.edu.mx/uc?id=182mesSFoTynhWsd1GCZJsUhCo69L608_&export=media",
"video_url": null,
}
]
}
 

Example response (401, sin autenticación):


{
    "message": "Unauthenticated."
}
 

Request      

POST api/video/history

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

academic_offer_id   integer   

El id de la oferta academic. Example: 13

subject_id   integer   

El id de la materia. Example: 8706

professor_id   integer   

El id del profesor. Example: 8706

Obtener video

requires authentication

Obtiene la información detallada de un video específico.

Example request:
curl --request POST \
    "https://api.santander.edu.mx/api/video/8706/view" \
    --header "Authorization: Bearer Bearer {YOUR_JWT_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.santander.edu.mx/api/video/8706/view"
);

const headers = {
    "Authorization": "Bearer Bearer {YOUR_JWT_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.santander.edu.mx/api/video/8706/view';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer Bearer {YOUR_JWT_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, success):


{
    "teacher_email": "gb+ghost@UNISANT.EDU.MX",
    "video_url": null,
    "type": "Zoom"
}
 

Example response (401, sin autenticación):


{
    "message": "Unauthenticated."
}
 

Example response (404, video no encontrado):


{
    "message": "Video not found"
}
 

Request      

POST api/video/{video_id}/view

Headers

Authorization      

Example: Bearer Bearer {YOUR_JWT_TOKEN}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

video_id   integer   

El ID del video. Example: 8706