lakeFS Staging API
The staging API from lakeFS — 1 operation(s) for staging.
The staging API from lakeFS — 1 operation(s) for staging.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/lakefs-staging-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
description: lakeFS HTTP API
title: lakeFS Staging API
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
version: 1.0.0
servers:
- url: /api/v1
description: lakeFS server endpoint
security:
- jwt_token: []
- basic_auth: []
- cookie_auth: []
- oidc_auth: []
- saml_auth: []
tags:
- name: Staging
paths:
/repositories/{repository}/branches/{branch}/staging/backing:
parameters:
- in: path
name: repository
required: true
schema:
type: string
- in: path
name: branch
required: true
schema:
type: string
- in: query
name: path
description: relative to the branch
required: true
schema:
type: string
get:
tags:
- Staging
operationId: getPhysicalAddress
summary: generate an address to which the client can upload an object
parameters:
- in: query
name: presign
required: false
schema:
type: boolean
responses:
200:
description: physical address for staging area
content:
application/json:
schema:
$ref: '#/components/schemas/StagingLocation'
400:
$ref: '#/components/responses/BadRequest'
401:
$ref: '#/components/responses/Unauthorized'
404:
$ref: '#/components/responses/NotFound'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
put:
tags:
- Staging
operationId: linkPhysicalAddress
summary: associate staging on this physical address with a path
description: 'Link the physical address with the path in lakeFS, creating an uncommitted change.
The given address can be one generated by getPhysicalAddress, or an address outside the repository''s storage namespace.'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StagingMetadata'
parameters:
- $ref: '#/components/parameters/IfNoneMatch'
- $ref: '#/components/parameters/IfMatch'
responses:
200:
description: object metadata
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStats'
400:
$ref: '#/components/responses/ValidationError'
401:
$ref: '#/components/responses/Unauthorized'
403:
$ref: '#/components/responses/Forbidden'
404:
$ref: '#/components/responses/ServerError'
409:
description: conflict with a commit, try here
content:
application/json:
schema:
$ref: '#/components/schemas/StagingLocation'
412:
$ref: '#/components/responses/PreconditionFailed'
429:
description: too many requests
501:
$ref: '#/components/responses/NotImplemented'
default:
$ref: '#/components/responses/ServerError'
components:
parameters:
IfMatch:
in: header
name: If-Match
description: Set to the object's ETag to atomically allow operations only if the object's current ETag matches the provided value.
example: 2e9ec317e197e02e4264d128c2e7e681
required: false
schema:
type: string
IfNoneMatch:
in: header
name: If-None-Match
description: Set to "*" to atomically allow the upload only if the key has no object yet. Other values are not supported.
example: '*'
required: false
schema:
type: string
responses:
PreconditionFailed:
description: Precondition Failed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotImplemented:
description: Not Implemented
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
BadRequest:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
ServerError:
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Forbidden:
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Resource Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
ValidationError:
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
Error:
type: object
required:
- message
properties:
message:
description: short message explaining the error
type: string
ObjectStats:
type: object
required:
- checksum
- physical_address
- path
- path_type
- mtime
properties:
path:
type: string
path_type:
type: string
enum:
- common_prefix
- object
physical_address:
type: string
description: 'The location of the object on the underlying object store.
Formatted as a native URI with the object store type as scheme ("s3://...", "gs://...", etc.)
Or, in the case of presign=true, will be an HTTP URL to be consumed via regular HTTP GET
'
physical_address_expiry:
type: integer
format: int64
description: 'If present and nonzero, physical_address is a pre-signed URL and
will expire at this Unix Epoch time. This will be shorter than
the pre-signed URL lifetime if an authentication token is about
to expire.
This field is *optional*.
'
checksum:
type: string
size_bytes:
type: integer
format: int64
description: 'The number of bytes in the object. lakeFS always populates this
field when returning ObjectStats. This field is optional _for
the client_ to supply, for instance on upload.
'
mtime:
type: integer
format: int64
description: Unix Epoch in seconds
metadata:
$ref: '#/components/schemas/ObjectUserMetadata'
content_type:
type: string
description: Object media type
StagingLocation:
type: object
description: location for placing an object when staging it
properties:
physical_address:
type: string
presigned_url:
type:
- string
- 'null'
description: if presign=true is passed in the request, this field will contain a pre-signed URL to use when uploading
presigned_url_expiry:
type: integer
format: int64
description: 'If present and nonzero, physical_address is a pre-signed URL and
will expire at this Unix Epoch time. This will be shorter than
the pre-signed URL lifetime if an authentication token is about
to expire.
This field is *optional*.
'
StagingMetadata:
type: object
description: information about uploaded object
properties:
staging:
$ref: '#/components/schemas/StagingLocation'
checksum:
type: string
description: unique identifier of object content on backing store (typically ETag)
size_bytes:
type: integer
format: int64
user_metadata:
type: object
additionalProperties:
type: string
content_type:
type: string
description: Object media type
mtime:
type: integer
format: int64
description: Unix Epoch in seconds. May be ignored by server.
force:
type: boolean
default: false
required:
- staging
- checksum
- size_bytes
ObjectUserMetadata:
type: object
additionalProperties:
type: string
securitySchemes:
basic_auth:
type: http
scheme: basic
jwt_token:
type: http
scheme: bearer
bearerFormat: JWT
cookie_auth:
type: apiKey
in: cookie
name: internal_auth_session
oidc_auth:
type: apiKey
in: cookie
name: oidc_auth_session
saml_auth:
type: apiKey
in: cookie
name: saml_auth_session