EaserixDocs
DevelopersAPI referenceTasksImports

Say what a Linear API key can see

Administrators only (`org.settings.manage`). Reads the Linear workspace the key belongs to, its teams, and its people, and stores nothing. Each Linear team comes with `match`, the team of this workspace it looks like by name and then by key (null when none, or when two would fit, because guessing between them would put issues in a team nobody chose). `people` says how many active people Linear has and which of them are not members of this workspace yet, matched by email. Their issues are imported unassigned and handed over when they join, so this only tells the admin who will wait. The key is a Linear personal API key. It is held in memory for the call and never stored, logged, audited or returned, and an error never carries it. A key that is not a key (a space, a line break, too long) is a 400 `bad_key`. One Linear does not accept is a 422 `linear_key_rejected`. A Linear rate limit is a 429 `linear_rate_limited`, and Linear failing is a 502 `linear_unavailable`.

View as Markdown
POST
/v1/imports/linear/inspect
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/imports/linear/inspect" \  -H "Content-Type: application/json" \  -d '{    "apiKey": "pa$$word"  }'
{  "workspace": {    "name": "string",    "urlKey": "string"  },  "teams": [    {      "id": "string",      "key": "string",      "name": "string",      "match": {        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",        "name": "string",        "key": "string"      }    }  ],  "people": {    "total": 0,    "missingTotal": 0,    "missing": [      {        "name": "string",        "email": "string"      }    ]  }}

Upload a file that names several teams, one import per team

Step 1 of 3 for a file that holds several teams. Administrators only (`org.settings.manage`). multipart/form-data with the CSV in `file`, the `teamMap`, and optionally `column`, `source` and `namespace` as on `createImport`. The file is cut by team and each team's rows become an ordinary import in that team, so what an import promises (one team, a preview before it runs, a ledger that makes a re-run harmless, an undo) is unchanged. The imports of one upload share a `batchId`, and each is then previewed and committed with the routes of a single import. A part is a file of its own, so its rows are numbered within it, and a part that is the same as one imported before is recognised by `previousImport`. `teamMap` is a JSON object with one entry for every team the file names: the name as written in the file (case and spacing do not matter), and the id of the team its rows go to, or null to leave them out. A name the map does not mention is refused (`team_not_mapped`), because dropping rows by leaving them out of the map is how work is lost unnoticed. Several names may go to one team, and their rows are then one import, in file order. Teams are never created: a team the file names that the workspace does not have is left out until it exists in Accounts. A team the caller cannot reach is a 404. Everything is stored or nothing is. At most 50 teams, and a team holds at most 10 unfinished imports (409 with the `teamId`). A file that cannot be cut without changing it is refused with `not_splittable`.

List the latest Linear fetches of the workspace

Administrators only. The ten most recent, newest first, so a screen that was closed can find a fetch that is still running.