EaserixDocs
DevelopersAPI referenceTasksImports

Get what an unstarted import's file looked like

Administrators only. The same answer `createImport` gave when the file was uploaded, for an import that has not started (`uploaded` or `planned`): the file's headers and first rows, `detected`, and `suggestedMapping`, which is the mapping the import already has when it has one (made by the Linear connector, or saved by a preview) and the suggestion otherwise. It lets a screen review an import it did not upload itself, such as each team of a Linear fetch, or one found again after a reload. An import that has started is a 409 `not_editable`. One in another workspace is a 404.

View as Markdown
GET
/v1/imports/{id}/upload
AuthorizationBearer <token>

In: header

Path Parameters

id*string
Formatuuid

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/imports/497f6eca-6276-4993-bfeb-53cbbbba6f08/upload"
{  "import": {    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",    "source": "csv",    "namespace": "string",    "status": "uploaded",    "fileName": "string",    "fileSize": 0,    "totalRows": 0,    "createdCount": 0,    "skippedCount": 0,    "failedCount": 0,    "cancelRequested": true,    "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",    "createdAt": "2019-08-24T14:15:22Z",    "startedAt": "2019-08-24T14:15:22Z",    "finishedAt": "2019-08-24T14:15:22Z",    "retryAfter": "2019-08-24T14:15:22Z",    "undoneAt": "2019-08-24T14:15:22Z",    "batchId": "5579c111-9c50-47e2-af92-f16d52e63189",    "origin": "file",    "undoableUntil": "2019-08-24T14:15:22Z",    "commentCount": 0,    "mapping": {      "v": 1,      "columns": {        "property1": "string",        "property2": "string"      },      "idColumn": "string",      "idAlias": "string",      "people": {        "property1": "string",        "property2": "string"      },      "strict": true,      "sprintDates": {        "property1": {          "start": "2019-08-24",          "end": "2019-08-24"        },        "property2": {          "start": "2019-08-24",          "end": "2019-08-24"        }      },      "linkColumns": [        "string"      ],      "markup": "none",      "commentFormat": "plain",      "completedFallback": "string",      "dateFormat": "iso",      "timezone": "Asia/Kolkata",      "labelSeparator": "str",      "status": {        "property1": {          "stateId": "871bb69c-5872-42b2-88b0-72e9da663aaa",          "create": true,          "type": "backlog"        },        "property2": {          "stateId": "871bb69c-5872-42b2-88b0-72e9da663aaa",          "create": true,          "type": "backlog"        }      },      "priority": {        "property1": 0,        "property2": 0      }    },    "reconciliation": {      "rows": 0,      "created": 0,      "alreadyImported": 0,      "refused": 0,      "notWritten": 0,      "allAccountedFor": true,      "byStatus": [        {          "status": "string",          "inFile": 0,          "created": 0,          "alreadyImported": 0,          "refused": 0,          "notWritten": 0        }      ]    }  },  "file": {    "headers": [      "string"    ],    "rowCount": 0,    "sampleRows": [      [        "string"      ]    ],    "delimiter": "string",    "encoding": "utf-8",    "warnings": [      "string"    ]  },  "suggestedMapping": {    "v": 1,    "columns": {      "property1": "string",      "property2": "string"    },    "idColumn": "string",    "idAlias": "string",    "people": {      "property1": "string",      "property2": "string"    },    "strict": true,    "sprintDates": {      "property1": {        "start": "2019-08-24",        "end": "2019-08-24"      },      "property2": {        "start": "2019-08-24",        "end": "2019-08-24"      }    },    "linkColumns": [      "string"    ],    "markup": "none",    "commentFormat": "plain",    "completedFallback": "string",    "dateFormat": "iso",    "timezone": "Asia/Kolkata",    "labelSeparator": "str",    "status": {      "property1": {        "stateId": "871bb69c-5872-42b2-88b0-72e9da663aaa",        "create": true,        "type": "backlog"      },      "property2": {        "stateId": "871bb69c-5872-42b2-88b0-72e9da663aaa",        "create": true,        "type": "backlog"      }    },    "priority": {      "property1": 0,      "property2": 0    }  },  "previousImport": {    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "finishedAt": "2019-08-24T14:15:22Z",    "createdCount": 0,    "namespace": "string"  },  "detected": {    "source": "linear",    "namespace": "string",    "notes": [      "string"    ]  }}

Get an import's status and its row errors

Administrators only. Poll this while an import runs: the counts move as rows are written. `errors` holds the first 100 rows that could not be written (in row order) and `errorCount` the true total. An import in another workspace is a 404. `errors` also holds the rows the plan left out, which the worker saves when it starts (the upload is deleted when the job ends, so this is the only record of which rows and why). Notes, such as a value that was dropped from an issue that was still imported, are not rows left out and are not kept. At most 500 are saved, and when the plan had more, a last entry with code `more_problems` says how many are not listed. `errors=all` returns up to 10,000 instead of 100, for downloading them. `pendingPeople` lists the people the file named as assignee who were not members of the workspace, most issues first, with how many of this import's issues are still waiting for each. Those issues were created unassigned and are handed to the person when they are added to the workspace, so a person who has since joined is no longer listed. It is empty until the import has ended, and at most 50 are listed. `pendingPeopleTotal` and `pendingIssuesTotal` count everyone and every issue still waiting, however many are listed.

Say exactly what an import would do

Step 2 of 3. Administrators only. Takes the column mapping and returns the plan: how many rows would be created, skipped (already imported) or refused, which statuses, labels and projects would be created, which people in the file are not members, the problems found, and the first few rows as they would be written. Nothing is written to the team. Can be repeated, and each call replaces the last. `plan.fingerprint` identifies the plan: commit must carry the fingerprint of the most recent preview. A mapping that cannot be used is a 422 listing every problem together. Only an import that has not been started can be previewed (409 otherwise).