> For the complete documentation index, see [llms.txt](https://docs.rememberizer.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rememberizer.ai/es/recursos-para-desarrolladores/api-docs/authentication.md).

# Autenticación

Rememberizer proporciona varios puntos finales de autenticación para gestionar cuentas de usuario y sesiones. Este documento describe las APIs de autenticación disponibles.

## Registrarse

{% openapi src="/files/5V7ybptH1vsfKadO6dio" path="/auth/signup/" method="post" %}
[rememberizer\_openapi.yml](https://983989491-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeFTiuIsKOMpUEE73g7bP%2Fuploads%2Fgit-blob-77b6137eeb641262ec8e531c78123c02b825b865%2Frememberizer_openapi.yml?alt=media\&token=03079f98-60fe-4914-9e1b-443e008fd108)
{% endopenapi %}

### Ejemplos de Solicitudes

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST \
  https://api.rememberizer.ai/api/v1/auth/signup/ \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@example.com",
    "password": "secure_password",
    "name": "John Doe",
    "captcha": "recaptcha_response"
  }'
```

{% hint style="info" %}
Reemplace `recaptcha_response` con una respuesta reCAPTCHA real.
{% endhint %}
{% endtab %}

{% tab title="JavaScript" %}

```javascript
const signUp = async () => {
  const response = await fetch('https://api.rememberizer.ai/api/v1/auth/signup/', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      email: 'user@example.com',
      password: 'secure_password',
      name: 'John Doe',
      captcha: 'recaptcha_response'
    })
  });
  
  const data = await response.json();
  console.log(data);
};

signUp();
```

{% hint style="info" %}
Reemplace `recaptcha_response` con una respuesta reCAPTCHA real.
{% endhint %}
{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

def sign_up():
    headers = {
        "Content-Type": "application/json"
    }
    
    payload = {
        "email": "user@example.com",
        "password": "secure_password",
        "name": "John Doe",
        "captcha": "recaptcha_response"
    }
    
    response = requests.post(
        "https://api.rememberizer.ai/api/v1/auth/signup/",
        headers=headers,
        data=json.dumps(payload)
    )
    
    data = response.json()
    print(data)

sign_up()
```

{% hint style="info" %}
Reemplace `recaptcha_response` con una respuesta reCAPTCHA real.
{% endhint %}
{% endtab %}
{% endtabs %}

## Iniciar sesión

{% openapi src="/files/5V7ybptH1vsfKadO6dio" path="/auth/signin/" method="post" %}
[rememberizer\_openapi.yml](https://983989491-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeFTiuIsKOMpUEE73g7bP%2Fuploads%2Fgit-blob-77b6137eeb641262ec8e531c78123c02b825b865%2Frememberizer_openapi.yml?alt=media\&token=03079f98-60fe-4914-9e1b-443e008fd108)
{% endopenapi %}

### Ejemplos de Solicitudes

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST \
  https://api.rememberizer.ai/api/v1/auth/signin/ \
  -H "Content-Type: application/json" \
  -d '{
    "login": "user@example.com",
    "password": "secure_password",
    "captcha": "recaptcha_response"
  }'
```

{% hint style="info" %}
Reemplace `recaptcha_response` con una respuesta reCAPTCHA real.
{% endhint %}
{% endtab %}

{% tab title="JavaScript" %}

```javascript
const signIn = async () => {
  const response = await fetch('https://api.rememberizer.ai/api/v1/auth/signin/', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      login: 'user@example.com',
      password: 'secure_password',
      captcha: 'recaptcha_response'
    })
  });
  
  // Verificar cookies de autenticación en la respuesta
  if (response.status === 204) {
    console.log("¡Inicio de sesión exitoso!");
  } else {
    console.error("¡Error en el inicio de sesión!");
  }
};

signIn();
```

{% hint style="info" %}
Reemplace `recaptcha_response` con una respuesta reCAPTCHA real.
{% endhint %}
{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

def sign_in():
    headers = {
        "Content-Type": "application/json"
    }
    
    payload = {
        "login": "user@example.com",
        "password": "secure_password",
        "captcha": "recaptcha_response"
    }
    
    response = requests.post(
        "https://api.rememberizer.ai/api/v1/auth/signin/",
        headers=headers,
        data=json.dumps(payload)
    )
    
    if response.status_code == 204:
        print("¡Inicio de sesión exitoso!")
    else:
        print("¡Error en el inicio de sesión!")

sign_in()
```

{% hint style="info" %}
Reemplace `recaptcha_response` con una respuesta reCAPTCHA real.
{% endhint %}
{% endtab %}
{% endtabs %}

## Verificación de Correo Electrónico

{% openapi src="/files/5V7ybptH1vsfKadO6dio" path="/auth/verify-email/" method="post" %}
[rememberizer\_openapi.yml](https://983989491-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeFTiuIsKOMpUEE73g7bP%2Fuploads%2Fgit-blob-77b6137eeb641262ec8e531c78123c02b825b865%2Frememberizer_openapi.yml?alt=media\&token=03079f98-60fe-4914-9e1b-443e008fd108)
{% endopenapi %}

### Ejemplos de Solicitudes

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST \
  https://api.rememberizer.ai/api/v1/auth/verify-email/ \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "verification_code": "123456"
  }'
```

{% hint style="info" %}
Reemplace `YOUR_JWT_TOKEN` con su token JWT real y use el código de verificación enviado a su correo electrónico.
{% endhint %}
{% endtab %}

{% tab title="JavaScript" %}

```javascript
const verifyEmail = async () => {
  const response = await fetch('https://api.rememberizer.ai/api/v1/auth/verify-email/', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer YOUR_JWT_TOKEN',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      verification_code: '123456'
    })
  });
  
  if (response.status === 200) {
    console.log("¡Verificación de correo electrónico exitosa!");
  } else {
    console.error("¡La verificación de correo electrónico falló!");
  }
};

verifyEmail();
```

{% hint style="info" %}
Reemplace `YOUR_JWT_TOKEN` con su token JWT real y use el código de verificación enviado a su correo electrónico.
{% endhint %}
{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

def verify_email():
    headers = {
        "Authorization": "Bearer YOUR_JWT_TOKEN",
        "Content-Type": "application/json"
    }
    
    payload = {
        "verification_code": "123456"
    }
    
    response = requests.post(
        "https://api.rememberizer.ai/api/v1/auth/verify-email/",
        headers=headers,
        data=json.dumps(payload)
    )
    
    if response.status_code == 200:
        print("¡Verificación de correo electrónico exitosa!")
    else:
        print("¡La verificación de correo electrónico falló!")

verify_email()
```

{% hint style="info" %}
Reemplace `YOUR_JWT_TOKEN` con su token JWT real y use el código de verificación enviado a su correo electrónico.
{% endhint %}
{% endtab %}
{% endtabs %}

## Gestión de Tokens

{% openapi src="/files/5V7ybptH1vsfKadO6dio" path="/auth/custom-refresh/" method="post" %}
[rememberizer\_openapi.yml](https://983989491-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeFTiuIsKOMpUEE73g7bP%2Fuploads%2Fgit-blob-77b6137eeb641262ec8e531c78123c02b825b865%2Frememberizer_openapi.yml?alt=media\&token=03079f98-60fe-4914-9e1b-443e008fd108)
{% endopenapi %}

### Ejemplos de Solicitudes

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST \
  https://api.rememberizer.ai/api/v1/auth/custom-refresh/ \
  -b "refresh_token=YOUR_REFRESH_TOKEN"
```

{% hint style="info" %}
Este endpoint utiliza cookies para la autenticación. El token de actualización debe enviarse como una cookie.
{% endhint %}
{% endtab %}

{% tab title="JavaScript" %}

```javascript
const refreshToken = async () => {
  const response = await fetch('https://api.rememberizer.ai/api/v1/auth/custom-refresh/', {
    method: 'POST',
    credentials: 'include' // Esto incluye cookies en la solicitud
  });
  
  if (response.status === 204) {
    console.log("¡Token actualizado con éxito!");
  } else {
    console.error("¡Falló la actualización del token!");
  }
};

refreshToken();
```

{% hint style="info" %}
Este endpoint utiliza cookies para la autenticación. Asegúrate de que tu aplicación incluya credenciales en la solicitud.
{% endhint %}
{% endtab %}

{% tab title="Python" %}

```python
import requests

def refresh_token():
    cookies = {
        "refresh_token": "YOUR_REFRESH_TOKEN"
    }
    
    response = requests.post(
        "https://api.rememberizer.ai/api/v1/auth/custom-refresh/",
        cookies=cookies
    )
    
    if response.status_code == 204:
        print("¡Token actualizado con éxito!")
    else:
        print("¡Falló la actualización del token!")

refresh_token()
```

{% hint style="info" %}
Reemplaza `YOUR_REFRESH_TOKEN` con tu token de actualización real.
{% endhint %}
{% endtab %}
{% endtabs %}

## Cerrar sesión

{% openapi src="/files/5V7ybptH1vsfKadO6dio" path="/auth/custom-logout/" method="post" %}
[rememberizer\_openapi.yml](https://983989491-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeFTiuIsKOMpUEE73g7bP%2Fuploads%2Fgit-blob-77b6137eeb641262ec8e531c78123c02b825b865%2Frememberizer_openapi.yml?alt=media\&token=03079f98-60fe-4914-9e1b-443e008fd108)
{% endopenapi %}

### Ejemplos de Solicitudes

```bash
curl -X POST \
  https://api.rememberizer.ai/api/v1/auth/custom-logout/
```

{% hint style="info" %}
Este endpoint eliminará las cookies de autenticación.
{% endhint %}

```javascript
const logout = async () => {
  const response = await fetch('https://api.rememberizer.ai/api/v1/auth/custom-logout/', {
    method: 'POST',
    credentials: 'include' // Esto incluye cookies en la solicitud
  });
  
  if (response.status === 204) {
    console.log("¡Cierre de sesión exitoso!");
  } else {
    console.error("¡Cierre de sesión fallido!");
  }
};

logout();
```

{% hint style="info" %}
Este endpoint utiliza cookies para la autenticación. Asegúrate de que tu aplicación incluya credenciales en la solicitud.
{% endhint %}

```python
import requests

def logout():
    session = requests.Session()
    
    response = session.post(
        "https://api.rememberizer.ai/api/v1/auth/custom-logout/"
    )
    
    if response.status_code == 204:
        print("¡Cierre de sesión exitoso!")
    else:
        print("¡Cierre de sesión fallido!")

logout()
```

{% hint style="info" %}
Este endpoint eliminará las cookies de autenticación.
{% endhint %}

{% endtabs %


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.rememberizer.ai/es/recursos-para-desarrolladores/api-docs/authentication.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
