Importar datos
Enviar un CSV a un departamento como tabla nueva o sustituir los datos de una tabla.
Descripción general
La importación envía un archivo CSV a un departamento. Mira lo convierte en una tabla sobre la que las personas de ese departamento pueden hacer preguntas, igual que con un archivo subido en la app. Si además envías el id de una tabla, el archivo sustituye los datos de esa tabla en lugar de crear una nueva.
POST https://searchmira.com/api/v1.0/data/import
La petición es una subida de formulario multipart, la misma que envía un formulario web con un campo de archivo. La mayoría de las herramientas HTTP la montan por ti. No pongas tú la cabecera Content-Type de la petición: tu herramienta la añade con el boundary correcto.
Qué enviar
Cabecera
| Nombre | Valor |
|---|---|
X-API-Key | Tu clave de API. Consulta Claves de API. |
Campos del formulario
| Campo | Obligatorio | Qué es |
|---|---|---|
ProjectID | Sí | El id del departamento en el que entra la tabla. Lo encontrarás en Tus ID, en la página Acceso a la API. |
File | Sí | El archivo CSV. |
CardID | No | El id de una tabla que ya existe en ese departamento. Envíalo para sustituir los datos de esa tabla. Déjalo fuera para crear una tabla nueva. |
El archivo
- Solo CSV. El nombre del archivo debe terminar en
.csv. - Marca el archivo como CSV. Envía la parte del archivo con el tipo
text/csv. Algunas herramientas etiquetan un archivo comoapplication/octet-streamsi no se les indica otra cosa, y Mira lo rechaza. Los ejemplos de abajo lo indican. - Encabezados en la primera fila. Mira lee la primera fila como nombres de columna. Si un encabezado está vacío, Mira le pone nombre, y si uno se repite, le añade un número.
- Cualquier separador habitual. Reconoce comas, puntos y comas, tabulaciones y barras verticales. No tienes que decir cuál has usado.
- Hasta 300 columnas y 512 MB.
Qué recibes
Una subida correcta devuelve 200 y el id de la tabla nueva:
{
"Msg": "OK",
"ExecTime": 2.456,
"Success": true,
"CardID": "CRD-550e8400-e29b-41d4-a716-446655440000"
}
Guarda el CardID. Es lo que te permite sustituir más adelante los datos de esta tabla o borrarla.
La tabla no está lista en cuanto termina la subida. Mira lee antes el archivo, y con uno grande puede tardar un poco. En Tablas se explica cómo comprobarlo: una tabla está lista cuando su campo Processed es true.
Cada subida consume uno de los créditos de tu organización. Si algo falla, la respuesta explica el motivo en Msg. En Límites y errores tienes todos los casos.
Ejemplo: una tabla nueva
cURL
curl -X POST https://searchmira.com/api/v1.0/data/import \
-H "X-API-Key: YOUR_API_KEY" \
-F "ProjectID=YOUR_PROJECT_ID" \
-F "File=@/path/to/your-data.csv;type=text/csv"
Python
import requests
response = requests.post(
"https://searchmira.com/api/v1.0/data/import",
headers={"X-API-Key": "YOUR_API_KEY"},
data={
"ProjectID": "YOUR_PROJECT_ID",
},
files={"File": ("your-data.csv", open("your-data.csv", "rb"), "text/csv")},
)
print(response.json())
JavaScript
const file = fileInput.files[0];
const form = new FormData();
form.append("ProjectID", "YOUR_PROJECT_ID");
form.append("File", new Blob([file], { type: "text/csv" }), file.name);
const response = await fetch(
"https://searchmira.com/api/v1.0/data/import",
{
method: "POST",
headers: { "X-API-Key": "YOUR_API_KEY" },
body: form,
}
);
const data = await response.json();
console.log(data);
Ejemplo: sustituir los datos de una tabla
Añade CardID. El archivo nuevo ocupa el lugar de los datos antiguos y la tabla conserva su id.
No se puede sustituir una tabla mientras Mira sigue leyendo un archivo anterior para ella. Espera a que esté lista y vuelve a intentarlo.
cURL
curl -X POST https://searchmira.com/api/v1.0/data/import \
-H "X-API-Key: YOUR_API_KEY" \
-F "ProjectID=YOUR_PROJECT_ID" \
-F "CardID=YOUR_CARD_ID" \
-F "File=@/path/to/your-data.csv;type=text/csv"
Python
import requests
response = requests.post(
"https://searchmira.com/api/v1.0/data/import",
headers={"X-API-Key": "YOUR_API_KEY"},
data={
"ProjectID": "YOUR_PROJECT_ID",
"CardID": "YOUR_CARD_ID",
},
files={"File": ("your-data.csv", open("your-data.csv", "rb"), "text/csv")},
)
print(response.json())
JavaScript
const file = fileInput.files[0];
const form = new FormData();
form.append("ProjectID", "YOUR_PROJECT_ID");
form.append("CardID", "YOUR_CARD_ID");
form.append("File", new Blob([file], { type: "text/csv" }), file.name);
const response = await fetch(
"https://searchmira.com/api/v1.0/data/import",
{
method: "POST",
headers: { "X-API-Key": "YOUR_API_KEY" },
body: form,
}
);
const data = await response.json();
console.log(data);