Autonomys Auto Drive API
The Auto Drive API API from Autonomys — 25 operation(s) for auto drive api.
The Auto Drive API API from Autonomys — 25 operation(s) for auto drive api.
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/autonomys-auto-drive-api-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:
title: Auto Drive API
version: 1.1.0
description: Auto-Drive consists of multiple APIs that are used to interact with the Auto-Drive platform.
security:
- apiKey: []
provider: []
tags:
- name: Auto Drive API
paths:
/accounts/@me:
get:
summary: Accounts - Get current user account information
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
responses:
'200':
description: Successfully retrieved account information
content:
application/json:
schema:
type: object
properties:
account:
$ref: '#/components/schemas/AccountInfo'
required:
- id
- organizationId
- uploadLimit
- downloadLimit
- model
- pendingUploadCredits
- pendingDownloadCredits
'401':
description: Unauthorized
'500':
description: Failed to get user info
operationId: getAccounts@me
x-operation-id-source: derived
/uploads/file:
post:
summary: Uploads - Upload a file
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
requestBody:
content:
application/json:
schema:
type: object
properties:
filename:
type: string
mimeType:
type: string
uploadOptions:
$ref: '#/components/schemas/UploadOptions'
required:
- filename
responses:
'200':
description: File uploaded successfully
content:
application/json:
schema:
type: object
properties:
id:
type: string
'400':
description: Invalid input
'500':
description: Failed to create upload
operationId: postUploadsFile
x-operation-id-source: derived
/uploads/folder:
post:
summary: Uploads - Create a new folder upload
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
requestBody:
content:
application/json:
schema:
type: object
properties:
fileTree:
$ref: '#/components/schemas/FolderTree'
uploadOptions:
$ref: '#/components/schemas/UploadOptions'
required:
- fileTree
responses:
'200':
description: Folder created successfully
content:
application/json:
schema:
type: object
properties:
id:
type: string
'400':
description: Invalid input
'500':
description: Failed to create upload
operationId: postUploadsFolder
x-operation-id-source: derived
/uploads/folder/{folderUploadId}/file:
post:
summary: Uploads - Create a file in a folder provided by the folder upload id
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
parameters:
- name: folderUploadId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: The name of the file
mimeType:
type: string
description: The mime type of the file
relativeId:
type: string
description: The id of the uploaded file within the file tree
uploadOptions:
$ref: '#/components/schemas/UploadOptions'
required:
- name
- relativeId
responses:
'200':
description: File created in folder successfully
'400':
description: Invalid input
'500':
description: Failed to create file in folder
operationId: postUploadsFolderByFolderUploadIdFile
x-operation-id-source: derived
/uploads/file/{uploadId}/chunk:
post:
summary: Uploads - Upload a chunk of a file
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
parameters:
- name: uploadId
in: path
required: true
schema:
type: string
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
index:
type: integer
required:
- file
- index
responses:
'200':
description: Chunk uploaded successfully
'400':
description: Invalid input
'500':
description: Failed to upload chunk
operationId: postUploadsFileByUploadIdChunk
x-operation-id-source: derived
/uploads/{uploadId}/complete:
post:
summary: Uploads - Complete the upload returning the file or folder CID
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
parameters:
- name: uploadId
in: path
required: true
schema:
type: string
responses:
'200':
description: Upload completed successfully
content:
application/json:
schema:
type: object
properties:
cid:
type: string
'500':
description: Failed to complete upload
operationId: postUploadsByUploadIdComplete
x-operation-id-source: derived
/objects/roots:
get:
summary: Objects - Get root objects
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
parameters:
- name: scope
in: query
required: false
schema:
type: string
enum:
- global
- user
- name: limit
in: query
required: false
schema:
type: integer
- name: offset
in: query
required: false
schema:
type: integer
responses:
'200':
description: Successfully retrieved root objects
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ObjectSummary'
'401':
description: Unauthorized
'500':
description: Failed to retrieve root objects
operationId: getObjectsRoots
x-operation-id-source: derived
/objects/roots/shared:
get:
summary: Objects - Get shared root objects
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
parameters:
- name: limit
in: query
required: false
schema:
type: integer
- name: offset
in: query
required: false
schema:
type: integer
responses:
'200':
description: Successfully retrieved shared root objects
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ObjectSummary'
'401':
description: Unauthorized
'500':
description: Failed to retrieve shared root objects
operationId: getObjectsRootsShared
x-operation-id-source: derived
/objects/roots/deleted:
get:
summary: Objects - Get deleted root objects
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
parameters:
- name: limit
in: query
required: false
schema:
type: integer
- name: offset
in: query
required: false
schema:
type: integer
responses:
'200':
description: Successfully retrieved deleted root objects
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ObjectSummary'
'401':
description: Unauthorized
'500':
description: Failed to retrieve deleted root objects
operationId: getObjectsRootsDeleted
x-operation-id-source: derived
/objects/search:
get:
summary: Objects - Search for objects by CID or name
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
parameters:
- name: cid
description: The CID or name of the object to search for
in: query
required: true
schema:
type: string
- name: scope
description: The scope of the search
in: query
required: false
schema:
type: string
enum:
- user
- global
- name: limit
description: The maximum number of results to return
in: query
required: false
schema:
type: integer
responses:
'200':
description: Successfully retrieved search results
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ObjectSearchResult'
'400':
description: Missing or invalid cid value
'500':
description: Failed to search metadata
operationId: getObjectsSearch
x-operation-id-source: derived
/objects/{cid}/summary:
get:
summary: Objects - Get summary of an object by CID
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
parameters:
- name: cid
in: path
required: true
schema:
type: string
responses:
'200':
description: Successfully retrieved object summary
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectSummary'
'404':
description: Metadata not found
'500':
description: Failed to retrieve metadata
operationId: getObjectsByCidSummary
x-operation-id-source: derived
/objects/{cid}/metadata:
get:
summary: Objects - Get metadata of an object by CID
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
parameters:
- name: cid
in: path
required: true
schema:
type: string
responses:
'200':
description: Successfully retrieved object metadata
content:
application/json:
schema:
$ref: '#/components/schemas/OffchainMetadata'
'404':
description: Metadata not found
'500':
description: Failed to retrieve metadata
operationId: getObjectsByCidMetadata
x-operation-id-source: derived
/objects/{cid}/status:
get:
summary: Objects - Get upload status of an object by CID
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
parameters:
- name: cid
in: path
required: true
schema:
type: string
responses:
'200':
description: Successfully retrieved upload status
content:
application/json:
schema:
$ref: '#/components/schemas/UploadStatus'
'500':
description: Failed to retrieve upload status
operationId: getObjectsByCidStatus
x-operation-id-source: derived
/objects/{cid}/share:
post:
summary: Objects - Share an object by CID
tags:
- Auto Drive API
parameters:
- name: cid
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
publicId:
type: string
required:
- publicId
responses:
'200':
description: Successfully shared object
'400':
description: Missing `publicId` in request body
'401':
description: Unauthorized
'500':
description: Failed to share object
operationId: postObjectsByCidShare
x-operation-id-source: derived
/objects/{cid}/download:
get:
deprecated: true
summary: Objects - Download an object by CID
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
parameters:
- name: cid
in: path
required: true
schema:
type: string
responses:
'200':
description: Successfully retrieved object for download
content:
application/octet-stream:
schema:
type: string
format: binary
'404':
description: Metadata not found
'500':
description: Failed to retrieve data
operationId: getObjectsByCidDownload
x-operation-id-source: derived
/objects/{cid}/delete:
post:
summary: Objects - Delete an object by CID
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
parameters:
- name: cid
in: path
required: true
schema:
type: string
responses:
'200':
description: Successfully deleted object
'401':
description: Unauthorized
'500':
description: Failed to delete object
operationId: postObjectsByCidDelete
x-operation-id-source: derived
/objects/{cid}/restore:
post:
summary: Objects - Restore a deleted object by CID
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
parameters:
- name: cid
in: path
required: true
schema:
type: string
responses:
'200':
description: Successfully restored object
'401':
description: Unauthorized
'500':
description: Failed to restore object
operationId: postObjectsByCidRestore
x-operation-id-source: derived
/objects/{cid}/publish:
post:
summary: Objects - Publish an object by CID and return the object id
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
parameters:
- name: cid
in: path
required: true
schema:
type: string
responses:
'200':
description: Successfully published object
content:
application/json:
schema:
type: object
properties:
result:
type: string
'401':
description: Unauthorized
'500':
description: Failed to publish object
operationId: postObjectsByCidPublish
x-operation-id-source: derived
/objects/{cid}/unpublish:
post:
summary: Objects - Unpublish an object by CID
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
parameters:
- name: cid
in: path
required: true
schema:
type: string
responses:
'204':
description: Successfully unpublished object
'401':
description: Unauthorized
'500':
description: Failed to unpublish object
operationId: postObjectsByCidUnpublish
x-operation-id-source: derived
/objects/{id}/public:
get:
summary: Objects - Download a published object by id
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Successfully retrieved object for download
content:
application/octet-stream:
schema:
type: string
format: binary
'404':
description: Published object not found
'500':
description: Failed to retrieve data
operationId: getObjectsByIdPublic
x-operation-id-source: derived
/intents/price:
get:
summary: Intents - Get current storage price
description: Returns the current price per byte (in shannons) and price per GB (in AI3). This endpoint does not require authentication.
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
security: []
responses:
'200':
description: Current price information
content:
application/json:
schema:
type: object
properties:
price:
type: number
description: Price per byte in shannons
pricePerGB:
type: number
description: Price per GB in AI3 tokens
operationId: getIntentsPrice
x-operation-id-source: derived
/intents/contract:
get:
summary: Intents - Get smart contract info
description: Returns the on-chain contract address, EVM chain ID, and the minimal ABI needed to call `payIntent`. This endpoint does not require authentication. Use this to build the on-chain transaction for step 4 of the integration flow.
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
security: []
responses:
'200':
description: Contract information
content:
application/json:
schema:
$ref: '#/components/schemas/ContractInfo'
operationId: getIntentsContract
x-operation-id-source: derived
/intents:
post:
summary: Intents - Create a purchase intent
description: 'Creates a PENDING intent with the current price locked in. The intent has a time-limited price-lock window (default 10 minutes) during which the price is guaranteed.
**Authentication:** Currently requires a Google-verified account. You can authenticate via:
- Google OAuth session
- API key from a Google-registered account (set `X-Auth-Provider: apikey`)
**Third-party integration pattern:**
1. Create an Auto Drive account via Google OAuth at https://ai3.storage
2. Generate an API key from the dashboard
3. Call `GET /intents/contract` to get the contract address, chain ID, and ABI
4. Call `GET /intents/price` to get the current price per byte and per GB
5. Call `POST /intents` with the API key to get an `intentId` with the price locked in
6. Have the end user call `payIntent(intentId)` on the contract, sending AI3 as native value
7. Call `POST /intents/:id/watch` with the transaction hash
8. Poll `GET /intents/:id` until status is `completed`
9. Upload content via the Auto Drive SDK using the same API key'
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
responses:
'200':
description: Intent created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Intent'
'401':
description: Unauthorized — missing or invalid credentials
'403':
description: Google-verified account required — the authenticated account was not registered via Google OAuth
'404':
description: Feature not available — the buyCredits feature flag is not active for this user
operationId: postIntents
x-operation-id-source: derived
/intents/{id}:
get:
summary: Intents - Get intent status
description: Returns the current status of a purchase intent. Use this to poll for completion after calling `/intents/:id/watch`.
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
parameters:
- name: id
in: path
required: true
schema:
type: string
description: The intent ID returned by POST /intents
responses:
'200':
description: Intent details
content:
application/json:
schema:
$ref: '#/components/schemas/Intent'
'401':
description: Unauthorized
'403':
description: Forbidden — the intent belongs to a different user
'404':
description: Intent not found
'410':
description: Intent has expired (price-lock window elapsed)
operationId: getIntentsById
x-operation-id-source: derived
/intents/{id}/watch:
post:
summary: Intents - Submit transaction hash for watching
description: Attaches a transaction hash to a pending intent and queues on-chain confirmation watching. Call this after the user has submitted the `payIntent` transaction on-chain.
tags:
- Auto Drive API
servers:
- url: https://mainnet.auto-drive.autonomys.xyz/api
description: Mainnet Auto Drive API
parameters:
- name: id
in: path
required: true
schema:
type: string
description: The intent ID
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
txHash:
type: string
description: The transaction hash from the on-chain payIntent call
required:
- txHash
responses:
'204':
description: Transaction hash accepted — watching started
'400':
description: Missing or invalid txHash
'401':
description: Unauthorized
'403':
description: Forbidden — the intent belongs to a different user
'410':
description: Intent has expired
operationId: postIntentsByIdWatch
x-operation-id-source: derived
components:
schemas:
OffchainFileMetadata:
type: object
properties:
type:
type: string
enum:
- file
dataCid:
type: string
name:
type:
- string
- 'null'
mimeType:
type:
- string
- 'null'
totalSize:
type: string
totalChunks:
type: integer
chunks:
type: array
items:
$ref: '#/components/schemas/ChunkInfo'
uploadOptions:
$ref: '#/components/schemas/UploadOptions'
ObjectSummary:
type: object
properties:
headCid:
type: string
name:
type:
- string
- 'null'
size:
type: string
owners:
type: array
items:
type: object
properties:
oauthProvider:
type: string
oauthUserId:
type: string
role:
type: string
enum:
- admin
- viewer
uploadStatus:
$ref: '#/components/schemas/UploadStatus'
createdAt:
type: string
format: iso8601
type:
type: string
enum:
- file
- folder
mimeType:
type:
- string
- 'null'
children:
type:
- array
- 'null'
items:
type: object
required:
- headCid
- size
- owners
- uploadStatus
- createdAt
- type
ContractInfo:
type: object
required:
- chainId
- contractAddress
- payIntentAbi
properties:
chainId:
type: integer
description: EVM chain ID where the contract is deployed (e.g. 870 for Auto-EVM Mainnet)
contractAddress:
type: string
description: Address of the AutoDriveCreditsReceiver contract (checksummed)
payIntentAbi:
type: array
description: Minimal ABI for the payIntent function — pass directly to viem/ethers/web3.js
items:
type: object
Intent:
type: object
properties:
id:
type: string
description: Unique intent identifier (hex string)
userPublicId:
type: string
description: Public ID of the intent owner
status:
type: string
enum:
- pending
- confirmed
- completed
- failed
- expired
- over_cap
description: Current intent status
txHash:
type: string
description: On-chain transaction hash (set after /watch)
paymentAmount:
type: string
description: Payment amount in shannons (bigint as string)
shannonsPerByte:
type: string
description: Locked price per byte in shannons (bigint as string)
expiresAt:
type: string
format: date-time
description: Price-lock expiry timestamp
FolderTree:
oneOf:
- $ref: '#/components/schemas/FolderTreeFolder'
- $ref: '#/components/schemas/FolderTreeFile'
FolderTreeFile:
type: object
properties:
name:
type: string
type:
type: string
enum:
- file
id:
type: string
ChunkInfo:
type: object
properties:
size:
type: string
cid:
type: string
OffchainMetadata:
type: object
oneOf:
- $ref: '#/components/schemas/OffchainFileMetadata'
- $ref: '#/components/schemas/OffchainFolderMetadata'
OffchainFolderMetadata:
type: object
properties:
type:
type: string
enum:
- folder
dataCid:
type: string
name:
type:
- string
- 'null'
totalSize:
type: string
totalFiles:
type: integer
children:
type: array
items:
$ref: '#/components/schemas/ChildrenMetadata'
uploadOptions:
$ref: '#/components/schemas/UploadOptions'
UploadOptions:
type: object
properties:
compression:
$ref: '#/components/schemas/CompressionOptions'
encryption:
$ref: '#/components/schemas/EncryptionOptions'
CompressionOptions:
type: object
properties:
algorithm:
type: string
enum:
- ZLIB
level:
type: integer
default: 8
UploadStatus:
type: object
properties:
uploadedNodes:
type:
- integer
- 'null'
totalNodes:
type:
- integer
- 'null'
archivedNodes:
type:
- integer
- 'null'
minimumBlockDepth:
type:
- integer
- 'null'
maximumBlockDepth:
type:
- integer
- 'null'
FolderTreeFolder:
type: object
properties:
name:
type: string
type:
type: string
enum:
- folder
- file
children:
$ref: '#/components/schemas/FolderTree'
EncryptionOptions:
type: object
properties:
algorithm:
type: string
enum:
- AES_256_GCM
chunkSize:
type: integer
default: 1024
AccountInfo:
type: object
properties:
id:
type: string
organizationId:
type: string
uploadLimit:
type: number
downloadLimit:
type: number
module:
type: string
enum:
- monthly
- one_off
pendingUploadCredits:
type: number
pendingDownloadCredits:
type: number
required:
- id
- organizationId
- uploadLimit
- downloadLimit
- model
- pendingUploadCredits
- pendingDownloadCredits
ObjectSearchResult:
type: object
properties:
cid:
type: string
name:
type: string
required:
- cid
- name
ChildrenMetadata:
type: object
properties:
type:
type: string
enum:
- file
- folder
cid:
type: string
name:
type:
- string
- 'null'
totalSize:
type: string
required:
- type
- cid
- totalSize
securitySchemes:
apiKey:
type: apiKey
in: header
name: Authorization
description: 'Bearer token for authentication. Example: Bearer <token>. Could be either an API key or a JWT token.'
provider:
type: apiKey
in: header
name: X-Auth-Provider
description: 'Used for differentiating between different auth providers. For most use cases: X-Auth-Provider: apikey'