Para desarrolladores
Integra la API REST de Refine o conecta herramientas de IA mediante el Model Context Protocol (MCP)
MCP
Model Context Protocol (MCP)
MCP es un estándar abierto que permite a los asistentes de IA interactuar directamente con herramientas y fuentes de datos externas. Conecta tu herramienta de IA preferida con Refine mediante un único endpoint.
- Añade la URL del endpoint MCP de Refine a la configuración de tu herramienta de IA
- Tu herramienta gestionará automáticamente la autenticación OAuth
¿Usas Claude en la web, en el ordenador o en el móvil? Instala el conector de Refine directamente desde el directorio de Claude, sin tener que pegar ninguna configuración.
Abre el conector de Refine{
"mcpServers": {
"refine": {
"url": "https://api.refine.ink/mcp"
}
}
}{
"mcpServers": {
"refine": {
"url": "https://api.refine.ink/mcp"
}
}
}{
"servers": {
"refine": {
"type": "http",
"url": "https://api.refine.ink/mcp"
}
}
}OAuth es el método de autenticación predeterminado. Tu cliente MCP gestionará automáticamente el flujo de autorización.
MCP también puede usar claves de API para la autenticación.
REST API
REST API
Una API RESTful con documentación interactiva de OpenAPI. Explora todos los endpoints disponibles, los esquemas de solicitud y respuesta y prueba solicitudes directamente desde el navegador.
Explorar documentación de la API- Crea una clave de API en Ajustes avanzados de la cuenta, en la página de tu perfil
- Usa la clave para autenticar tus solicitudes
# 1. Upload a document
UPLOAD=$(curl -s -X POST "https://api.refine.ink/documents/upload" \
-H "X-API-Key: your-api-key" \
-F "file=@paper.pdf")
TASK_ID=$(echo $UPLOAD | jq -r '.task_id')
# 2. Wait for upload processing via SSE
curl -N "https://api.refine.ink/documents/upload/events/$TASK_ID?token=your-api-key"
# Listen until you receive: event: complete, data: {"document_id": "..."}
DOCUMENT_ID="<document_id from SSE>"
# 3. Start document processing (costs 1 credit)
PROCESS=$(curl -s -X POST "https://api.refine.ink/documents/$DOCUMENT_ID/process" \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{"preview": false}')
SESSION_ID=$(echo $PROCESS | jq -r '.session_id')
# 4. Stream processing progress via SSE
curl -N "https://api.refine.ink/documents/$DOCUMENT_ID/process/events/$SESSION_ID?token=your-api-key"import requests
import sseclient # pip install sseclient-py
API_KEY = "your-api-key"
BASE = "https://api.refine.ink"
headers = {"X-API-Key": API_KEY}
# 1. Upload a document
with open("paper.pdf", "rb") as f:
upload = requests.post(
f"{BASE}/documents/upload",
headers=headers,
files={"file": f}
).json()
task_id = upload["task_id"]
# 2. Wait for upload processing via SSE
response = requests.get(
f"{BASE}/documents/upload/events/{task_id}?token={API_KEY}",
stream=True
)
client = sseclient.SSEClient(response)
for event in client.events():
if event.event == "complete":
document_id = json.loads(event.data)["document_id"]
break
# 3. Start document processing (costs 1 credit)
process = requests.post(
f"{BASE}/documents/{document_id}/process",
headers=headers,
json={"preview": False}
).json()
session_id = process["session_id"]
# 4. Stream processing progress via SSE
response = requests.get(
f"{BASE}/documents/{document_id}/process/events/{session_id}?token={API_KEY}",
stream=True
)
for event in sseclient.SSEClient(response).events():
print(event.event, event.data)const API_KEY = "your-api-key";
const BASE = "https://api.refine.ink";
// 1. Upload a document
const form = new FormData();
form.append("file", new Blob([fileBuffer]), "paper.pdf");
const upload = await fetch(`${BASE}/documents/upload`, {
method: "POST",
headers: { "X-API-Key": API_KEY },
body: form,
}).then(r => r.json());
const taskId = upload.task_id;
// 2. Wait for upload processing via SSE
const uploadEvents = new EventSource(
`${BASE}/documents/upload/events/${taskId}?token=${API_KEY}`
);
const documentId = await new Promise<string>((resolve) => {
uploadEvents.addEventListener("complete", (e) => {
resolve(JSON.parse(e.data).document_id);
uploadEvents.close();
});
});
// 3. Start document processing (costs 1 credit)
const process = await fetch(
`${BASE}/documents/${documentId}/process`,
{
method: "POST",
headers: {
"X-API-Key": API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({ preview: false }),
}
).then(r => r.json());
// 4. Stream processing progress via SSE
const processEvents = new EventSource(
`${BASE}/documents/${documentId}/process/events/${process.session_id}?token=${API_KEY}`
);
// Events are named, so listen per event rather than on "message"
processEvents.addEventListener("progress", (e) => {
console.log(JSON.parse(e.data));
});
processEvents.addEventListener("complete", (e) => {
console.log(JSON.parse(e.data));
processEvents.close();
});Mantén seguras tus claves de API. No las incluyas en el control de versiones ni las expongas en código del lado del cliente.
Pruebas
Prueba tu integración
No necesitas gastar créditos para desarrollar con Refine. Simula la API a partir de nuestro esquema de OpenAPI mientras configuras la integración y cambia al procesamiento real cuando estés listo.
Simula la API a partir del esquema de OpenAPI
Cada endpoint está descrito en nuestro esquema de OpenAPI, así que cualquier herramienta de simulación que lea OpenAPI puede levantar una API de Refine simulada: Prism, Mockoon, Microcks, WireMock, Postman o el servidor simulado propio de tu framework. Apunta tu cliente a ella para probar el código de subida, procesamiento y consulta periódica sin tocar el servicio real.
# Grab the OpenAPI schema
curl -o refine-openapi.json https://api.refine.ink/openapi.json
# Serve a mock from it with the tool of your choice, e.g. Prism
npx @stoplight/prism-cli mock refine-openapi.json
# Point your client at the mock instead of the real API
export REFINE_API_URL=http://127.0.0.1:4010El esquema está siempre sincronizado con la API en producción: ver el esquema de OpenAPI.
O prueba el flujo real
Las simulaciones no pueden mostrarte cómo son los comentarios reales. Contáctanos y te concederemos créditos de vista previa para tu cuenta, para que puedas procesar documentos reales de principio a fin. Las ejecuciones de vista previa son rápidas y requieren poco procesamiento, por lo que devuelven menos comentarios que una revisión completa, lo que basta para validar tu integración de principio a fin.
Contáctanos para solicitar créditos de vista previaEmpieza a integrar
Las API para desarrolladores están en beta y agradecemos tus comentarios mientras seguimos desarrollándolas.