# Subscriptions

## Obtém todas as assinaturas da plataforma

> Este endpoint retorna todos os cursos cadastrados na plataforma, independentemente do status. Caso não haja nenhum curso cadastrado, será retornada uma lista vazia.

```json
{"openapi":"3.1.0","info":{"title":"TheMembers (Beta).","version":"1.0"},"tags":[{"name":"Subscriptions"}],"servers":[{"url":"https://api.themembers.com.br/api/v1","description":"Production","variables":{}}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"Bearer"}},"schemas":{"Public.Subscription":{"type":"object","required":["active","status","product_id","payment_last_date","accession_date","expiration_date","product","student","created_at","updated_at"],"properties":{"active":{"type":"integer","description":"Indica se o aluno esta com acesso ativo","readOnly":true},"status":{"allOf":[{"$ref":"#/components/schemas/Public.SubscriptionStatus"}],"description":"Status da assinatura (active, inactive, refunded, chargeback e cancel)","readOnly":true},"product_id":{"type":"string","description":"ID do produto"},"payment_last_date":{"type":"string","description":"Data do último pagamento YYYY-MM-DD","readOnly":true},"accession_date":{"type":"string","description":"Data de adesão YYYY-MM-DD"},"expiration_date":{"type":"string","description":"Data de expiração YYYY-MM-DD"},"cancel_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data de cancelamento YYYY-MM-DD","readOnly":true},"product":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string","description":"Título"},"description":{"type":"string","description":"Descrição"},"created_at":{"type":"string","description":"Data de criação"},"updated_at":{"type":"string","description":"Data da última atualização"}},"required":["id","title","description","created_at","updated_at"],"description":"Produto da assinatura","readOnly":true},"student":{"type":"object","properties":{"id":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"full_name":{"type":"string"},"email":{"type":"string"}},"required":["id","first_name","last_name","full_name","email"],"description":"Aluno","readOnly":true},"created_at":{"type":"string","description":"Data de criação","readOnly":true},"updated_at":{"type":"string","description":"Data da última atualização","readOnly":true}}},"Public.SubscriptionStatus":{"type":"string","enum":["active","inactive","refunded","cancel","chargeback"]},"Public.Link":{"type":"object","properties":{"first":{"type":"string"},"last":{"type":"string"},"prev":{"type":"string"},"next":{"type":"string"}}},"Public.Meta":{"type":"object","properties":{"first":{"type":"string"},"last":{"type":"string"},"prev":{"type":"string"},"next":{"type":"string"}}},"Exceptions.Unauthorized":{"type":"object","required":["message","type"],"properties":{"message":{"type":"string","default":"Personal access token not found."},"type":{"type":"string","default":"PersonalAccessTokenException"}},"description":""},"Exceptions.Metadata":{"type":"object"},"Exceptions.RateLimitException":{"type":"object","required":["message","type","retry_after"],"properties":{"message":{"type":"string","default":"Rate limit exceeded for API key [%]"},"type":{"type":"string","default":"RateLimitException"},"retry_after":{"type":"integer"}},"description":""},"Exceptions.InternalServerError":{"type":"object","required":["message","type"],"properties":{"message":{"type":"string","default":"An unexpected error occurred. Please try again later."},"type":{"type":"string","default":"InternalServerErrorException"}},"description":""}}},"paths":{"/subscriptions":{"get":{"operationId":"Subscriptions_getSubscriptions","summary":"Obtém todas as assinaturas da plataforma","description":"Este endpoint retorna todos os cursos cadastrados na plataforma, independentemente do status. Caso não haja nenhum curso cadastrado, será retornada uma lista vazia.","parameters":[],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","required":["data","links","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Public.Subscription"}},"links":{"$ref":"#/components/schemas/Public.Link"},"meta":{"$ref":"#/components/schemas/Public.Meta"}},"description":""}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","required":["error","trace_id","metadata"],"properties":{"error":{"$ref":"#/components/schemas/Exceptions.Unauthorized"},"trace_id":{"type":"string"},"metadata":{"$ref":"#/components/schemas/Exceptions.Metadata"}}}}}},"429":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","required":["error","trace_id","metadata"],"properties":{"error":{"$ref":"#/components/schemas/Exceptions.RateLimitException"},"trace_id":{"type":"string"},"metadata":{"$ref":"#/components/schemas/Exceptions.Metadata"}}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","required":["error","trace_id","metadata"],"properties":{"error":{"$ref":"#/components/schemas/Exceptions.InternalServerError"},"trace_id":{"type":"string"},"metadata":{"$ref":"#/components/schemas/Exceptions.Metadata"}}}}}}},"tags":["Subscriptions"]}}}}
```

## Obtém uma assinatura por ID

> Este endpoint retorna um assintura por ID cadastrada na plataforma, independentemente do status.\
> \
> Caso a assinatura não seja encontrado, uma exception \*\*SubscriptionNotFoundException\*\* será lançada.

```json
{"openapi":"3.1.0","info":{"title":"TheMembers (Beta).","version":"1.0"},"tags":[{"name":"Subscriptions"}],"servers":[{"url":"https://api.themembers.com.br/api/v1","description":"Production","variables":{}}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"Bearer"}},"schemas":{"Public.Subscription":{"type":"object","required":["active","status","product_id","payment_last_date","accession_date","expiration_date","product","student","created_at","updated_at"],"properties":{"active":{"type":"integer","description":"Indica se o aluno esta com acesso ativo","readOnly":true},"status":{"allOf":[{"$ref":"#/components/schemas/Public.SubscriptionStatus"}],"description":"Status da assinatura (active, inactive, refunded, chargeback e cancel)","readOnly":true},"product_id":{"type":"string","description":"ID do produto"},"payment_last_date":{"type":"string","description":"Data do último pagamento YYYY-MM-DD","readOnly":true},"accession_date":{"type":"string","description":"Data de adesão YYYY-MM-DD"},"expiration_date":{"type":"string","description":"Data de expiração YYYY-MM-DD"},"cancel_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Data de cancelamento YYYY-MM-DD","readOnly":true},"product":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string","description":"Título"},"description":{"type":"string","description":"Descrição"},"created_at":{"type":"string","description":"Data de criação"},"updated_at":{"type":"string","description":"Data da última atualização"}},"required":["id","title","description","created_at","updated_at"],"description":"Produto da assinatura","readOnly":true},"student":{"type":"object","properties":{"id":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"full_name":{"type":"string"},"email":{"type":"string"}},"required":["id","first_name","last_name","full_name","email"],"description":"Aluno","readOnly":true},"created_at":{"type":"string","description":"Data de criação","readOnly":true},"updated_at":{"type":"string","description":"Data da última atualização","readOnly":true}}},"Public.SubscriptionStatus":{"type":"string","enum":["active","inactive","refunded","cancel","chargeback"]},"Exceptions.Unauthorized":{"type":"object","required":["message","type"],"properties":{"message":{"type":"string","default":"Personal access token not found."},"type":{"type":"string","default":"PersonalAccessTokenException"}},"description":""},"Exceptions.Metadata":{"type":"object"},"Exceptions.SubscriptionNotFoundException":{"type":"object","required":["message","type"],"properties":{"message":{"type":"string","default":"Subscription [%] not found."},"type":{"type":"string","default":"SubscriptiontNotFoundException"}},"description":""},"Exceptions.RateLimitException":{"type":"object","required":["message","type","retry_after"],"properties":{"message":{"type":"string","default":"Rate limit exceeded for API key [%]"},"type":{"type":"string","default":"RateLimitException"},"retry_after":{"type":"integer"}},"description":""},"Exceptions.InternalServerError":{"type":"object","required":["message","type"],"properties":{"message":{"type":"string","default":"An unexpected error occurred. Please try again later."},"type":{"type":"string","default":"InternalServerErrorException"}},"description":""}}},"paths":{"/subscriptions/{subscription_id}":{"get":{"operationId":"Subscriptions_getCourseById","summary":"Obtém uma assinatura por ID","description":"Este endpoint retorna um assintura por ID cadastrada na plataforma, independentemente do status.\n\nCaso a assinatura não seja encontrado, uma exception **SubscriptionNotFoundException** será lançada.","parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/Public.Subscription"}},"description":""}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","required":["error","trace_id","metadata"],"properties":{"error":{"$ref":"#/components/schemas/Exceptions.Unauthorized"},"trace_id":{"type":"string"},"metadata":{"$ref":"#/components/schemas/Exceptions.Metadata"}}}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","required":["error","trace_id","metadata"],"properties":{"error":{"$ref":"#/components/schemas/Exceptions.SubscriptionNotFoundException"},"trace_id":{"type":"string"},"metadata":{"$ref":"#/components/schemas/Exceptions.Metadata"}}}}}},"429":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","required":["error","trace_id","metadata"],"properties":{"error":{"$ref":"#/components/schemas/Exceptions.RateLimitException"},"trace_id":{"type":"string"},"metadata":{"$ref":"#/components/schemas/Exceptions.Metadata"}}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","required":["error","trace_id","metadata"],"properties":{"error":{"$ref":"#/components/schemas/Exceptions.InternalServerError"},"trace_id":{"type":"string"},"metadata":{"$ref":"#/components/schemas/Exceptions.Metadata"}}}}}}},"tags":["Subscriptions"]}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://documentation.themembers.dev.br/api-reference/reference/subscriptions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
