MENU navbar-image

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
        }
    ]
}
 

Requisição   

GET api/v1/occupation-areas

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

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."
}
 

Requisição   

GET api/v1/public-exams

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

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."
}
 

Requisição   

GET api/v1/course/{slug}/sessions

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros de URL

slug   string   

The slug of the course. Example: qui

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": "->"
        }
    ]
}
 

Requisição   

POST api/v1/enrollments

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros do corpo

course_id   integer   

Example: 1

user   integer|string   

a valid email or user_id. Example: 1 or [email protected]

payment_method   string  optional  

Payment Methods: [pix, boleto, credit_card, credits]. Example: credits

coupon   string|integer  optional  

Can be coupon id or coupon code. Example: DESCON20

period   integer  optional  

optional The number of period | default null. Example: 365

period_type   integer  optional  

optional Type of period, default days (days => 1, months => 2, years => 3). Example: 1

modality   integer  optional  

optional Presential = 2 | Online = 1 | Default is 1. Example: 1

amount   decimal   

(for free enrollments put 0). Example: 200.00 or 0

discount_amount   decimal  optional  

optional. Example: 35.50

aid   integer  optional  

Affiliate id | Example: 1

source   string  optional  

optional. Example: Facebook

utm_campaign   string  optional  

optional. Example: YouTube

utm_content   string  optional  

optional. Example: Caroussel

utm_medium   string  optional  

optional. Example: Journal

utm_source   string  optional  

optional. Example: YouTube

utm_term   string  optional  

optional. Example: Search

shift_id   integer  optional  

optional. The ID of shift for presential enrollments (1 => Manhã, 2 => Noite). Example: 1

querystring   string  optional  

optional. Example: &utm_source=youtube&aid=1

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"
}
 

Requisição   

GET api/v1/lives/{slug?}

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros de URL

slug   string  optional  

The slug of the . Example: eveniet

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
}
 

Requisição   

GET api/v1/courses

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros de consulta

per_page   integer  optional  

option The page of the results. Example: 0

Parâmetros do corpo

upsell   boolean  optional  

To get courses upsell of this course. Example: true

gifts   boolean  optional  

To get gifts of course. Example: true

area   boolean  optional  

To get area of course. Example: true

type   integer  optional  

The type of courses 1 = Padrão | 2 = Combo | 5 =Assinatura | 6 = Extensão | 7 = Educação Financeira. Example: 0

all   boolean  optional  

To get all courses include course without financial data Example: false

modality   integer  optional  

To get courses by modality 1=online | 2=presential. Example: 0

spotlight   boolean  optional  

To get courses in highlights Example: true

query   string  optional  

To get courses filtered by query Example: temporibus

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
    }
}
 

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"
}
 

Requisição   

GET api/v1/courses/{course_id}

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros de URL

course_id   string   

The ID of the course. Example: omnis

Parâmetros do corpo

unlock   boolean  optional  

To get hidden courses. Example: true

type   integer  optional  

The type of courses 1 = Padrão | 2 = Combo | 5 =Assinatura | 6 = Extensão | 7 = Educação Financeira. Example: 0

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": []
        }
    ]
}
 

Requisição   

GET api/v1/teachers

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros do corpo

courses[]   string[]   

The ids of the Courses. Example: 6

sessions[]   string[]   

The ids of the sessions. Example: 1

type   integer  optional  

The type of the Teacher, academic = 1 | invited = 2. Example: 1

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": "&laquo; 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 &raquo;",
            "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
}
 

Requisição   

GET api/v1/faq

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros de consulta

scope   string  optional  

Scope of FAQ Example: illum

exclude_globals   boolean  optional  

Exclude global FAQ's Example: false

paginate   integer  optional  

Number of results per page, default = 10. Example: 10

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
}
 

Requisição   

GET api/v1/schedules/{id}

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros de URL

id   string   

The ID of the schedule. Example: molestiae

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."
}
 

Requisição   

GET api/v1/auth/logout

POST api/v1/auth/logout

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

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."
}
 

Requisição   

POST api/v1/auth/login

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros do corpo

email   string  optional  

obrigatório E-mail do usuário cadastrado. Exemplo: [email protected] Example: [email protected]

password   string  optional  

obrigatório Senha de acesso do usuário. Exemplo: senhaSegura123 Example: 6b)YNp

device_name   string  optional  

obrigatório Identificação do dispositivo ou aplicação que solicita o acesso. Exemplo: painel-web Example: quidem

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
}
 

Requisição   

POST api/v1/auth/forget

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

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": "->"
        }
    ]
}
 

Requisição   

POST api/v1/auth/register

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros do corpo

name   string   

complete name of user. Example: Kelvyn Carbone

email   string   

a valid email. Example: [email protected]

password   string   

Min: 6 characters with number and special character. Example: 9&9DM@zu3

document   numeric  optional  

optional Can be CPF or CNPJ. Example 99999999999 / 999999999999999 Example: voluptas

phone   string  optional  

optional phone number with DDD. Example: 51999999999

born_at   date  optional  

Born at date. Example: 1994-03-18

password_confirmation   string   

equal to password Example: deleniti

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."
}
 

Requisição   

GET api/v1/auth/me

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

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": "&laquo; 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 &raquo;",
                "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
    }
}
 

Requisição   

GET api/v1/blog/posts

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

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"
}
 

Requisição   

GET api/v1/blog/posts/{post_id}

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros de URL

post_id   integer   

The post id of the posts. Example: 1

CRM

API para newsletter

POST api/v1/newsletter

requires authentication

Exemplo de requisição:
$client = new \GuzzleHttp\Client();
$url = 'https://painel.edustore.online/api/v1/newsletter';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'ApiDoc' => true,
        ],
        'json' => [
            'email' => '[email protected]',
            'phone' => 'blfbfjkrljdumdzppghltvbdyxsyperlwluurhyddanfoflqnperprmbksxorbqkvreqlapsbjblhh',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://painel.edustore.online/api/v1/newsletter'
payload = {
    "email": "[email protected]",
    "phone": "blfbfjkrljdumdzppghltvbdyxsyperlwluurhyddanfoflqnperprmbksxorbqkvreqlapsbjblhh"
}
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/newsletter" \
    --header "Authorization: Bearer {token}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "ApiDoc: 1" \
    --data "{
    \"email\": \"[email protected]\",
    \"phone\": \"blfbfjkrljdumdzppghltvbdyxsyperlwluurhyddanfoflqnperprmbksxorbqkvreqlapsbjblhh\"
}"
const url = new URL(
    "https://painel.edustore.online/api/v1/newsletter"
);

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

let body = {
    "email": "[email protected]",
    "phone": "blfbfjkrljdumdzppghltvbdyxsyperlwluurhyddanfoflqnperprmbksxorbqkvreqlapsbjblhh"
};

fetch(url, {
    method: "POST",
    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: 281
vary: Origin
 

{
    "message": "E-mail cadastrado com sucesso",
    "data": {
        "id": 183,
        "email": "[email protected]",
        "created_at": "2026-01-09T19:04:41.000000Z",
        "updated_at": "2026-03-02T04:34:49.000000Z",
        "interests": [
            []
        ],
        "name": null,
        "status_id": "1",
        "phone": "",
        "first_name": null
    }
}
 

Requisição   

POST api/v1/newsletter

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros do corpo

email   string   

The email of the user. Example: [email protected]

phone   string   

O campo value deve ter pelo menos 9 caracteres. Example: blfbfjkrljdumdzppghltvbdyxsyperlwluurhyddanfoflqnperprmbksxorbqkvreqlapsbjblhh

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"
        }
    ]
}
 

Requisição   

GET api/v1/configs

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

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."
}
 

Requisição   

GET api/v1/dashboards/academic

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros de consulta

start_at   string  optional  

Example: DD/MM/YYYY

end_at   string  optional  

Example: DD/MM/YYYY

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."
}
 

Requisição   

GET api/v1/dashboards/financial

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros de consulta

start_at   string  optional  

Example: DD/MM/YYYY

end_at   string  optional  

Example: DD/MM/YYYY

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."
}
 

Requisição   

GET api/v1/dashboards/operator

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros de consulta

start_at   string  optional  

Example: DD/MM/YYYY

end_at   string  optional  

Example: DD/MM/YYYY

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."
}
 

Requisição   

GET api/v1/dashboards/marketing

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros de consulta

start_at   string  optional  

Example: DD/MM/YYYY

end_at   string  optional  

Example: DD/MM/YYYY

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."
}
 

Requisição   

GET api/v1/dashboards/communities

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros de consulta

start_at   string  optional  

Example: DD/MM/YYYY

end_at   string  optional  

Example: DD/MM/YYYY

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."
}
 

Requisição   

GET api/v1/dashboards/infra-balance

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

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"
    }
]
 

Requisição   

GET api/v1/cities

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

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"
        }
    ]
}
 

Requisição   

GET api/v1/states

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

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"
        }
    ]
}
 

Requisição   

GET api/v1/countries

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

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."
}
 

Requisição   

GET api/v1/cep

POST api/v1/cep

PUT api/v1/cep

PATCH api/v1/cep

DELETE api/v1/cep

OPTIONS api/v1/cep

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

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
    }
}
 

Requisição   

GET api/v1/enrollments

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros de consulta

per_page   integer  optional  

Opcional. Quantidade por página. Máx: 100. Exemplo: 20 Example: 14

page   integer  optional  

Opcional. Número da página. Exemplo: 1 Example: 10

status_id   integer  optional  

Opcional. Filtrar pelo status da matrícula (ex.: 1=ativo, 2=cancelado). Example: 6

course_id   integer  optional  

Opcional. ID do curso para filtrar. Exemplo: 15 Example: 3

start_date   string  optional  

date Opcional. Data inicial (YYYY-MM-DD). Exemplo: 2025-01-01 Example: omnis

end_date   string  optional  

date Opcional. Data final (YYYY-MM-DD). Exemplo: 2025-12-31 Example: dolorem

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."
}
 

Requisição   

GET api/v1/gateway/{gateway}/transaction/postback

POST api/v1/gateway/{gateway}/transaction/postback

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros de URL

gateway   string   

The gateway. Example: est

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": "->"
        }
    ]
}
 

Requisição   

GET api/v1/gateway/{gateway}/reprocess/{identifier}/{gateway_id?}

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros de URL

gateway   string   

The gateway. Example: quia

identifier   string   

Example: aut

gateway_id   string  optional  

The ID of the gateway. Example: quo

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": "&laquo; 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 &raquo;",
                "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."
}
 

Requisição   

GET api/v1/ebooks

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

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": []
}
 

Requisição   

GET api/v1/sliders/{type?}

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros de URL

type   string  optional  

Example: quia

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
        }
    ]
}
 

Requisição   

GET api/v1/testimonials

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros do corpo

$type   string  optional  

optional The type of the Testimonial. Example: site, ead

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": []
}
 

Requisição   

GET api/v1/testimonials/regions

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

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": []
}
 

Requisição   

GET api/v1/testimonials/institutions

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

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
        }
    ]
}
 

Requisição   

GET api/v1/testimonials/{type?}

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros de URL

type   string  optional  

Example: rerum

Parâmetros do corpo

$type   string  optional  

optional The type of the Testimonial. Example: site, ead

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": []
}
 

Requisição   

GET api/v1/popups

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

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."
}
 

Requisição   

POST api/v1/user/my-courses

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

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."
}
 

Requisição   

POST api/v1/user

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros do corpo

name   string   

Example: Tony Stark

email   string   

Example: [email protected]

password   string   

Example: edustore@654%$#!@

document   numeric   

CPF|CNPJ. Example: 1111111111 or 222222222222222

phone   numeric  optional  

Example: 99999999999

tag   string|array   

Tag your user. Example: "API" or ["API","CLIENT_1"]

born_at   date  optional  

Example: 1994-03-18

send_mail   If  optional  

true we will send a register e-mail to user. Example: true or false

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."
}
 

Requisição   

POST api/v1/users/tokens

Cabeçalhos

Authorization      

Example: Bearer {token}

Content-Type      

Example: application/json

Accept      

Example: application/json

ApiDoc      

Example: true

Parâmetros do corpo

email   required.  optional  

Example: [email protected]