# SDKs

URL canónica: https://texttree.ai/es-es/docs/sdks/
URL de Markdown: https://texttree.ai/es-es/docs/sdks.md
Tipo de página: docs
Translation status: draft
Legal status: english_controls

## Resumen

Usa TextTree desde curl, JavaScript, Python y Elixir.

## Contenido de la página

Las bibliotecas cliente de referencia se encuentran en el directorio
[`sdks/`](https://github.com/alphagrowth/texttree-sms/tree/main/sdks)
(JavaScript y Python, ambas sin dependencias), y una
[especificación OpenAPI](https://github.com/alphagrowth/texttree-sms/blob/main/docs/openapi.yaml)
legible por máquina describe la superficie de mensajería para la generación de código y las herramientas de API.

Los fragmentos a continuación muestran las llamadas HTTP sin procesar que los SDK envuelven.

## JavaScript

```js
const response = await fetch("https://api.texttree.ai/api/v1/messages", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.TEXTREE_ACCESS_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    phone_number: "+15551234567",
    body: "Hello from TextTree",
  }),
});

const result = await response.json();
```

## Python

```py
import os
import requests

response = requests.post(
    "https://api.texttree.ai/api/v1/messages",
    headers={"Authorization": f"Bearer {os.environ['TEXTREE_ACCESS_TOKEN']}"},
    json={"phone_number": "+15551234567", "body": "Hello from TextTree"},
    timeout=10,
)

result = response.json()
```

## Elixir

```elixir
Mix.install([:req])

result =
  Req.post!(
    "https://api.texttree.ai/api/v1/messages",
    auth: {:bearer, System.fetch_env!("TEXTREE_ACCESS_TOKEN")},
    json: %{
      phone_number: "+15551234567",
      body: "Hello from TextTree"
    }
  ).body
```

## curl

```bash
curl https://api.texttree.ai/api/v1/messages \
  -H "Authorization: Bearer $TEXTREE_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "phone_number": "+15551234567",
    "body": "Hello from TextTree"
  }'
```

## Notas

- Usa tokens de acceso de TextTree con los scopes requeridos por el endpoint.
- Usa el modo Live solo después de completar la facturación, el cumplimiento y la configuración del remitente.
- Usa claves de idempotencia para los reintentos de flujos de trabajo para que los trabajos duplicados no creen envíos duplicados.

