Para Desarrolladores
Integra con 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 con herramientas y fuentes de datos externas directamente. Conecta tu herramienta de IA preferida a Refine con un solo endpoint.
- Añade la URL del endpoint MCP de Refine en la configuración de tu herramienta de IA
- Tu herramienta gestionará la autenticación OAuth automáticamente
¿Usas Claude en web, escritorio o móvil? Instala el conector de Refine directamente desde el directorio de Claude, sin configuración que copiar.
Abrir 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 por defecto. Tu cliente MCP gestionará el flujo de autorización automáticamente.
MCP también puede usar claves de API para la autenticación.
API REST
API REST
Una API RESTful con documentación interactiva OpenAPI. Explora todos los endpoints disponibles, esquemas de petición y respuesta, y prueba peticiones directamente desde el navegador.
Explorar documentación de la API- Crea una clave de API en la Configuración Avanzada de tu perfil
- Usa la clave para autenticar tus peticiones
# 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 tus claves de API seguras. 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 sobre Refine. Simula la API a partir de nuestro esquema OpenAPI mientras montas la integración y pasa al flujo real cuando estés listo.
Simula la API con el esquema OpenAPI
Todos los endpoints están descritos en nuestro esquema OpenAPI, así que cualquier herramienta de simulación que lea OpenAPI puede levantar una API de Refine ficticia: Prism, Mockoon, Microcks, WireMock, Postman o el servidor de simulación de tu propio framework. Apunta tu cliente a esa URL para probar tu código de subida, procesamiento y sondeo 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 siempre está sincronizado con la API en producción: ver el esquema OpenAPI
O prueba con el flujo real
Una simulación no te muestra cómo son los comentarios reales. Escríbenos y añadiremos créditos de vista previa a tu cuenta para que puedas procesar documentos reales por el flujo completo. Las vistas previas son una pasada rápida y de bajo procesamiento, así que devuelven menos comentarios que una Revisión Completa, pero bastan para validar tu integración de principio a fin.
Contáctanos para solicitar créditos de vista previaEmpieza a construir
Las APIs para desarrolladores están en fase beta — agradecemos tus comentarios mientras continuamos desarrollándolas.