# Migración desde OpenAI y Anthropic

> Lleva tu código a NotHoly cambiando la URL base, la clave y el ID del modelo.


| Si usas | Cambia |
|---|---|
| SDK de OpenAI | `base_url="https://api.notholy.com/v1"`, `api_key=NOTHOLY_API_KEY`, `model="notholy-specter"` |
| SDK de Anthropic | `base_url="https://api.notholy.com"`, `api_key=NOTHOLY_API_KEY`, `model="notholy-specter"` |
| HTTP directo | Las mismas rutas bajo `https://api.notholy.com/v1` |

```bash test
curl https://api.notholy.com/v1/chat/completions \
  -H "Authorization: Bearer $NOTHOLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "notholy-specter", "messages": [{"role": "user", "content": "ping"}]}'
```

## Qué funciona distinto

- Responses no guarda estado. `previous_response_id` devuelve 400.
- `cache_control` se ignora. La caché es automática.
- Las fuentes `document` de PDF en Messages devuelven 400.
- Las herramientas de servidor no se ejecutan. Solo tus herramientas de tipo función.
- `n` tiene que ser 1.
- Todavía no hay modelo de embeddings.
- No existen endpoints de batch, fine-tuning, assistants, audio ni generación de imágenes.

## Siguientes pasos

- [SDKs](/es/getting-started/sdks)
