---
title: "Submit Import Job For Project"
method: POST
path: "/api/v1/import/{project_id}/submit"
tags: ["import"]
---

# Submit Import Job For Project

`POST /api/v1/import/{project_id}/submit`

Start a background import into an EXISTING project (Door 2, async).

The synchronous ``/from-features`` twin stays for the paste-sized case; this
route exists because resolving is what costs minutes, and the browser owning
that wait is the problem. Returns as soon as the job is durably enqueued.

## Request body

- ImportSubmitRequest — Start a background import from a held upload, into a new or existing project depending on the route.
  - `upload` ImportUploadSubmit, required — The held-upload half of an ASYNC submit — no matches, by construction. The synchronous twin (``ImportUploadCommit``) carries the client's resolved matches because the browser did the resolving. Here the job resolves, so the client sends only which columns compose each row's address query and which to carry through; a ``matches`` field would be a second, stale source for something the server is about to derive.
    - `token` string, required
    - `address_columns` string[], required
    - `mapped_columns` string[]
  - `spine` 'matched_only' | 'all_rows'
  - `knowledge_skill_workspace_id` string, uuid, nullable
  - `layer_name` string, nullable — Name for the matched-features layer. In-project route only — the new-project route names its layers from the create flow. Blank or absent falls back to a name derived from the matched feature ids.

## Response `200`

Successful Response

- ImportSubmitResponse — What a submit returns once the job is durably enqueued. The project id is present for both doors — Door 1 creates the project during the submit so the client can navigate to it immediately, reading as not-yet-ready until the job finishes. ``county_fips`` is what that immediate navigation frames the map against: the project has no features until the job commits, so its county extent is the only camera the view can take. Door 1 derives it from the sample; Door 2 echoes the project's own.
  - `project_id` string, uuid, required
  - `import_job_id` string, uuid, required
  - `county_fips` string, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/maia-analytics/apis/maia-api.md) · [All operations](https://skmtc.net/maia-analytics/apis/maia-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/maia-analytics/maia-api/versions/ba2b8d962161/schema)
