⌘K

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

NombreValor
X-API-KeyTu clave de API. Consulta Claves de API.

Campos del formulario

CampoObligatorioQué es
ProjectIDSíEl id del departamento en el que entra la tabla. Lo encontrarás en Tus ID, en la página Acceso a la API.
FileSíEl archivo CSV.
CardIDNoEl 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 como application/octet-stream si 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);