Skip to main content

SDK Overview

Aholo provides official SDKs in three languages. They wrap authentication, multipart upload, task polling, and other details so you can integrate without hand-writing HTTP.

Capability matrix

CapabilityTypeScriptJavaPython
Asset uploadYesYesYes
WorldYesYesYes
Lux3DYesYesYes
RenderCloud

RenderCloud has no SDK wrapper yet. See the RenderCloud sections in API Reference.

Versions: Lux3D SDK is at v1.5.0 (@manycore/aholo-sdk-lux3d and Java / Python counterparts), adding GLB part splitting and paginated task history; default v3.0-standard, also G1. World is v1.3.0; Asset and core remain v1.2.0. MCP is @manycore/aholo-sdk-mcp@1.5.0.

Quick install

# Install only the packages you need
npm install @manycore/aholo-sdk-asset
npm install @manycore/aholo-sdk-world
npm install @manycore/aholo-sdk-lux3d

Packages

TypeScript / Node.js

Requirements: Node.js ≥ 18

Packagenpm
@manycore/aholo-sdk-assetnpm
@manycore/aholo-sdk-worldnpm
@manycore/aholo-sdk-lux3dnpm
@manycore/aholo-sdk-corenpm

Java

Requirements: Java 8+, Maven ≥ 3.6 (JDK 17 or 21 recommended when building from source)

ArtifactMaven Central
com.manycoreapis:aholo-sdk-assetView
com.manycoreapis:aholo-sdk-worldView
com.manycoreapis:aholo-sdk-lux3dView
com.manycoreapis:aholo-sdk-coreView

Python

Requirements: Python ≥ 3.9

PackagePyPI
manycore-aholo-sdk-assetPyPI
manycore-aholo-sdk-worldPyPI
manycore-aholo-sdk-lux3dPyPI
manycore-aholo-sdk-corePyPI

Authentication

All SDKs read your API key as follows:

Recommended: environment variable (SDK reads AHOLO_API_KEY automatically)

export AHOLO_API_KEY=your_api_key_here

You can also pass the key explicitly in code — see each language guide below.

Security

Never hardcode API keys in source code, packages, or public repositories.

Apply for an API key: Global · China

Region

ValueDescriptionAPI endpoint
cnChinahttps://api.aholo3d.cn
comGlobalhttps://api.aholo3d.com

Async tasks & status

World and Lux3D are async: after creation, poll until a terminal state. Each SDK provides waitFor / tasks.waitFor helpers.

World task status

PhaseStatusDescription
In progressPENDINGQueued
In progressPREPROCESSINGPreprocessing
In progressRUNNINGRunning
SuccessSUCCEEDEDDone — read assets.splats.urls (incl. lodMetaPath), assets.imagery.panoUrl (generation), assets.semanticsMetadata.upAxis
FailedFAILEDFailed
FailedCANCELEDCanceled
FailedTIMEOUTTimed out
FailedREJECTEDRejected

waitFor(worldId) returns details on SUCCEEDED; failure terminal states throw PollingFailedError (Java: AholoException).

Lux3D task status

ValueDescription
0Initializing
1Running
3Success (outputs[n].content is a download URL, valid ~2 hours)
4Failed

v2 / v3 output indices: [0] zip, [1] glb, [2] usdz, [3] obj zip, [4] fbx zip; optional slots not listed in outputFormat may be NOT_REQUESTED. G1 returns zip / glb / ply as requested.

tasks.waitFor(taskId) returns when status === 3; throws on status === 4.

Language guides


GitHub README is for installation only. If it conflicts with this page, this page wins. Source and runnable examples: GitHub.