Skip to content

HTTP API / Imports

Imports API ​

4 operations. Paths are relative to the API host (http://localhost:5080 in local development). Every operation accepts an OIDC bearer token (Authorization: Bearer …) or a workspace API key (X-Api-Key: keel_live_…); errors are RFC 9457 Problem Details with a code (error codes). Permissions: matrix.

MethodPathSummary
GET/api/v1/workspaces/{workspaceId}/models/{modelId}/importsImport history of a model, newest first, with each import's report and change request.
POST/api/v1/workspaces/{workspaceId}/models/{modelId}/importsImport dbt MetricFlow, LookML or Cube files (or a zip): every object becomes a proposal (origin Imported, file:line evidence) on branch keel/import-{format}-{id} with a change request into main; objects main has differently are kept as merge conflicts. EditModels; audited.
POST/api/v1/workspaces/{workspaceId}/models/{modelId}/imports:previewWhat importing dbt MetricFlow, LookML or Cube files would do: objects added, already on main, in conflict, and the report. Nothing is written (EditModels).
GET/api/v1/workspaces/{workspaceId}/models/{modelId}/imports/{importId}One import with its report.

ListModelImports ​

http
GET /api/v1/workspaces/{workspaceId}/models/{modelId}/imports

Import history of a model, newest first, with each import's report and change request.

ParameterInTypeRequiredNotes
workspaceIdpathuuidyes
modelIdpathuuidyes
limitqueryint32no
StatusDescriptionBody
200OKModelImportDto[]

ImportModel ​

http
POST /api/v1/workspaces/{workspaceId}/models/{modelId}/imports

Import dbt MetricFlow, LookML or Cube files (or a zip): every object becomes a proposal (origin Imported, file:line evidence) on branch keel/import-{format}-{id} with a change request into main; objects main has differently are kept as merge conflicts. EditModels; audited.

ParameterInTypeRequiredNotes
workspaceIdpathuuidyes
modelIdpathuuidyes

Request body (multipart/form-data): object

StatusDescriptionBody
201CreatedModelImportDto

Response 201: ModelImportDto

FieldTypeNotes
addedint32
approximatedint32
branchstring?
changeRequestNumberint32?
conflictsint32
entitiesint32
errorsint32
filesint32
formatstring
iduuid
importedAtdate-time
importedBystring
issuesImportIssueDto[]
joinsint32
metricsint32
modelIduuid
objectsImportedObjectDto[]
skippedint32
sourcestring
statusModelImportStatusOne of ChangeRequestOpened, NothingNew, NothingImported
unchangedint32

PreviewModelImport ​

http
POST /api/v1/workspaces/{workspaceId}/models/{modelId}/imports:preview

What importing dbt MetricFlow, LookML or Cube files would do: objects added, already on main, in conflict, and the report. Nothing is written (EditModels).

ParameterInTypeRequiredNotes
workspaceIdpathuuidyes
modelIdpathuuidyes

Request body (multipart/form-data): object

StatusDescriptionBody
200OKModelImportPreviewDto

Response 200: ModelImportPreviewDto

FieldTypeNotes
addedint32
approximatedint32
conflictsint32
entitiesint32
errorsint32
filesint32
formatstring
issuesImportIssueDto[]
joinsint32
metricsint32
objectsImportedObjectDto[]
skippedint32
unchangedint32

GetModelImport ​

http
GET /api/v1/workspaces/{workspaceId}/models/{modelId}/imports/{importId}

One import with its report.

ParameterInTypeRequiredNotes
workspaceIdpathuuidyes
modelIdpathuuidyes
importIdpathuuidyes
StatusDescriptionBody
200OKModelImportDto

Response 200: ModelImportDto

FieldTypeNotes
addedint32
approximatedint32
branchstring?
changeRequestNumberint32?
conflictsint32
entitiesint32
errorsint32
filesint32
formatstring
iduuid
importedAtdate-time
importedBystring
issuesImportIssueDto[]
joinsint32
metricsint32
modelIduuid
objectsImportedObjectDto[]
skippedint32
sourcestring
statusModelImportStatusOne of ChangeRequestOpened, NothingNew, NothingImported
unchangedint32

Anchor Keel is a working product name: one platform, a shared core and licensed modules (Keel Semantic, Keel Migrate). Documentation built from the repository — facts are derived from code, ADRs and the decisions log.