Introdução
Bem-vindo à documentação da API EduStore. Aqui você encontrará os endpoints necessários para integrar matrículas, usuários, cursos e pagamentos à sua aplicação.
A URL base da API é a mesma do seu painel administrativo ou sala do aluno, dependendo do ambiente em que sua instituição utiliza a plataforma.
Ou seja, se o painel da sua escola está acessível em https://painel.seudominio.com.br, a API também estará disponível neste mesmo domínio, adicionando o prefixo /api/v1.
Esta documentação tem como objetivo fornecer todas as informações necessárias para trabalhar com nossa API.
Autenticação
Para autenticar requisições, inclua um header Authorization com o valor "Bearer {token}".
Todos os endpoints que exigem autenticação estão marcados com o selo Requer autenticação na documentação abaixo.
O token de acesso está disponível na aba Auth/Login da documentação da EduStore, de acordo com as credenciais do seu perfil.
Acadêmico
Endpoints relacionados às Áreas de Ocupação/Atuação.
Use estes endpoints para listar e consultar áreas acadêmicas disponíveis na plataforma.
GET api/v1/occupation-areas
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/occupation-areas';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/occupation-areas'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/occupation-areas" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/occupation-areas"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 295
vary: Origin
{
"data": [
{
"id": 14,
"area": "MBA ADministração",
"order": null
}
]
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/public-exams
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/public-exams';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/public-exams'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/public-exams" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/public-exams"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 288
vary: Origin
{
"data": {
"current_page": 1,
"data": [
{
"id": 39,
"title": "Prof. Rex Muller",
"slug": "prof-rex-muller",
"user_id": null,
"end_at": null,
"instructions": "I must have imitated somebody else's hand,' said the King, 'that saves a world of trouble, you know, and he hurried off. Alice thought to herself, as well as she ran. 'How surprised he'll be when he sneezes; For he can thoroughly enjoy The pepper when he sneezes; For he can EVEN finish, if he doesn't begin.' But she did not like the name: however, it only grinned a little more conversation with her head!' about once in a melancholy air, and, after waiting till she shook the house, and found quite a chorus of voices asked. 'Why, SHE, of course,' he said to Alice, she went nearer to watch.",
"tries": 3,
"exam_type": "DefaultExam",
"view": "default",
"time": 76,
"total_questions": "15",
"score_min": "67.00",
"created_at": "2022-11-23T14:48:24.000000Z",
"updated_at": "2024-04-17T18:22:02.000000Z",
"expired_at": null,
"public": 1,
"cover": "https://storage-fenix.jelastic.saveincloud.net/edustore/exams/covers/39/gcuOGk4SdYiy70InOH4Awe67a1vPw7dXQQNN4XD9.jpg",
"published_at": "2022-11-22 11:48:24",
"has_ranking": true,
"exam_performance": 0,
"deleted_at": null,
"show_answer": 0,
"order": "0",
"start_at": null,
"tolerance": 0,
"enable_proctoring": false,
"proctoring_threshold": "0.60",
"proctoring_snapshot_count": 5,
"proctoring_require_manual_review": false,
"proctoring_mode": "full",
"published_at_formated": "22/11/2022 11:48",
"end_at_formated": null,
"expiration_at_formated": null,
"content_title": "Prof. Rex Muller",
"expired": false,
"user_tries": [],
"questions": [
{
"id": 806,
"question_id": "806",
"exam_id": "39",
"order": "0",
"created_at": "2022-11-23T14:48:19.000000Z",
"updated_at": "2022-11-23T14:48:19.000000Z",
"statement": "Caterpillar decidedly, and the pool was getting so used to know. Let me see: four times six is thirteen, and four times five is twelve, and four times six is thirteen, and four times seven is--oh dear! I shall ever see such a subject!.",
"answer_1": "Alice again, for this curious child was very deep, or she fell very slowly, for she felt a little.",
"answer_2": "Queen to-day?' 'I should have croqueted the Queen's absence, and were resting in the other. In the.",
"answer_3": "RED rose-tree, and we put a white one in by mistake; and if I shall ever see you again, you dear.",
"answer_4": "Hatter. This piece of evidence we've heard yet,' said the Gryphon. 'It's all his fancy, that: he.",
"answer_5": "So she began: 'O Mouse, do you know what to do with you. Mind now!' The poor little feet, I wonder.",
"correct_answer": "2",
"published_at": "2022-11-22 14:48:15",
"is_exam": "0",
"deleted_at": null,
"is_cancelled": null,
"cancelled_reason": null,
"video_id": "1",
"correction_type": "DefaultCorrection",
"course_id": null,
"identifier": "676763",
"teacher_id": null,
"relevance_id": null,
"level_id": null,
"video_alternative_id": null,
"video_alternative_two_id": "3",
"player": "1",
"explanation_answer": null,
"video_alternative_three_id": null
}
]
}
],
"first_page_url": "https://painel.edustore.online/api/v1/public-exams?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "https://painel.edustore.online/api/v1/public-exams?page=1",
"links": [
{
"url": null,
"label": "« Anterior",
"page": null,
"active": false
},
{
"url": "https://painel.edustore.online/api/v1/public-exams?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Próximo »",
"page": null,
"active": false
}
],
"next_page_url": null,
"path": "https://painel.edustore.online/api/v1/public-exams",
"per_page": 10,
"prev_page_url": null,
"to": 1,
"total": 3
},
"message": "Exames públicos carregados com sucesso."
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/course/{slug}/sessions
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/course/qui/sessions';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/course/qui/sessions'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/course/qui/sessions" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/course/qui/sessions"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthenticated."
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
POST api/v1/enrollments
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/enrollments';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
'json' => [
'course_id' => 1,
'user' => '1 or [email protected]',
'payment_method' => 'credits',
'coupon' => 'DESCON20',
'period' => 365,
'period_type' => 1,
'modality' => 1,
'amount' => '200.00 or 0',
'discount_amount' => '35.50',
'aid' => 1,
'source' => 'Facebook',
'utm_campaign' => 'YouTube',
'utm_content' => 'Caroussel',
'utm_medium' => 'Journal',
'utm_source' => 'YouTube',
'utm_term' => 'Search',
'shift_id' => 1,
'querystring' => '&utm_source=youtube&aid=1',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/enrollments'
payload = {
"course_id": 1,
"user": "1 or [email protected]",
"payment_method": "credits",
"coupon": "DESCON20",
"period": 365,
"period_type": 1,
"modality": 1,
"amount": "200.00 or 0",
"discount_amount": "35.50",
"aid": 1,
"source": "Facebook",
"utm_campaign": "YouTube",
"utm_content": "Caroussel",
"utm_medium": "Journal",
"utm_source": "YouTube",
"utm_term": "Search",
"shift_id": 1,
"querystring": "&utm_source=youtube&aid=1"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()curl --request POST \
"https://painel.edustore.online/api/v1/enrollments" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1" \
--data "{
\"course_id\": 1,
\"user\": \"1 or [email protected]\",
\"payment_method\": \"credits\",
\"coupon\": \"DESCON20\",
\"period\": 365,
\"period_type\": 1,
\"modality\": 1,
\"amount\": \"200.00 or 0\",
\"discount_amount\": \"35.50\",
\"aid\": 1,
\"source\": \"Facebook\",
\"utm_campaign\": \"YouTube\",
\"utm_content\": \"Caroussel\",
\"utm_medium\": \"Journal\",
\"utm_source\": \"YouTube\",
\"utm_term\": \"Search\",
\"shift_id\": 1,
\"querystring\": \"&utm_source=youtube&aid=1\"
}"
const url = new URL(
"https://painel.edustore.online/api/v1/enrollments"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
let body = {
"course_id": 1,
"user": "1 or [email protected]",
"payment_method": "credits",
"coupon": "DESCON20",
"period": 365,
"period_type": 1,
"modality": 1,
"amount": "200.00 or 0",
"discount_amount": "35.50",
"aid": 1,
"source": "Facebook",
"utm_campaign": "YouTube",
"utm_content": "Caroussel",
"utm_medium": "Journal",
"utm_source": "YouTube",
"utm_term": "Search",
"shift_id": 1,
"querystring": "&utm_source=youtube&aid=1"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Exemplo de resposta (500):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Target [App\\Services\\Integration\\Contracts\\GatewayContract] is not instantiable while building [Knuckles\\Scribe\\Commands\\GenerateDocumentation, App\\Http\\Controllers\\Api\\v1\\EnrollmentController].",
"exception": "Illuminate\\Contracts\\Container\\BindingResolutionException",
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/Container.php",
"line": 1413,
"trace": [
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/Container.php",
"line": 1131,
"function": "notInstantiable",
"class": "Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/Container.php",
"line": 933,
"function": "build",
"class": "Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
"line": 1078,
"function": "resolve",
"class": "Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/Container.php",
"line": 864,
"function": "resolve",
"class": "Illuminate\\Foundation\\Application",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
"line": 1058,
"function": "make",
"class": "Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/Container.php",
"line": 1338,
"function": "make",
"class": "Illuminate\\Foundation\\Application",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/Container.php",
"line": 1239,
"function": "resolveClass",
"class": "Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/Container.php",
"line": 1162,
"function": "resolveDependencies",
"class": "Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/Container.php",
"line": 933,
"function": "build",
"class": "Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
"line": 1078,
"function": "resolve",
"class": "Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/Container.php",
"line": 864,
"function": "resolve",
"class": "Illuminate\\Foundation\\Application",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
"line": 1058,
"function": "make",
"class": "Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 286,
"function": "make",
"class": "Illuminate\\Foundation\\Application",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 1133,
"function": "getController",
"class": "Illuminate\\Routing\\Route",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 1062,
"function": "controllerMiddleware",
"class": "Illuminate\\Routing\\Route",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 834,
"function": "gatherMiddleware",
"class": "Illuminate\\Routing\\Route",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 816,
"function": "gatherRouteMiddleware",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 800,
"function": "runRouteWithinStack",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 764,
"function": "runRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 753,
"function": "dispatchToRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 200,
"function": "dispatch",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "Illuminate\\Foundation\\Http\\{closure}",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php",
"line": 59,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Barryvdh\\Debugbar\\Middleware\\InjectDebugbar",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/app/Http/Middleware/SanitizeInput.php",
"line": 29,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "App\\Http\\Middleware\\SanitizeInput",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
"line": 31,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
"line": 51,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php",
"line": 27,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\ValidatePostSize",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
"line": 109,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php",
"line": 61,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\HandleCors",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
"line": 58,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\TrustProxies",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php",
"line": 22,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 137,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 175,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 144,
"function": "sendRequestThroughRouter",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 256,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 249,
"function": "callLaravelRoute",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 86,
"function": "makeApiCall",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 39,
"function": "makeResponseCall",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
"line": 240,
"function": "__invoke",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
"line": 165,
"function": "iterateThroughStrategies",
"class": "Knuckles\\Scribe\\Extracting\\Extractor",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
"line": 97,
"function": "fetchResponses",
"class": "Knuckles\\Scribe\\Extracting\\Extractor",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
"line": 125,
"function": "processRoute",
"class": "Knuckles\\Scribe\\Extracting\\Extractor",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
"line": 72,
"function": "extractEndpointsInfoFromLaravelApp",
"class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
"line": 50,
"function": "extractEndpointsInfoAndWriteToDisk",
"class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
"line": 55,
"function": "get",
"class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 36,
"function": "handle",
"class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/Util.php",
"line": 43,
"function": "Illuminate\\Container\\{closure}",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 96,
"function": "unwrapIfClosure",
"class": "Illuminate\\Container\\Util",
"type": "::"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 35,
"function": "callBoundMethod",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/Container.php",
"line": 799,
"function": "call",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Console/Command.php",
"line": 211,
"function": "call",
"class": "Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/symfony/console/Command/Command.php",
"line": 341,
"function": "execute",
"class": "Illuminate\\Console\\Command",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Console/Command.php",
"line": 180,
"function": "run",
"class": "Symfony\\Component\\Console\\Command\\Command",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/symfony/console/Application.php",
"line": 1102,
"function": "run",
"class": "Illuminate\\Console\\Command",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/symfony/console/Application.php",
"line": 356,
"function": "doRunCommand",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/symfony/console/Application.php",
"line": 195,
"function": "doRun",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
"line": 197,
"function": "run",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/artisan",
"line": 35,
"function": "handle",
"class": "Illuminate\\Foundation\\Console\\Kernel",
"type": "->"
}
]
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/lives/{slug?}
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/lives/eveniet';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/lives/eveniet'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/lives/eveniet" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/lives/eveniet"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 282
vary: Origin
{
"data": {
"lives": {
"current_page": 1,
"data": [
{
"id": 78,
"title": "Reunião Prof. Fabiana",
"subtitle": "",
"url": "",
"slug": "reuniao-prof-fabiana-20f9ae4d-8766-405b-8f9c-ac0ade6f5057",
"cover": null,
"room_name": null,
"start_at": "2026-02-11 15:02:00",
"end_at": "2026-02-11 16:30:00",
"created_at": "11/02/2026 15:53",
"updated_at": "11/02/2026 15:53",
"courses": null,
"configs": null,
"provider": "edustore",
"type": "meetings",
"send_notification": 1,
"hashid": "yp14ZBN0YKw5bJW0bXR8qoAOL3eWng",
"isFuture": false,
"isLiveNow": false
}
],
"first_page_url": "https://painel.edustore.online/api/v1/lives/eveniet?page=1",
"from": 1,
"last_page": 2,
"last_page_url": "https://painel.edustore.online/api/v1/lives/eveniet?page=2",
"links": [
{
"url": null,
"label": "« Anterior",
"page": null,
"active": false
},
{
"url": "https://painel.edustore.online/api/v1/lives/eveniet?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": "https://painel.edustore.online/api/v1/lives/eveniet?page=2",
"label": "2",
"page": 2,
"active": false
},
{
"url": "https://painel.edustore.online/api/v1/lives/eveniet?page=2",
"label": "Próximo »",
"page": 2,
"active": false
}
],
"next_page_url": "https://painel.edustore.online/api/v1/lives/eveniet?page=2",
"path": "https://painel.edustore.online/api/v1/lives/eveniet",
"per_page": 30,
"prev_page_url": null,
"to": 1,
"total": 42
},
"future": [],
"past": [
{
"id": 78,
"title": "Reunião Prof. Fabiana",
"subtitle": "",
"url": "",
"slug": "reuniao-prof-fabiana-20f9ae4d-8766-405b-8f9c-ac0ade6f5057",
"cover": null,
"room_name": null,
"start_at": "2026-02-11 15:02:00",
"end_at": "2026-02-11 16:30:00",
"created_at": "11/02/2026 15:53",
"updated_at": "11/02/2026 15:53",
"courses": null,
"configs": null,
"provider": "edustore",
"type": "meetings",
"send_notification": 1,
"hashid": "yp14ZBN0YKw5bJW0bXR8qoAOL3eWng",
"isFuture": false,
"isLiveNow": false
}
],
"current": null
},
"message": "Lives carregadas com sucesso"
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/courses
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/courses';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
'query' => [
'per_page' => '0',
],
'json' => [
'upsell' => true,
'gifts' => true,
'area' => true,
'type' => 0,
'all' => false,
'modality' => 0,
'spotlight' => true,
'query' => 'temporibus',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/courses'
payload = {
"upsell": true,
"gifts": true,
"area": true,
"type": 0,
"all": false,
"modality": 0,
"spotlight": true,
"query": "temporibus"
}
params = {
'per_page': '0',
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/courses?per_page=0" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1" \
--data "{
\"upsell\": true,
\"gifts\": true,
\"area\": true,
\"type\": 0,
\"all\": false,
\"modality\": 0,
\"spotlight\": true,
\"query\": \"temporibus\"
}"
const url = new URL(
"https://painel.edustore.online/api/v1/courses"
);
const params = {
"per_page": "0",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
let body = {
"upsell": true,
"gifts": true,
"area": true,
"type": 0,
"all": false,
"modality": 0,
"spotlight": true,
"query": "temporibus"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 278
vary: Origin
{
"current_page": 1,
"data": [],
"first_page_url": "https://painel.edustore.online/api/v1/courses?page=1",
"from": null,
"last_page": 1,
"last_page_url": "https://painel.edustore.online/api/v1/courses?page=1",
"links": [
{
"url": null,
"label": "« Anterior",
"page": null,
"active": false
},
{
"url": "https://painel.edustore.online/api/v1/courses?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Próximo »",
"page": null,
"active": false
}
],
"next_page_url": null,
"path": "https://painel.edustore.online/api/v1/courses",
"per_page": 15,
"prev_page_url": null,
"to": null,
"total": 0
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/courses/search
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/courses/search';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
'query' => [
'query' => 'demo 56',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/courses/search'
params = {
'query': 'demo 56',
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/courses/search?query=demo+56" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/courses/search"
);
const params = {
"query": "demo 56",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 277
vary: Origin
{
"message": "Busca de cursos efetuada com sucesso",
"data": {
"current_page": 1,
"data": [],
"first_page_url": "https://painel.edustore.online/api/v1/courses/search?page=1",
"from": null,
"last_page": 1,
"last_page_url": "https://painel.edustore.online/api/v1/courses/search?page=1",
"links": [
{
"url": null,
"label": "« Anterior",
"page": null,
"active": false
},
{
"url": "https://painel.edustore.online/api/v1/courses/search?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Próximo »",
"page": null,
"active": false
}
],
"next_page_url": null,
"path": "https://painel.edustore.online/api/v1/courses/search",
"per_page": 25,
"prev_page_url": null,
"to": null,
"total": 0
}
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/courses/{course_id}
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/courses/omnis';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
'json' => [
'unlock' => true,
'type' => 0,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/courses/omnis'
payload = {
"unlock": true,
"type": 0
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers, json=payload)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/courses/omnis" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1" \
--data "{
\"unlock\": true,
\"type\": 0
}"
const url = new URL(
"https://painel.edustore.online/api/v1/courses/omnis"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
let body = {
"unlock": true,
"type": 0
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Exemplo de resposta (404):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 276
vary: Origin
{
"message": "Curso não encontrado"
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/teachers
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/teachers';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
'json' => [
'courses[]' => 6,
'sessions[]' => 1,
'type' => 1,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/teachers'
payload = {
"courses[]": 6,
"sessions[]": 1,
"type": 1
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers, json=payload)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/teachers" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1" \
--data "{
\"courses[]\": 6,
\"sessions[]\": 1,
\"type\": 1
}"
const url = new URL(
"https://painel.edustore.online/api/v1/teachers"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
let body = {
"courses[]": 6,
"sessions[]": 1,
"type": 1
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 275
vary: Origin
{
"message": "Professores carregados com sucesso.",
"data": [
{
"name": "Ms. Dortha Baumbach",
"avatar": "https://images.unsplash.com/photo-1598346762291-aee88549193f?crop=entropy&cs=tinysrgb&fit=crop&fm=jpg&h=60&ixid=MnwxfDB8MXxyYW5kb218MHx8dXNlcnx8fHx8fDE2NjY4MjE0Njk&ixlib=rb-4.0.3&q",
"teacher_name": "Ms. Dortha Baumbach",
"id": 2,
"about": "Said he thanked the whiting kindly, but he would not stoop? Soup of the suppressed guinea-pigs, filled the air, and came back again. 'Keep your temper,' said the Mock Turtle. 'Seals, turtles, salmon, and so on; then, when you've cleared all the creatures argue. It's enough to drive one crazy!' The Footman seemed to be Involved in this way! Stop this moment, I tell you, you coward!' and at once in the window?' 'Sure, it's an arm, yer honour!' (He pronounced it 'arrum.') 'An arm, you goose! Who.",
"user_id": "40",
"created_at": "2022-10-26T18:58:00.000000Z",
"updated_at": "2022-10-26T18:58:00.000000Z",
"image": null,
"linkedin": null,
"facebook": null,
"instagram": null,
"office": null,
"website": null,
"status_id": 1,
"type_id": 1,
"youtube": null,
"courses_sessions_teachers": []
}
]
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/faq
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/faq';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
'query' => [
'scope' => 'illum',
'exclude_globals' => '0',
'paginate' => '10',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/faq'
params = {
'scope': 'illum',
'exclude_globals': '0',
'paginate': '10',
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/faq?scope=illum&exclude_globals=&paginate=10" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/faq"
);
const params = {
"scope": "illum",
"exclude_globals": "0",
"paginate": "10",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 274
vary: Origin
{
"current_page": 1,
"data": [
{
"id": 1,
"title": "FAQ Geral",
"scope_id": null,
"entities": null,
"local": null,
"deleted_at": null,
"faq_sections": [
{
"id": 1,
"title": "Quais são os métodos de pagamento suportados e como posso gerenciar assinaturas?",
"content": "<p>A <b>EduStore </b>é a plataforma com maior flexibilização de pagamentos do mercado. Aqui você vende em:</p><ul><li><b>Boleto à vista </b></li><li><b>Boleto parcelado</b></li><li><b>Cartão tradicional</b></li><li><b>Cartão recorrente</b></li><li><b>Assinatura Recorrente</b></li><li><b>Doação (pague o quanto quiser)</b></li><li><b>2 Cartões</b></li><li><b>PIX<br></b></li></ul><p>Além disso, você não fica refém de um gateway de pagamentos, aqui você pode usar múltiplos gateways e inclusive gateways por produto.</p>",
"created_at": "29/01/2024 18:02",
"updated_at": "02/10/2024 13:03",
"faq_id": 1
}
]
}
],
"first_page_url": "https://painel.edustore.online/api/v1/faq?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "https://painel.edustore.online/api/v1/faq?page=1",
"links": [
{
"url": null,
"label": "« Anterior",
"page": null,
"active": false
},
{
"url": "https://painel.edustore.online/api/v1/faq?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Próximo »",
"page": null,
"active": false
}
],
"next_page_url": null,
"path": "https://painel.edustore.online/api/v1/faq",
"per_page": 10,
"prev_page_url": null,
"to": 1,
"total": 1
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/schedules/{id}
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/schedules/molestiae';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/schedules/molestiae'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/schedules/molestiae" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/schedules/molestiae"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 273
vary: Origin
{
"message": "Cronograma carregado com sucesso",
"data": null
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
Auth
API para autenticar, registrar, logar e recuperar senha de um usuário
GET api/v1/auth/logout
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/auth/logout';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/auth/logout'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/auth/logout" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/auth/logout"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthenticated."
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
POST api/v1/auth/login
requires authentication
Realiza a autenticação de um usuário na plataforma e retorna os dados do perfil,
juntamente com o token de acesso (access_token).
O access_token deve ser enviado em todas as requisições autenticadas,
utilizando o cabeçalho:
Authorization: Bearer {access_token}
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/auth/login';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
'json' => [
'email' => '[email protected]',
'password' => '6b)YNp',
'device_name' => 'quidem',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/auth/login'
payload = {
"email": "[email protected]",
"password": "6b)YNp",
"device_name": "quidem"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()curl --request POST \
"https://painel.edustore.online/api/v1/auth/login" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1" \
--data "{
\"email\": \"[email protected]\",
\"password\": \"6b)YNp\",
\"device_name\": \"quidem\"
}"
const url = new URL(
"https://painel.edustore.online/api/v1/auth/login"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
let body = {
"email": "[email protected]",
"password": "6b)YNp",
"device_name": "quidem"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Exemplo de resposta (200):
{
"data": {
"id": 57806,
"name": "Tester Test",
"email": "[email protected]",
"phone": "51999999999",
"document": "29900578031",
"document_type": "1",
"created_at": "2024-01-07T21:38:07.000000Z",
"updated_at": "2025-09-15T21:41:59.000000Z",
"last_login": "2024-01-09 02:05:28",
"born_at": "1994-03-18",
"slug": "tester-test",
"gender": "1",
"first_name": "Tester",
"last_name": "Test",
"roles": [
{
"id": 34,
"role_id": "34",
"user_id": "57806",
"name": "Relatório Matrículas",
"slug": "reports-enrollments"
}
]
},
"message": "Login efetuado com sucesso!",
"status": 200,
"access_token": "51|EZVCcKt98M4lpfnAjIffn437c168cty00uJGUJZE"
}
Exemplo de resposta (422):
{
"message": "E-mail ou senha incorretos. Verifique os dados e tente novamente."
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
POST api/v1/auth/forget
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/auth/forget';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/auth/forget'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('POST', url, headers=headers)
response.json()curl --request POST \
"https://painel.edustore.online/api/v1/auth/forget" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/auth/forget"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Exemplo de resposta (404):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 285
vary: Origin
{
"message": "Usuário não encontrado, contate o suporte.",
"status": 404
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
POST api/v1/auth/register
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/auth/register';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
'json' => [
'name' => 'Kelvyn Carbone',
'email' => '[email protected]',
'password' => '9&9DM@zu3',
'document' => 'voluptas',
'phone' => '51999999999',
'born_at' => '1994-03-18',
'password_confirmation' => 'deleniti',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/auth/register'
payload = {
"name": "Kelvyn Carbone",
"email": "[email protected]",
"password": "9&9DM@zu3",
"document": "voluptas",
"phone": "51999999999",
"born_at": "1994-03-18",
"password_confirmation": "deleniti"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()curl --request POST \
"https://painel.edustore.online/api/v1/auth/register" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1" \
--data "{
\"name\": \"Kelvyn Carbone\",
\"email\": \"[email protected]\",
\"password\": \"9&9DM@zu3\",
\"document\": \"voluptas\",
\"phone\": \"51999999999\",
\"born_at\": \"1994-03-18\",
\"password_confirmation\": \"deleniti\"
}"
const url = new URL(
"https://painel.edustore.online/api/v1/auth/register"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
let body = {
"name": "Kelvyn Carbone",
"email": "[email protected]",
"password": "9&9DM@zu3",
"document": "voluptas",
"phone": "51999999999",
"born_at": "1994-03-18",
"password_confirmation": "deleniti"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Exemplo de resposta (429):
Show headers
x-ratelimit-limit: 10
x-ratelimit-remaining: 0
retry-after: 59
x-ratelimit-reset: 1772426148
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Too Many Attempts.",
"exception": "Illuminate\\Http\\Exceptions\\ThrottleRequestsException",
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 254,
"trace": [
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 158,
"function": "buildException",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 93,
"function": "handleRequest",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 166,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 129,
"function": "handleRequest",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 90,
"function": "handleRequestUsingNamedLimiter",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 166,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 93,
"function": "handleRequest",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/sanctum/src/Http/Middleware/EnsureFrontendRequestsAreStateful.php",
"line": 26,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "Laravel\\Sanctum\\Http\\Middleware\\{closure}",
"class": "Laravel\\Sanctum\\Http\\Middleware\\EnsureFrontendRequestsAreStateful",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 137,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/sanctum/src/Http/Middleware/EnsureFrontendRequestsAreStateful.php",
"line": 25,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Laravel\\Sanctum\\Http\\Middleware\\EnsureFrontendRequestsAreStateful",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 137,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 821,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 800,
"function": "runRouteWithinStack",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 764,
"function": "runRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 753,
"function": "dispatchToRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 200,
"function": "dispatch",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "Illuminate\\Foundation\\Http\\{closure}",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php",
"line": 59,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Barryvdh\\Debugbar\\Middleware\\InjectDebugbar",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/app/Http/Middleware/SanitizeInput.php",
"line": 29,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "App\\Http\\Middleware\\SanitizeInput",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
"line": 31,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
"line": 51,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php",
"line": 27,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\ValidatePostSize",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
"line": 109,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php",
"line": 61,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\HandleCors",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
"line": 58,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\TrustProxies",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php",
"line": 22,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 137,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 175,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 144,
"function": "sendRequestThroughRouter",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 256,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 249,
"function": "callLaravelRoute",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 86,
"function": "makeApiCall",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 39,
"function": "makeResponseCall",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
"line": 240,
"function": "__invoke",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
"line": 165,
"function": "iterateThroughStrategies",
"class": "Knuckles\\Scribe\\Extracting\\Extractor",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
"line": 97,
"function": "fetchResponses",
"class": "Knuckles\\Scribe\\Extracting\\Extractor",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
"line": 125,
"function": "processRoute",
"class": "Knuckles\\Scribe\\Extracting\\Extractor",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
"line": 72,
"function": "extractEndpointsInfoFromLaravelApp",
"class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
"line": 50,
"function": "extractEndpointsInfoAndWriteToDisk",
"class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
"line": 55,
"function": "get",
"class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 36,
"function": "handle",
"class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/Util.php",
"line": 43,
"function": "Illuminate\\Container\\{closure}",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 96,
"function": "unwrapIfClosure",
"class": "Illuminate\\Container\\Util",
"type": "::"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 35,
"function": "callBoundMethod",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/Container.php",
"line": 799,
"function": "call",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Console/Command.php",
"line": 211,
"function": "call",
"class": "Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/symfony/console/Command/Command.php",
"line": 341,
"function": "execute",
"class": "Illuminate\\Console\\Command",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Console/Command.php",
"line": 180,
"function": "run",
"class": "Symfony\\Component\\Console\\Command\\Command",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/symfony/console/Application.php",
"line": 1102,
"function": "run",
"class": "Illuminate\\Console\\Command",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/symfony/console/Application.php",
"line": 356,
"function": "doRunCommand",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/symfony/console/Application.php",
"line": 195,
"function": "doRun",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
"line": 197,
"function": "run",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/artisan",
"line": 35,
"function": "handle",
"class": "Illuminate\\Foundation\\Console\\Kernel",
"type": "->"
}
]
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/auth/me
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/auth/me';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/auth/me'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/auth/me" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/auth/me"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthenticated."
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
Blog
API gerenciar posts do blog EduStore
GET api/v1/blog/posts
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/blog/posts';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/blog/posts'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/blog/posts" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/blog/posts"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 280
vary: Origin
{
"message": "Lista de posts do blog carregado com sucesso!",
"data": {
"current_page": 1,
"data": [
{
"id": 12,
"title": "Acessibilidade Multiplataforma",
"subtitle": "Como Garantir uma Experiência Uniforme para Todos os Alunos",
"slug": "acessibilidade-multiplataforma",
"card_image": "https://storage-fenix.jelastic.saveincloud.net/edustore/blog-posts/capas/QbG0hTTeS5hHMTRLpPG2QX0DLdsxrqAG5zC3DSGJ.webp",
"tags": [
"multiplataforma",
"aplicativo",
"app",
"ios",
"android"
],
"published_at": "02/10/2024 17:53",
"user_id": 1,
"url_post": "https:///blog/post/acessibilidade-multiplataforma/12"
}
],
"first_page_url": "https://painel.edustore.online/api/v1/blog/posts?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "https://painel.edustore.online/api/v1/blog/posts?page=1",
"links": [
{
"url": null,
"label": "« Anterior",
"page": null,
"active": false
},
{
"url": "https://painel.edustore.online/api/v1/blog/posts?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Próximo »",
"page": null,
"active": false
}
],
"next_page_url": null,
"path": "https://painel.edustore.online/api/v1/blog/posts",
"per_page": 25,
"prev_page_url": null,
"to": 1,
"total": 6
}
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/blog/posts/{post_id}
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/blog/posts/1';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/blog/posts/1'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/blog/posts/1" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/blog/posts/1"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (404):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 279
vary: Origin
{
"message": "Post não encontrado"
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
CRM
API para newsletter
POST api/v1/newsletter
requires authentication
Configurações
API para busca das configurações públicas
GET api/v1/configs
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/configs';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/configs'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/configs" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/configs"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 272
vary: Origin
{
"message": "Configurações listadas com sucesso",
"data": [
{
"config_name": "app_name",
"config_value": "EduStore"
}
]
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
Dashboards
API para buscar dashboards
GET api/v1/dashboards/academic
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/dashboards/academic';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
'query' => [
'start_at' => 'DD/MM/YYYY',
'end_at' => 'DD/MM/YYYY',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/dashboards/academic'
params = {
'start_at': 'DD/MM/YYYY',
'end_at': 'DD/MM/YYYY',
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/dashboards/academic?start_at=DD%2FMM%2FYYYY&end_at=DD%2FMM%2FYYYY" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/dashboards/academic"
);
const params = {
"start_at": "DD/MM/YYYY",
"end_at": "DD/MM/YYYY",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthenticated."
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/dashboards/financial
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/dashboards/financial';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
'query' => [
'start_at' => 'DD/MM/YYYY',
'end_at' => 'DD/MM/YYYY',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/dashboards/financial'
params = {
'start_at': 'DD/MM/YYYY',
'end_at': 'DD/MM/YYYY',
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/dashboards/financial?start_at=DD%2FMM%2FYYYY&end_at=DD%2FMM%2FYYYY" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/dashboards/financial"
);
const params = {
"start_at": "DD/MM/YYYY",
"end_at": "DD/MM/YYYY",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthenticated."
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/dashboards/operator
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/dashboards/operator';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
'query' => [
'start_at' => 'DD/MM/YYYY',
'end_at' => 'DD/MM/YYYY',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/dashboards/operator'
params = {
'start_at': 'DD/MM/YYYY',
'end_at': 'DD/MM/YYYY',
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/dashboards/operator?start_at=DD%2FMM%2FYYYY&end_at=DD%2FMM%2FYYYY" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/dashboards/operator"
);
const params = {
"start_at": "DD/MM/YYYY",
"end_at": "DD/MM/YYYY",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthenticated."
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/dashboards/marketing
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/dashboards/marketing';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
'query' => [
'start_at' => 'DD/MM/YYYY',
'end_at' => 'DD/MM/YYYY',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/dashboards/marketing'
params = {
'start_at': 'DD/MM/YYYY',
'end_at': 'DD/MM/YYYY',
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/dashboards/marketing?start_at=DD%2FMM%2FYYYY&end_at=DD%2FMM%2FYYYY" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/dashboards/marketing"
);
const params = {
"start_at": "DD/MM/YYYY",
"end_at": "DD/MM/YYYY",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthenticated."
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/dashboards/communities
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/dashboards/communities';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
'query' => [
'start_at' => 'DD/MM/YYYY',
'end_at' => 'DD/MM/YYYY',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/dashboards/communities'
params = {
'start_at': 'DD/MM/YYYY',
'end_at': 'DD/MM/YYYY',
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/dashboards/communities?start_at=DD%2FMM%2FYYYY&end_at=DD%2FMM%2FYYYY" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/dashboards/communities"
);
const params = {
"start_at": "DD/MM/YYYY",
"end_at": "DD/MM/YYYY",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthenticated."
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/dashboards/infra-balance
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/dashboards/infra-balance';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/dashboards/infra-balance'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/dashboards/infra-balance" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/dashboards/infra-balance"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthenticated."
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
Localizações
API para buscar cidades
GET api/v1/cities
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/cities';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/cities'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/cities" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/cities"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 299
vary: Origin
[
{
"id": 1,
"state_id": "1",
"city": "Acrelandia"
}
]
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/states
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/states';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/states'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/states" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/states"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 298
vary: Origin
{
"message": "Estados carregados com sucesso",
"data": [
{
"id": 1,
"name": "Acre",
"state": "AC",
"capital": "Rio Branco",
"slug_capital": "rio-branco",
"slug_state": "acre",
"preposition": "no"
}
]
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/countries
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/countries';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/countries'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/countries" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/countries"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 297
vary: Origin
{
"message": "Países carregados com sucesso",
"data": [
{
"id": 1,
"country": "Açores",
"population": "245746",
"continent": "África",
"region": "Norte da África",
"capital": "Ponta Delgada",
"area_code": "0"
}
]
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/cep
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/cep';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/cep'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/cep" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/cep"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 286
vary: Origin
{
"message": "Para buscar você precisar o CEP."
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
Matrículas
Listar matrículas
requires authentication
Retorna uma lista paginada de matrículas com informações do aluno, curso e status.
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/enrollments';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
'query' => [
'per_page' => '14',
'page' => '10',
'status_id' => '6',
'course_id' => '3',
'start_date' => 'omnis',
'end_date' => 'dolorem',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/enrollments'
params = {
'per_page': '14',
'page': '10',
'status_id': '6',
'course_id': '3',
'start_date': 'omnis',
'end_date': 'dolorem',
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/enrollments?per_page=14&page=10&status_id=6&course_id=3&start_date=omnis&end_date=dolorem" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/enrollments"
);
const params = {
"per_page": "14",
"page": "10",
"status_id": "6",
"course_id": "3",
"start_date": "omnis",
"end_date": "dolorem",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (200):
{
"data": [
{
"id": 123,
"user_id": 45,
"name": "Maria Silva",
"email": "[email protected]",
"order_id": 567,
"course_id": 789,
"course_title": "Curso de Matemática",
"status_id": 1,
"status": "Ativo",
"shift_id": null,
"operator_id": null,
"accepted_contract": 1,
"cancelled_at": null,
"activated_at": "2025-01-10 08:00:00",
"created_at": "2025-01-05 10:30:00",
"updated_at": "2025-09-15 12:00:00",
"deleted_at": null,
"expiration_at": "2025-12-10",
"last_expiration_at": null,
"contract_id": 99,
"enrollment_reference_id": null,
"class_id": null,
"period": 12,
"period_type": "months",
"order_item_id": 456,
"observation": null,
"source": "checkout",
"enable_contents": true,
"enable_contents_reference_date": "2025-01-10",
"situation": "ativo"
}
],
"meta": {
"total": 120,
"per_page": 20,
"current_page": 1,
"last_page": 6
}
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
Outros
GET api/v1/gateway/{gateway}/transaction/postback
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/gateway/est/transaction/postback';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/gateway/est/transaction/postback'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/gateway/est/transaction/postback" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/gateway/est/transaction/postback"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 290
vary: Origin
{
"message": "[EDUSTORE] - Requisição inválida ou não aceita."
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/gateway/{gateway}/reprocess/{identifier}/{gateway_id?}
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/gateway/quia/reprocess/aut/quo';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/gateway/quia/reprocess/aut/quo'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/gateway/quia/reprocess/aut/quo" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/gateway/quia/reprocess/aut/quo"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (500):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 289
vary: Origin
{
"message": "Attempt to read property \"plugin\" on null",
"exception": "ErrorException",
"file": "/Users/kelvyncarbone/Desktop/www/edustore/app/Http/Controllers/Api/v1/GatewayController.php",
"line": 20,
"trace": [
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php",
"line": 258,
"function": "handleError",
"class": "Illuminate\\Foundation\\Bootstrap\\HandleExceptions",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/app/Http/Controllers/Api/v1/GatewayController.php",
"line": 20,
"function": "Illuminate\\Foundation\\Bootstrap\\{closure}",
"class": "Illuminate\\Foundation\\Bootstrap\\HandleExceptions",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Controller.php",
"line": 54,
"function": "reprocessPostback",
"class": "App\\Http\\Controllers\\Api\\v1\\GatewayController",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php",
"line": 43,
"function": "callAction",
"class": "Illuminate\\Routing\\Controller",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 265,
"function": "dispatch",
"class": "Illuminate\\Routing\\ControllerDispatcher",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 211,
"function": "runController",
"class": "Illuminate\\Routing\\Route",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 822,
"function": "run",
"class": "Illuminate\\Routing\\Route",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
"line": 50,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 166,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 129,
"function": "handleRequest",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 90,
"function": "handleRequestUsingNamedLimiter",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 166,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 93,
"function": "handleRequest",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/sanctum/src/Http/Middleware/EnsureFrontendRequestsAreStateful.php",
"line": 26,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "Laravel\\Sanctum\\Http\\Middleware\\{closure}",
"class": "Laravel\\Sanctum\\Http\\Middleware\\EnsureFrontendRequestsAreStateful",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 137,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/sanctum/src/Http/Middleware/EnsureFrontendRequestsAreStateful.php",
"line": 25,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Laravel\\Sanctum\\Http\\Middleware\\EnsureFrontendRequestsAreStateful",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 137,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 821,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 800,
"function": "runRouteWithinStack",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 764,
"function": "runRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 753,
"function": "dispatchToRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 200,
"function": "dispatch",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "Illuminate\\Foundation\\Http\\{closure}",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php",
"line": 59,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Barryvdh\\Debugbar\\Middleware\\InjectDebugbar",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/app/Http/Middleware/SanitizeInput.php",
"line": 29,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "App\\Http\\Middleware\\SanitizeInput",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
"line": 31,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
"line": 51,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php",
"line": 27,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\ValidatePostSize",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
"line": 109,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php",
"line": 61,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\HandleCors",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
"line": 58,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\TrustProxies",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php",
"line": 22,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 219,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 137,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 175,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 144,
"function": "sendRequestThroughRouter",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 256,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 249,
"function": "callLaravelRoute",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 86,
"function": "makeApiCall",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 39,
"function": "makeResponseCall",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
"line": 240,
"function": "__invoke",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
"line": 165,
"function": "iterateThroughStrategies",
"class": "Knuckles\\Scribe\\Extracting\\Extractor",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
"line": 97,
"function": "fetchResponses",
"class": "Knuckles\\Scribe\\Extracting\\Extractor",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
"line": 125,
"function": "processRoute",
"class": "Knuckles\\Scribe\\Extracting\\Extractor",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
"line": 72,
"function": "extractEndpointsInfoFromLaravelApp",
"class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
"line": 50,
"function": "extractEndpointsInfoAndWriteToDisk",
"class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
"line": 55,
"function": "get",
"class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 36,
"function": "handle",
"class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/Util.php",
"line": 43,
"function": "Illuminate\\Container\\{closure}",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 96,
"function": "unwrapIfClosure",
"class": "Illuminate\\Container\\Util",
"type": "::"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 35,
"function": "callBoundMethod",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Container/Container.php",
"line": 799,
"function": "call",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Console/Command.php",
"line": 211,
"function": "call",
"class": "Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/symfony/console/Command/Command.php",
"line": 341,
"function": "execute",
"class": "Illuminate\\Console\\Command",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Console/Command.php",
"line": 180,
"function": "run",
"class": "Symfony\\Component\\Console\\Command\\Command",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/symfony/console/Application.php",
"line": 1102,
"function": "run",
"class": "Illuminate\\Console\\Command",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/symfony/console/Application.php",
"line": 356,
"function": "doRunCommand",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/symfony/console/Application.php",
"line": 195,
"function": "doRun",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
"line": 197,
"function": "run",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/Users/kelvyncarbone/Desktop/www/edustore/artisan",
"line": 35,
"function": "handle",
"class": "Illuminate\\Foundation\\Console\\Kernel",
"type": "->"
}
]
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
Produtos (Cursos e Materiais)
API para buscar cursos
GET api/v1/ebooks
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/ebooks';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/ebooks'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/ebooks" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/ebooks"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 287
vary: Origin
{
"data": {
"current_page": 1,
"data": [
{
"id": 2,
"title": "Material Doação",
"image": "https://storage-fenix.jelastic.saveincloud.net/edustore/books/GSyiHA75JrfJolmPnAdqKfowKlNZnyerRqYrD1mT.png",
"product_detail": null,
"description": "<p>saiodjasidjioa djsaiodjasio djsaiodjasio djisaojdioas jdiosadjiaos djiosajioa</p><p>saiodjasidjioa djsaiodjasio djsaiodjasio djisaojdioas jdiosadjiaos djiosajioa</p><p>saiodjasidjioa djsaiodjasio djsaiodjasio djisaojdioas jdiosadjiaos djiosajioa</p><p>saiodjasidjioa djsaiodjasio djsaiodjasio djisaojdioas jdiosadjiaos djiosajioa</p><p>saiodjasidjioa djsaiodjasio djsaiodjasio djisaojdioas jdiosadjiaos djiosajioa</p><p>saiodjasidjioa djsaiodjasio djsaiodjasio djisaojdioas jdiosadjiaos djiosajioa</p><hr><p>saiodjasidjioa djsaiodjasio djsaiodjasio djisaojdioas jdiosadjiaos djiosajioa<br></p>",
"status": "1",
"created_at": "2022-12-15T15:05:51.000000Z",
"updated_at": "2023-12-18T15:23:50.000000Z",
"deleted_at": null,
"slug": "teste-material",
"book_url": "https://storage-fenix.jelastic.saveincloud.net/edustore/books/files/owxSjpKIkP7S64bZII5IHmDvWmUioeHneS2g7502.pdf",
"preview_url": "https://storage-fenix.jelastic.saveincloud.net/edustore/books/previews/e6y7oYPgk5w4iHdaZBKdPewBAEzcvWA0txmLhm0H.pdf",
"course_id": null,
"link_scholarship": null,
"subtitle": "teste",
"button_text": null,
"order": 0,
"billing": {
"online": {
"id": 2619,
"amount": "5.00",
"amount_label": "5,00",
"amount_pagarme": 500,
"discount_amount_label": "0,00",
"discount_percentage": 0,
"amount_ex_student_discount": null,
"amount_reenroll_discount": null,
"cash_discount": 0,
"cash_discount_boleto": 0,
"cash_discount_pix": 0,
"cash_discount_type": "1",
"cash_discount_type_boleto": "1",
"cash_discount_type_pix": "1",
"init_date_offer": null,
"end_date_offer": null,
"have_offer": false,
"offer": null,
"price_offer": "5.00",
"model_id": "2",
"model_type": "App\\Entities\\Book",
"hide_payment_methods": null,
"style": {
"border-color": "#6610f2 !important",
"background-color": "#6610f2 !important"
},
"signature_period": null,
"ex_student_accept_coupon": true,
"reenroll_accept_coupon": false,
"free_installments": null,
"pix_entry_percent": "0.00",
"pix_entry_amount": 0,
"interest_rate_credit_card": null,
"max_installments_credit_card": "12",
"original_amount": "5.00",
"original_amount_label": "5,00",
"sales_limit": 0,
"sales": 0,
"checkout_mode": 2,
"external_link": null,
"recurrence": false,
"has_recurrence": [],
"is_available": true,
"status": "1",
"config_tks_page": null,
"modality": "1",
"description": null,
"two_card_min_value": null,
"two_card_max_value": null,
"two_card_min_percent": null,
"renewal_periods": null,
"days_to_reenroll": 0,
"two_credit_card": "0",
"funnel_flow": null,
"can_reenroll": false,
"coupon_condition": null,
"signature_should_update_amount": false,
"signature_update_amount_from": null,
"gateway_id": null,
"sign_contract": false,
"contract_id": null,
"financial_contract": null,
"has_free_trial": false,
"free_trial": null,
"registration_fee_payment_methods": null,
"registration_fee_amount": null,
"registration_fee_amount_label": null,
"registration_fee_delay_days": null,
"coupon": {
"is_valid": false,
"code": null,
"status_code": null,
"coupon_message": null,
"discount_type": null,
"discount_value": null,
"discount": 0,
"coupon_limitation_configs": null,
"coupon_countdown": null
},
"payment_methods": {
"credit_card": {
"first_installment": {
"label": "1x",
"installment": 1,
"installment_amount": 5,
"installment_amount_pagarme": "500",
"installment_gross_amount": 5,
"installment_amount_label": "5,00",
"amount": 5,
"gross_amount": 5,
"amount_pagarme": "500",
"amount_label": "5,00",
"gross_amount_label": "5,00"
},
"last_installment": {
"label": "12x",
"installment": 12,
"interest_rate": false,
"installment_amount_pagarme": "500",
"installment_amount": 0.42,
"installment_gross_amount": 0.42,
"installment_amount_label": "0,42",
"amount": 5,
"gross_amount": 5,
"amount_pagarme": "500",
"amount_label": "5,00",
"gross_amount_label": "5,00"
},
"installments": [
{
"label": "1x",
"installment": 1,
"installment_amount": 5,
"installment_amount_pagarme": "500",
"installment_gross_amount": 5,
"installment_amount_label": "5,00",
"amount": 5,
"gross_amount": 5,
"amount_pagarme": "500",
"amount_label": "5,00",
"gross_amount_label": "5,00"
},
{
"label": "2x",
"installment": 2,
"interest_rate": false,
"installment_amount_pagarme": "500",
"installment_amount": 2.5,
"installment_gross_amount": 2.5,
"installment_amount_label": "2,50",
"amount": 5,
"gross_amount": 5,
"amount_pagarme": "500",
"amount_label": "5,00",
"gross_amount_label": "5,00"
},
{
"label": "3x",
"installment": 3,
"interest_rate": false,
"installment_amount_pagarme": "500",
"installment_amount": 1.67,
"installment_gross_amount": 1.67,
"installment_amount_label": "1,67",
"amount": 5,
"gross_amount": 5,
"amount_pagarme": "500",
"amount_label": "5,00",
"gross_amount_label": "5,00"
},
{
"label": "4x",
"installment": 4,
"interest_rate": false,
"installment_amount_pagarme": "500",
"installment_amount": 1.25,
"installment_gross_amount": 1.25,
"installment_amount_label": "1,25",
"amount": 5,
"gross_amount": 5,
"amount_pagarme": "500",
"amount_label": "5,00",
"gross_amount_label": "5,00"
},
{
"label": "5x",
"installment": 5,
"interest_rate": false,
"installment_amount_pagarme": "500",
"installment_amount": 1,
"installment_gross_amount": 1,
"installment_amount_label": "1,00",
"amount": 5,
"gross_amount": 5,
"amount_pagarme": "500",
"amount_label": "5,00",
"gross_amount_label": "5,00"
},
{
"label": "6x",
"installment": 6,
"interest_rate": false,
"installment_amount_pagarme": "500",
"installment_amount": 0.83,
"installment_gross_amount": 0.83,
"installment_amount_label": "0,83",
"amount": 5,
"gross_amount": 5,
"amount_pagarme": "500",
"amount_label": "5,00",
"gross_amount_label": "5,00"
},
{
"label": "7x",
"installment": 7,
"interest_rate": false,
"installment_amount_pagarme": "500",
"installment_amount": 0.71,
"installment_gross_amount": 0.71,
"installment_amount_label": "0,71",
"amount": 5,
"gross_amount": 5,
"amount_pagarme": "500",
"amount_label": "5,00",
"gross_amount_label": "5,00"
},
{
"label": "8x",
"installment": 8,
"interest_rate": false,
"installment_amount_pagarme": "500",
"installment_amount": 0.63,
"installment_gross_amount": 0.63,
"installment_amount_label": "0,63",
"amount": 5,
"gross_amount": 5,
"amount_pagarme": "500",
"amount_label": "5,00",
"gross_amount_label": "5,00"
},
{
"label": "9x",
"installment": 9,
"interest_rate": false,
"installment_amount_pagarme": "500",
"installment_amount": 0.56,
"installment_gross_amount": 0.56,
"installment_amount_label": "0,56",
"amount": 5,
"gross_amount": 5,
"amount_pagarme": "500",
"amount_label": "5,00",
"gross_amount_label": "5,00"
},
{
"label": "10x",
"installment": 10,
"interest_rate": false,
"installment_amount_pagarme": "500",
"installment_amount": 0.5,
"installment_gross_amount": 0.5,
"installment_amount_label": "0,50",
"amount": 5,
"gross_amount": 5,
"amount_pagarme": "500",
"amount_label": "5,00",
"gross_amount_label": "5,00"
},
{
"label": "11x",
"installment": 11,
"interest_rate": false,
"installment_amount_pagarme": "500",
"installment_amount": 0.45,
"installment_gross_amount": 0.45,
"installment_amount_label": "0,45",
"amount": 5,
"gross_amount": 5,
"amount_pagarme": "500",
"amount_label": "5,00",
"gross_amount_label": "5,00"
},
{
"label": "12x",
"installment": 12,
"interest_rate": false,
"installment_amount_pagarme": "500",
"installment_amount": 0.42,
"installment_gross_amount": 0.42,
"installment_amount_label": "0,42",
"amount": 5,
"gross_amount": 5,
"amount_pagarme": "500",
"amount_label": "5,00",
"gross_amount_label": "5,00"
}
]
},
"boleto": {
"label": "1x",
"installment": 1,
"amount": 5,
"gross_amount": 5,
"amount_pagarme": "500",
"amount_label": "5,00",
"gross_amount_label": "5,00"
},
"pix": {
"label": "1x",
"installment": 1,
"amount": 5,
"gross_amount": "5.00",
"amount_pagarme": "500",
"gross_amount_label": "5,00",
"amount_label": "5,00",
"payment_method": "Pix"
}
},
"smallest_installment": {
"label": "12x",
"installment": 12,
"amount": "0.42",
"amount_label": "0,42",
"gross_amount_label": "0,42",
"gross_amount": "0.42",
"amount_pagarme": "500",
"payment_method": "Cartão de Crédito"
},
"first_installment": {
"label": "1x",
"installment": 1,
"amount": "5.00",
"gross_amount": "5.00",
"amount_pagarme": "500",
"gross_amount_label": "5,00",
"amount_label": "5,00",
"discount_amount": "0.00",
"payment_method": ""
}
}
},
"url_sale": "/apostilas/2",
"product_title": "Material Doação - teste",
"logo": "https://storage-fenix.jelastic.saveincloud.net/edustore/books/GSyiHA75JrfJolmPnAdqKfowKlNZnyerRqYrD1mT.png",
"book_tags": [],
"financial_data": [
{
"id": 2619,
"funnel_id": null,
"model_id": "2",
"modality": "1",
"description": null,
"price": "5.00",
"free_trial": null,
"status": "1",
"financial_category_id": null,
"type_discount_automatic": null,
"price_discount_automatic": null,
"rules_discount_automatic": null,
"price_offer": null,
"init_date_offer": null,
"end_date_offer": null,
"max_installments_credit_card": "12",
"free_installments": null,
"created_at": "2022-12-15T15:06:25.000000Z",
"updated_at": "2026-01-26T22:13:20.000000Z",
"split_id": null,
"sales_limit": 0,
"interest_rate_credit_card": null,
"interest_rate_boleto": null,
"cash_discount": null,
"cash_discount_boleto": null,
"condition_id": null,
"config_tks_page": null,
"model_type": "App\\Entities\\Book",
"sales": "0",
"cash_discount_type": "1",
"cash_discount_type_boleto": "1",
"checkout_mode": 2,
"signature_period": null,
"condition_offer_id": null,
"ex_student_discount": null,
"ex_student_discount_type": null,
"courses_discount": null,
"end_data_discount": null,
"two_credit_card": "0",
"two_card_min_value": null,
"cash_discount_pix": null,
"cash_discount_type_pix": "1",
"style": {
"border-color": "#6610f2 !important",
"background-color": "#6610f2 !important"
},
"hide_payment_methods": null,
"external_link": null,
"reenroll_discount": null,
"reenroll_discount_type": null,
"days_to_reenroll": 0,
"deleted_at": null,
"ex_student_accept_coupon": true,
"renewal_periods": null,
"gateway_id": null,
"reenroll_accept_coupon": false,
"signature_should_update_amount": false,
"signature_update_amount_from": null,
"pix_entry_percent": "0.00",
"contract_id": null,
"sign_contract": false,
"registration_fee_payment_methods": null,
"registration_fee_amount": 0,
"registration_fee_delay_days": null,
"original_amount": "5.00",
"have_offer": true,
"mode": "Doação",
"status_to_human": "À venda",
"has_free_trial": false,
"condition": null,
"offer": null
}
]
}
],
"first_page_url": "https://painel.edustore.online/api/v1/ebooks?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "https://painel.edustore.online/api/v1/ebooks?page=1",
"links": [
{
"url": null,
"label": "« Anterior",
"page": null,
"active": false
},
{
"url": "https://painel.edustore.online/api/v1/ebooks?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Próximo »",
"page": null,
"active": false
}
],
"next_page_url": null,
"path": "https://painel.edustore.online/api/v1/ebooks",
"per_page": 10,
"prev_page_url": null,
"to": 1,
"total": 2
},
"message": "Exames públicos carregados com sucesso."
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
Site
API para buscar sliders
GET api/v1/sliders/{type?}
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/sliders/quia';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/sliders/quia'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/sliders/quia" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/sliders/quia"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 296
vary: Origin
{
"message": "Sliders carregados com sucesso.",
"data": []
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/testimonials
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/testimonials';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
'json' => [
'$type' => 'site, ead',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/testimonials'
payload = {
"$type": "site, ead"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers, json=payload)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/testimonials" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1" \
--data "{
\"$type\": \"site, ead\"
}"
const url = new URL(
"https://painel.edustore.online/api/v1/testimonials"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
let body = {
"$type": "site, ead"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 294
vary: Origin
{
"message": "Depoimentos carregados com sucesso.",
"data": [
{
"id": 1,
"testimonial_name": "William Stratch",
"testimonial_office": null,
"testimonial_description": "<p style=\"text-align: center;\"><em>Com meus anos de preparação de alunos para o vestibular, reconheço este tipo de curso como fundamental para reunir em só lugar tantas questões possíveis! </em></p>",
"created_at": "06/12/2023 15:38",
"updated_at": "06/12/2023 15:38",
"model_type": "SiteEad",
"model_id": null,
"company_name": null,
"link": null,
"avatar": null,
"video_code": "https://www.youtube.com/watch?v=hsZVlDQEwnI",
"cover": null,
"deleted_at": null,
"courses": null,
"state_id": null,
"city_id": null,
"seal": null,
"status": "1",
"certification_id": null,
"company_id": null,
"clean_description": "Com meus anos de preparação de alunos para o vestibular, reconheço este tipo de curso como fundamental para reunir em só lugar tantas questões possíveis! ",
"city": null,
"state": null,
"institution": null
}
]
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/testimonials/regions
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/testimonials/regions';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/testimonials/regions'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/testimonials/regions" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/testimonials/regions"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 293
vary: Origin
{
"message": "Regiões carregadas com sucesso.",
"data": []
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/testimonials/institutions
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/testimonials/institutions';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/testimonials/institutions'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/testimonials/institutions" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/testimonials/institutions"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 292
vary: Origin
{
"message": "Instituições carregadas com sucesso.",
"data": []
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/testimonials/{type?}
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/testimonials/rerum';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
'json' => [
'$type' => 'site, ead',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/testimonials/rerum'
payload = {
"$type": "site, ead"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers, json=payload)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/testimonials/rerum" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1" \
--data "{
\"$type\": \"site, ead\"
}"
const url = new URL(
"https://painel.edustore.online/api/v1/testimonials/rerum"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
let body = {
"$type": "site, ead"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 291
vary: Origin
{
"message": "Depoimentos carregados com sucesso.",
"data": [
{
"id": 1,
"testimonial_name": "William Stratch",
"testimonial_office": null,
"testimonial_description": "<p style=\"text-align: center;\"><em>Com meus anos de preparação de alunos para o vestibular, reconheço este tipo de curso como fundamental para reunir em só lugar tantas questões possíveis! </em></p>",
"created_at": "06/12/2023 15:38",
"updated_at": "06/12/2023 15:38",
"model_type": "SiteEad",
"model_id": null,
"company_name": null,
"link": null,
"avatar": null,
"video_code": "https://www.youtube.com/watch?v=hsZVlDQEwnI",
"cover": null,
"deleted_at": null,
"courses": null,
"state_id": null,
"city_id": null,
"seal": null,
"status": "1",
"certification_id": null,
"company_id": null,
"clean_description": "Com meus anos de preparação de alunos para o vestibular, reconheço este tipo de curso como fundamental para reunir em só lugar tantas questões possíveis! ",
"city": null,
"state": null,
"institution": null
}
]
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
GET api/v1/popups
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/popups';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/popups'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('GET', url, headers=headers)
response.json()curl --request GET \
--get "https://painel.edustore.online/api/v1/popups" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/popups"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Exemplo de resposta (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 300
x-ratelimit-remaining: 283
vary: Origin
{
"message": "Popups carregados com sucesso",
"data": []
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
Usuário
API para buscar os cursos de um usuário logado
POST api/v1/user/my-courses
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/user/my-courses';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/user/my-courses'
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('POST', url, headers=headers)
response.json()curl --request POST \
"https://painel.edustore.online/api/v1/user/my-courses" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1"const url = new URL(
"https://painel.edustore.online/api/v1/user/my-courses"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Exemplo de resposta (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthenticated."
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
POST api/v1/user
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/user';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
'json' => [
'name' => 'Tony Stark',
'email' => '[email protected]',
'password' => 'edustore@654%$#!@',
'document' => '1111111111 or 222222222222222',
'phone' => '99999999999',
'tag' => '"API" or ["API","CLIENT_1"]',
'born_at' => '1994-03-18',
'send_mail' => 'true or false',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/user'
payload = {
"name": "Tony Stark",
"email": "[email protected]",
"password": "edustore@654%$#!@",
"document": "1111111111 or 222222222222222",
"phone": "99999999999",
"tag": "\"API\" or [\"API\",\"CLIENT_1\"]",
"born_at": "1994-03-18",
"send_mail": "true or false"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()curl --request POST \
"https://painel.edustore.online/api/v1/user" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1" \
--data "{
\"name\": \"Tony Stark\",
\"email\": \"[email protected]\",
\"password\": \"edustore@654%$#!@\",
\"document\": \"1111111111 or 222222222222222\",
\"phone\": \"99999999999\",
\"tag\": \"\\\"API\\\" or [\\\"API\\\",\\\"CLIENT_1\\\"]\",
\"born_at\": \"1994-03-18\",
\"send_mail\": \"true or false\"
}"
const url = new URL(
"https://painel.edustore.online/api/v1/user"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
let body = {
"name": "Tony Stark",
"email": "[email protected]",
"password": "edustore@654%$#!@",
"document": "1111111111 or 222222222222222",
"phone": "99999999999",
"tag": "\"API\" or [\"API\",\"CLIENT_1\"]",
"born_at": "1994-03-18",
"send_mail": "true or false"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Exemplo de resposta (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthenticated."
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.
POST api/v1/users/tokens
requires authentication
Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/users/tokens';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'ApiDoc' => true,
],
'json' => [
'email' => '[email protected]',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://painel.edustore.online/api/v1/users/tokens'
payload = {
"email": "[email protected]"
}
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'ApiDoc': '1'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()curl --request POST \
"https://painel.edustore.online/api/v1/users/tokens" \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "ApiDoc: 1" \
--data "{
\"email\": \"[email protected]\"
}"
const url = new URL(
"https://painel.edustore.online/api/v1/users/tokens"
);
const headers = {
"Authorization": "Bearer {token}",
"Content-Type": "application/json",
"Accept": "application/json",
"ApiDoc": "1",
};
let body = {
"email": "[email protected]"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Exemplo de resposta (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthenticated."
}
Resposta recebida:
Falha na requisição:
Dica: verifique sua conexão de rede.
Se você for o responsável pela API, confirme que ela está em execução e que o CORS está habilitado.
Veja o console do navegador para mais informações.