POST/v1/auth/login
Returns access_token. Use it as the bearer token in subsequent requests.
curl -fsSL -X POST 'https://api.lumera.ltd/v1/auth/login' \
-H "Content-Type: application/json" \
-d '{
"username": "YOUR_USERNAME",
"password": "YOUR_PASSWORD"
}'
POST/v1/auth/register
Creates an account and returns its access token.
curl -fsSL -X POST 'https://api.lumera.ltd/v1/auth/register' \
-H "Content-Type: application/json" \
-d '{
"username": "YOUR_USERNAME",
"password": "YOUR_PASSWORD"
}'
GET/v1/session
Returns the account associated with the bearer token.
LUMERA_TOKEN="ACCESS_TOKEN_FROM_LOGIN"
curl -fsSL -X GET 'https://api.lumera.ltd/v1/session' \
-H "Authorization: Bearer $LUMERA_TOKEN"
POST/v1/auth/logout
Revokes this bearer token. Other tokens are unaffected.
LUMERA_TOKEN="ACCESS_TOKEN_FROM_LOGIN"
curl -fsSL -X POST 'https://api.lumera.ltd/v1/auth/logout' \
-H "Authorization: Bearer $LUMERA_TOKEN"
POST/v1/jobs
Send application/json with images containing filename and content_base64 (standard base64 without a data URL prefix). Up to 8 images, 20 MiB decoded each. Replace BASE64_IMAGE_BYTES below with the image bytes encoded as base64. Returns HTTP 202 with the new job ID in id.
num_iters accepts 1–30 reconstruction rounds; refinement_iters accepts 0–8 refinement rounds. Both are integers.
When local Hi3D is selected, optional hi3d_resolution accepts integer 512, 1024 or 1536 (1, 2 or 3 native passes; nominal grids 64³, 128³ or 192³). Omit it to use the administrator default (initially 1024). It controls object meshes, independently of reconstruction rounds, and does not change cloud generation.
LUMERA_TOKEN="ACCESS_TOKEN_FROM_LOGIN"
curl -fsSL -X POST 'https://api.lumera.ltd/v1/jobs' \
-H "Authorization: Bearer $LUMERA_TOKEN" \
-H "Content-Type: application/json" \
--data '{
"images": [
{
"filename": "reference.png",
"content_base64": "BASE64_IMAGE_BYTES"
}
],
"num_iters": 1,
"refinement_iters": 1
}'
GET/v1/projects
Lists reconstruction projects belonging to the current account.
LUMERA_TOKEN="ACCESS_TOKEN_FROM_LOGIN"
curl -fsSL -X GET 'https://api.lumera.ltd/v1/projects' \
-H "Authorization: Bearer $LUMERA_TOKEN"
GET/v1/jobs/{JOB_ID}
Returns the job object. Poll job.status until complete or failed. Available files appear in job.payload[18]; use each file’s relative_path as OUTPUT_PATH for downloads.
LUMERA_TOKEN="ACCESS_TOKEN_FROM_LOGIN"
LUMERA_JOB_ID="JOB_ID_FROM_SUBMISSION"
curl -fsSL -X GET "https://api.lumera.ltd/v1/jobs/$LUMERA_JOB_ID" \
-H "Authorization: Bearer $LUMERA_TOKEN"
GET/v1/jobs/{JOB_ID}/artifacts.zip?kind=all
Downloads available GLB and Blender scene files as a ZIP archive. Set kind to all, glb or blend.
LUMERA_TOKEN="ACCESS_TOKEN_FROM_LOGIN"
LUMERA_JOB_ID="JOB_ID_FROM_SUBMISSION"
curl -fsSL -X GET "https://api.lumera.ltd/v1/jobs/$LUMERA_JOB_ID/artifacts.zip?kind=all" \
-H "Authorization: Bearer $LUMERA_TOKEN" \
-o "lumera-results.zip"
GET/v1/job-files/{JOB_ID}/{OUTPUT_PATH}
Use the relative path returned by the job response and a token for the account that owns the job.
LUMERA_TOKEN="ACCESS_TOKEN_FROM_LOGIN"
LUMERA_JOB_ID="JOB_ID_FROM_SUBMISSION"
LUMERA_OUTPUT_PATH="RELATIVE_PATH_FROM_JOB"
curl -fsSL -X GET "https://api.lumera.ltd/v1/job-files/$LUMERA_JOB_ID/$LUMERA_OUTPUT_PATH" \
-H "Authorization: Bearer $LUMERA_TOKEN" \
-o "output.glb"
GET/v1/jobs/{JOB_ID}/export/{OUTPUT_PATH}?format=obj
Exports an owned GLB or Blender scene as OBJ or STL. Set format to obj or stl; OUTPUT_PATH comes from the job response.
LUMERA_TOKEN="ACCESS_TOKEN_FROM_LOGIN"
LUMERA_JOB_ID="JOB_ID_FROM_SUBMISSION"
LUMERA_OUTPUT_PATH="RELATIVE_PATH_FROM_JOB"
curl -fsSL -X GET "https://api.lumera.ltd/v1/jobs/$LUMERA_JOB_ID/export/$LUMERA_OUTPUT_PATH?format=obj" \
-H "Authorization: Bearer $LUMERA_TOKEN" \
-o "scene.obj"
GET/v1/platform
Returns enabled services, payment methods and package identifiers. No bearer token required.
curl -fsSL -X GET 'https://api.lumera.ltd/v1/platform'
GET/v1/account/history?limit=80
Returns credit transactions for this account. limit accepts 1 to 200.
LUMERA_TOKEN="ACCESS_TOKEN_FROM_LOGIN"
curl -fsSL -X GET 'https://api.lumera.ltd/v1/account/history?limit=80' \
-H "Authorization: Bearer $LUMERA_TOKEN"
GET/v1/account/summary
Returns available credits, reserved credits, payment packages, check-in status and recent history.
LUMERA_TOKEN="ACCESS_TOKEN_FROM_LOGIN"
curl -fsSL -X GET 'https://api.lumera.ltd/v1/account/summary' \
-H "Authorization: Bearer $LUMERA_TOKEN"
POST/v1/account/checkin
Claims the daily reward once for the current account.
LUMERA_TOKEN="ACCESS_TOKEN_FROM_LOGIN"
curl -fsSL -X POST 'https://api.lumera.ltd/v1/account/checkin' \
-H "Authorization: Bearer $LUMERA_TOKEN"
POST/v1/payments/orders
Use a package_id and an available method from GET /v1/platform. Returns the order ID in id (ORDER_ID below), with checkout or QR information; creating an order does not confirm payment.
LUMERA_TOKEN="ACCESS_TOKEN_FROM_LOGIN"
curl -fsSL -X POST 'https://api.lumera.ltd/v1/payments/orders' \
-H "Authorization: Bearer $LUMERA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"method": "AVAILABLE_METHOD_FROM_PLATFORM",
"package_id": "PACKAGE_ID_FROM_PLATFORM"
}'
GET/v1/payments/orders/{ORDER_ID}
Returns the current state of an order owned by this account.
LUMERA_TOKEN="ACCESS_TOKEN_FROM_LOGIN"
LUMERA_ORDER_ID="ORDER_ID_FROM_PAYMENT"
curl -fsSL -X GET "https://api.lumera.ltd/v1/payments/orders/$LUMERA_ORDER_ID" \
-H "Authorization: Bearer $LUMERA_TOKEN"
DELETE/v1/payments/orders/{ORDER_ID}
Closes a pending order. A successful payment must use the refund endpoint.
LUMERA_TOKEN="ACCESS_TOKEN_FROM_LOGIN"
LUMERA_ORDER_ID="ORDER_ID_FROM_PAYMENT"
curl -fsSL -X DELETE "https://api.lumera.ltd/v1/payments/orders/$LUMERA_ORDER_ID" \
-H "Authorization: Bearer $LUMERA_TOKEN"
GET/v1/payments/orders?limit=20&offset=0
Lists paid purchases and their refund state. Use limit and offset for pagination.
LUMERA_TOKEN="ACCESS_TOKEN_FROM_LOGIN"
curl -fsSL -X GET 'https://api.lumera.ltd/v1/payments/orders?limit=20&offset=0' \
-H "Authorization: Bearer $LUMERA_TOKEN"
POST/v1/payments/orders/{ORDER_ID}/refund
Requests a refund for a paid order. Repeating the request returns the same refund.
LUMERA_TOKEN="ACCESS_TOKEN_FROM_LOGIN"
LUMERA_ORDER_ID="ORDER_ID_FROM_PAYMENT"
curl -fsSL -X POST "https://api.lumera.ltd/v1/payments/orders/$LUMERA_ORDER_ID/refund" \
-H "Authorization: Bearer $LUMERA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"reason": "No longer needed"
}'
GET/v1/payments/orders/{ORDER_ID}/refund
Returns the current refund status. A refund is complete only when its status is succeeded.
LUMERA_TOKEN="ACCESS_TOKEN_FROM_LOGIN"
LUMERA_ORDER_ID="ORDER_ID_FROM_PAYMENT"
curl -fsSL -X GET "https://api.lumera.ltd/v1/payments/orders/$LUMERA_ORDER_ID/refund" \
-H "Authorization: Bearer $LUMERA_TOKEN"