Tables
Listing, fetching and deleting tables.
Overview
These three requests let your systems see what a department holds. List its tables to check an upload has finished, fetch one to see its columns, or delete a table you no longer need.
| To | Send |
|---|---|
| List a department's tables | GET /v1.0/projects/{ProjectID}/cards |
| Fetch one table | GET /v1.0/projects/{ProjectID}/cards/{CardID} |
| Delete a table | DELETE /v1.0/projects/{ProjectID}/cards/{CardID} |
Each address starts with the base URL, https://searchmira.com/api. ProjectID is the department's id and CardID is the table's. Overview and authentication shows where to find both. Every request carries your X-API-Key header.
Listing and fetching don't use credits.
List a department's tables
GET https://searchmira.com/api/v1.0/projects/{ProjectID}/cards
You get back every table in the department that you can see, with a short summary of each:
{
"Msg": "OK",
"ExecTime": 0.575,
"Cards": [
{
"CardID": "CRD-c3b...",
"CardName": "Leads",
"Rows": 150,
"Domain": "Sales",
"Processed": true,
"SuccessfulUpload": true,
"ConnectorSource": "Hubspot",
"ConnectorStatus": "active",
"UploadCompletionTime": "2026-04-28T14:14:22",
"LockedFromDelete": false
}
]
}
| Field | What it tells you |
|---|---|
CardID | The table's id. |
CardName | The table's name, as people see it in Mira. |
Rows | How many rows it has. |
Domain | The subject area the table belongs to. |
Processed | true once Mira has finished reading the file. Until then the table isn't ready to ask about. |
SuccessfulUpload | Whether the file was read without a problem. |
ConnectorSource | The system the table comes from, if it comes from a connected system rather than an upload. |
ConnectorStatus | For a connected system: active or paused. |
UploadCompletionTime | When Mira finished reading the latest file. |
LockedFromDelete | true if the table can't be deleted right now. See below. |
To wait for an upload to finish, list the tables every so often and look for your CardID with Processed set to true.
Example
curl https://searchmira.com/api/v1.0/projects/YOUR_PROJECT_ID/cards \
-H "X-API-Key: YOUR_API_KEY"
Fetch one table
GET https://searchmira.com/api/v1.0/projects/{ProjectID}/cards/{CardID}
You get the same summary as in the list, plus a description of the table and its columns:
{
"Msg": "OK",
"ExecTime": 0.575,
"CardID": "CRD-c3b...",
"CardName": "Leads",
"Rows": 150,
"Domain": "Sales",
"Processed": true,
"SuccessfulUpload": true,
"ConnectorSource": "Hubspot",
"ConnectorStatus": "active",
"UploadCompletionTime": "2026-04-28T14:14:22",
"LockedFromDelete": false,
"Description": "A collection of sales leads.",
"Columns": [
{
"ColumnName": "id",
"ColumnDescription": "A unique numeric identifier assigned to each lead.",
"DataType": "long"
},
{
"ColumnName": "company_name",
"ColumnDescription": "The name of the company that the lead relates to.",
"DataType": "string"
}
]
}
Mira writes the descriptions itself when it reads the file.
Example
curl https://searchmira.com/api/v1.0/projects/YOUR_PROJECT_ID/cards/YOUR_CARD_ID \
-H "X-API-Key: YOUR_API_KEY"
Delete a table
DELETE https://searchmira.com/api/v1.0/projects/{ProjectID}/cards/{CardID}
This removes the table and its data from Mira. It can't be undone. A successful delete returns:
{
"Msg": "OK",
"ExecTime": 0.575,
"Success": true
}
You need to be allowed to manage data in the department. Without that, the request is refused with a 403.
When deleting is refused
Mira refuses to delete a table, with a 409, in two cases:
- It is still being read. Wait until
Processedistrue, then try again. - It comes from a connected system. A table fed by a live connection can't be removed through the API while that connection is feeding it.
The LockedFromDelete field tells you in advance: when it is true, a delete will be refused.
Example
curl -X DELETE https://searchmira.com/api/v1.0/projects/YOUR_PROJECT_ID/cards/YOUR_CARD_ID \
-H "X-API-Key: YOUR_API_KEY"