Only this pageAll pages
Powered by GitBook
1 of 14

Activeloop API

Loading...

Setup

Loading...

Loading...

User Guide

Loading...

Loading...

Loading...

Loading...

Loading...

API Reference

Loading...

Loading...

Loading...

Activeloop

Agentic Reasoning on Your Multimodal Data

Activeloop-L0 is a compound AI system that ingests and answers questions from your unstructured, multimodal data. It delivers accurate, traceable answers with clear source citations, ensuring trust and transparency through visual reasoning.

Quickstart or Request a Demo

Key Capabilities: Go Beyond Basic RAG

All thanks to Deep Lake, Activeloop provides unique advantages over traditional RAG systems, enabling deeper understanding and control of your data.

💡 Native Multimodal Understanding: Leverage advanced Visual Language Models (VLMs) to intrinsically understand PDFs, PowerPoints, images, audio, and more without brittle OCR or complex pre-processing.

☁️ Your Data, Your Cloud, Your Control: Deploy entirely within your secure cloud infrastructure. Connect private data sources and bring your own models (BYOM), ensuring sensitive data never leaves your perimeter.

✅ Trustworthy & Explainable Results: Deliver highly accurate, grounded answers backed by clear citations directly to the source data, ensuring reliability, auditability, and user trust.

Why Activeloop? Achieve Tangible AI ROI

🚀 Accelerate & Automate Workflows: Seamlessly embed deep knowledge retrieval and reasoning into core business processes like compliance checks, research synthesis, and customer support.

🧑‍💻 Free Your AI Team to Innovate: Eliminate the infrastructure bottleneck. We automate parsing, chunking, embedding, and indexing, letting your team focus on high-value AI applications, not data plumbing.

✨ Unlock Actionable Insights: Discover hidden connections and analyze trends across disparate data types. Extract meaningful insights previously buried in your complex multimodal data assets.

Use Cases Across Industries

  • Financial Services: Analyze quarterly reports alongside market news videos and earnings call audio.

  • Pharma & Life Sciences: Accelerate R&D by connecting research papers, clinical trial data, and lab notes.

  • Technology: Gain holistic customer understanding by correlating support tickets, call audio, and user session recordings.

  • Legal & Compliance: Perform deep analysis across case law, contracts, and internal communications with full audit trails.

Overcoming Traditional RAG Limitations

Basic RAG struggles where enterprise needs are greatest:

  • Agentic Scaffold: predefined loops and rigid agent scaffolds.

  • Multimodal Data: Difficulty processing and relating information beyond plain text.

  • Infrastructure Burden: High cost and effort to build/maintain complex pipelines.

  • Integration Challenge: Difficulty embedding insights into meaningful workflows.

Activeloop Knowledge Agents vs. Traditional RAG


Get Started with Activeloop

Ready to unlock the true potential of your enterprise data?

  1. : Dive deeper into concepts, architecture, and API references.

  2. : Set up a basic instance and index your first multimodal data.

  3. : Discuss your specific use case and see a tailored demonstration.

  • Insurance: Streamline claims processing and enhance fraud detection by correlating claim forms, incident reports, damage photos/videos, repair estimates, and policyholder data.

  • Control & Security: Concerns over data leaving secure perimeters with SaaS RAG.

    High complexity, manual mgmt.

    ✅ Automated, streamlined

    Deployment/Security

    Often SaaS, limited control

    ✅ Your Cloud, Secure Private, BYOM

    Accuracy/Explainability

    Variable, opaque sourcing

    ✅ High accuracy with clear citations

    Feature

    Traditional RAG

    Activeloop Knowledge Agents

    Data Support

    Mostly text-only

    ✅ Native Multimodal

    Reasoning

    Limited keyword/semantic search

    ✅ Advanced relationship & multi-step

    Integration

    Basic retrieval

    ✅ Deep workflow integration

    Data Pre-processing

    Manual/Complex (OCR often)

    ✅ Automated / Native understanding

    Explore the Documentation
    Try the Quickstart
    Talk to Us
    activeloop-l0 benchmarks
    Activeloop-L0 achieves overall 84% state-of-the-art accuracy on 1,142 multimodal questions (292 PDFs, 5.5K pages). It outperforms text only RAG by +20%, visual RAG by +10%, and Alibaba’s ViDoRAG by +5% on their own ViDoSeek benchmark

    Infrastructure

    Quickstart

    Upload a document and run a query. All within minutes.

    Get Token

    Sign up at . Navigate to ⚙️ → API tokens, and create a token. Set the token as ACTIVELOOP_TOKEN environment variable.

    Upload Documents

    We will fetch 4 reference guides from NASA each more than 90 pages and ask a highly complex question.

    You can learn about the state by .

    Query Data

    Once the data is indexed, you can run a query against it as if you are calling your LLM .

    import os, io, requests
    
    pdf_urls = ["https://www.nasa.gov/wp-content/uploads/2022/03/sls-reference-guide-2022-v2-508-0.pdf",
                "https://www.nasa.gov/wp-content/uploads/2023/02/orion-reference-guide-111022.pdf", 
                "https://www.lpi.usra.edu/lunar/artemis/Artemis-I-Reference-Guide_NP-2022-03-3045-HQ.pdf",
                "https://www.ulalaunch.com/docs/default-source/rockets/2023_vulcan_user_guide.pdf"]
    
    files = [('file', (os.path.basename(url), io.BytesIO(requests.get(url).content))) for url in pdf_urls]
    
    response = requests.post(
          'https://api.activeloop.ai/files', 
          headers={"Authorization": f"Bearer {os.getenv('ACTIVELOOP_TOKEN')}"},
          files=files
    )
    # Onced uploaded, it would take few minutes to index
    from openai import OpenAI
    
    client = OpenAI(
        base_url="https://api.activeloop.ai/",
        api_key=os.getenv('ACTIVELOOP_TOKEN')
    )
    
    response = client.chat.completions.create(
        model="activeloop-l0",
        messages=[
            {
                "role": "user",
                "content": "Using the side-view diagrams that annotate overall height, rank SLS Block 1, Orion (CM + SM), " +
                           "Falcon 9 (v1.2 FT), and Vulcan Centaur by height; which vehicle is the second tallest, " +
                           "and what is its annotated height (m, one decimal place)?"
            }
        ],
        stream=True
    )
    
    chunks = [chunk.choices[0] for chunk in response]
    thinking = "".join([c.delta.reasoning_content for c in chunks if c.delta.reasoning_content is not None]) 
    answer = "".join([c.delta.content for c in chunks if c.delta.content is not None]) 
    citations = chunks[-1].metadata['relevant_docs']
    
    chat.activeloop.ai
    listing files

    Workspaces

    Files

    Chat Completions

    Modalities

    You can upload the following document types

    Supported Document Extensions

    Type
    Description
    Status

    .pdf

    PDF Documents

    ✅

    .txt, .md, .json

    Text, Markdown and Dictionaries

    ✅

    .docx, .pptx

    Microsoft Office

    ✅

    .csv, .xlsx

    Table formats

    soon

    .jpeg, .png

    Image formats

    ✅

    .wav, .mp3

    Audio formats

    ✅

    .mp4, .mkv, .avi

    Video formats

    soon

    Ingesting with Metadata

    This guide covers how to upload multiple documents to Activeloop and interact with your data through the Chat Completions API.

    Uploading Data

    This section handles batch uploading PDF files from philosophy and mathematics categories providing extra metadata.

    import os
    import json
    import requests
    
    url = 'https://api.activeloop.ai/files'
    headers = {'Authorization': f'Bearer {os.getenv("ACTIVELOOP_TOKEN")}'}
    
    for category in ['philosophy', 'mathematics']:
        for author in os.listdir(category):
            files = [('file', (pdf, open(f'{category}/{author}/{pdf}', 'rb'))) for pdf in os.listdir(f'{category}/{author}')]
            
            # specify any extra metadata 
            metadata = { 
                'category': category,
                'author': author
            }
            data = {'metadata': json.dumps(metadata)}
            
            # upload files 
            response = requests.post(url, headers=headers, files=files, data=data)
            print(response.status_code)

    You can learn more on supported document type by going over modalities.

    Models & Pricing

    Managed cloud cost is based on consumption for compute and tiered for storage.

    Models

    Choose the following models for querying the data.

    Model name
    Latency
    Description

    Hybrid visual search. Just returns top_k elements.

    activeloop-l0

    ~40s

    Reasoning iterations with evidence collection and verification including inline citations.

    Pricing

    1M input tokens is roughly 1,000 pages of a document. Output tokens include thinking and search results.

    Input
    Output
    Storage

    activeloop-l0

    $1.00 / 1M tokens

    $15.00 / 1M token

    $99 / 100GB month

    Scenarios

    1. Financial: 2,100 pages of documents including quarterly reports, market news video transcripts, and earnings call transcripts.

      1. Approximate total cost is $122/month | Input 2M tokens → $2, Output 8M tokens → $120, Free Storage

    2. Healthcare: 8,000 pages of research documents including research papers, clinical trial documents, lab notes, and supplementary data.

      1. Approximate total cost is $707/month | Input 8M tokens → $8, Output 40M tokens → $600, Storage Tier 100GB -> $99

    3. Insurance: 120,000 pages of insurance documents including claim forms, incident reports, damage photos/videos, repair estimates, policyholder data, and investigation reports.

      1. Approximate total cost is $2,568/month | Input 120M tokens → $120, Output 150M tokens → $2,250, Storage Tier 200GB → $198

    Need Enterprise deployment?

    Activeloop is trusted by F500 including likes of Bayer, Flagship Pioneering, and Matterport.

    • Deploy on your cloud, ensuring data never leaves your infrastructure.

    • Integrate custom storage and LLMs.

    • Enjoy SOC2 compliance, fine-grained access control, and SSO.

    Book a call to discuss enterprise deployment.

    activeloop-l0-retrieval

    1-5s

    Filtering Query

    This section provides a detailed guide to the filter expression syntax, a lightweight query language for filtering data.

    Simple Query

    Querying the data works as follows

    Retrieving top K elements without Reasoning

    When activeloop-l0-retrieval is used there is no reasoning or summary returned. Only top_k results.

    Getting answer from Hegel

    Now, we can filter files based on metadata, before running the query.

    Getting answer from other authors

    You can learn more about on various ways you can filter the data via Query Syntax.

    import os, requests
    
    url = "https://api.activeloop.ai/chat/completions"
    token = os.environ["ACTIVELOOP_TOKEN"]
    headers = {'Authorization': f'Bearer {token}'}
    
    payload = {
        "model": "activeloop-l0",
        "messages": [
            {
                "role": "user",
                "content": "What is logic?", 
            }   
        ]
    }
            
    response = requests.post(url, headers=headers, json=payload)
    
    # Print the response
    print(response.json())
    payload = {
        "model": "activeloop-l0-retrieval",
        "messages": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "filter",
                        "top_k": 3
                    },
                    {
                        "type": "text",
                        "text": "What is logic?" # query
                    }
                ]
            }   
        ]
    }
            
    response = requests.post(url, headers=headers, json=payload)
    
    print(response.json()["choices"]) # top k elements
    payload = {
        "model": "activeloop-l0",
        "messages": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "filter",
                        "filter": "metadata.author == 'hegel'"
                    }, 
                    {   
                        "type": "text",
                        "text": "What is logic?"
                    } 
                ]   
            }   
        ],
    }       
            
    response = requests.post(url, headers=headers, json=payload)
    print(response.json())
    payload = {
        "model": "activeloop-l0",
        "messages": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "filter",
                        "filter": "metadata.author != 'hegel'"
                    },   
                    {   
                        "type": "text",
                        "text": "What is logic?"
                    }
                ]
            }   
        ],
    }       
            
    response = requests.post(url, headers=headers, json=payload)
    print(response.json())

    Query Syntax

    Cheatsheet for filtering the data

    Basic Syntax

    A filter expression consists of one or more conditions that can be combined using logical operators. Each condition typically follows this pattern:

    Supported Operators

    Operator
    Description
    Example

    Data Types

    The syntax supports the following data types:

    • Strings: Enclosed in double quotes ("value") or single quotes ('value')

    • Numbers: Integers or decimals (42, 3.14)

    • Booleans: true

    Logical Operators

    Conditions can be combined using logical operators:

    • AND: condition1 and condition2

    • OR: condition1 or condition2

    Parentheses can be used to group conditions and control precedence:

    Accessing Nested Properties

    For nested data structures, use dot notation to access properties:

    Examples

    Basic Comparisons

    Combining Conditions

    Working with Lists

    Pattern Matching

    Null Checks

    Nested Properties

    Complex Filters

    Reserved Keywords

    The following keywords are reserved and should not be used as field names:

    • and

    • or

    • in

    • like

    Best Practices

    1. Use parentheses to make complex expressions clearer

    2. Be consistent with string quotes (prefer double quotes)

    3. Use whitespace to improve readability

    4. For complex filters, break expressions into multiple lines

    column operator value

    Less than

    quantity < 5

    <=

    Less than or equal to

    temperature <= 32

    in

    Value is in a list

    status in ["active", "pending"]

    like

    Pattern matching

    name like "%Smith%"

    is null

    Value is null

    address is null

    is not null

    Value is not null

    email is not null

    or
    false
  • Lists: Enclosed in square brackets, with comma-separated values ([1, 2, 3], ["active", "pending"])

  • is

  • null

  • not

  • true

  • false

  • =, ==

    Equals

    name = "John"

    !=, <>

    Not equals

    status != "inactive"

    >

    Greater than

    age > 30

    >=

    Greater than or equal to

    price >= 100

    <

    Streaming Output

    Following the tutorial on QuickStart, instead of waiting the whole reasoning to be completed, you can stream intermediate tokens.

    import os
    from openai import OpenAI
    
    client = OpenAI(
        base_url="https://api.activeloop.ai/",
        api_key=os.getenv('ACTIVELOOP_TOKEN')
    )
    
    stream = client.chat.completions.create(
        model="activeloop-l0",
        messages=[{"role": "user", "content": "what is the AIME score of DeepSeek R1?"}],
        stream=True,
    )
    
    for event in stream:
        print(event)
    (age > 30 and status = "active") or role = "admin"
    user.profile.name = "John"
    metadata.tags[0] = "important"
    // Simple equality check
    name = "John"
    
    // Numeric comparison
    age > 30
    
    // Boolean value
    is_active = true
    // Using AND
    age > 30 and status = "active"
    
    // Using OR
    status = "pending" or status = "in_review"
    
    // Combining with parentheses
    (age > 30 and status = "active") or role = "admin"
    // Check if value is in a list
    status in ["active", "pending", "in_review"]
    
    // Empty list
    tags in []
    // Names that contain "Smith"
    name like "%Smith%"
    
    // Email addresses from a specific domain
    email like "%@example.com"
    
    // Starts with a specific prefix
    product_code like "ABC%"
    // Check if a field is null
    address is null
    
    // Check if a field is not null
    email is not null
    // Access nested object properties
    user.profile.address = "New York"
    
    // Access array elements
    metadata.tags[0] = "important"
    
    // Deep nesting
    order.items[0].product.name = "Widget"
    // Complex filter combining multiple conditions
    (status in ["active", "pending"] and created_date > "2023-01-01") or
    (is_priority = true and (assigned_to = "John" or assigned_to is null))

    Create Workspace

    post
    /workspaces
    Authorizations
    AuthorizationstringRequired

    Enter your bearer token in the format 'your-token' (without quotes or 'Bearer' prefix)

    Body
    idstring · min: 1 · max: 34RequiredPattern: ^[a-z0-9]+(?:[-_][a-z0-9]+)*$
    namestringRequired
    Responses
    200

    Successful Response

    application/json
    Responseany
    422

    Validation Error

    application/json
    post
    /workspaces

    List Workspaces

    get
    /workspaces
    Authorizations
    AuthorizationstringRequired

    Enter your bearer token in the format 'your-token' (without quotes or 'Bearer' prefix)

    Responses
    200

    Successful Response

    application/json
    422

    Validation Error

    application/json
    get
    /workspaces

    Get Workspace

    get
    /workspaces/{workspace_id}
    Authorizations
    AuthorizationstringRequired

    Enter your bearer token in the format 'your-token' (without quotes or 'Bearer' prefix)

    Path parameters
    workspace_idstringRequired

    The ID of the workspace to get.

    Responses
    200

    Successful Response

    application/json
    422

    Validation Error

    application/json
    get
    /workspaces/{workspace_id}

    Delete Workspace

    delete
    /workspaces/{workspace_id}
    Authorizations
    AuthorizationstringRequired

    Enter your bearer token in the format 'your-token' (without quotes or 'Bearer' prefix)

    Path parameters
    workspace_idstringRequired

    The ID of the workspace to delete.

    Responses
    200

    Successful Response

    application/json
    Responseany
    422

    Validation Error

    application/json
    delete
    /workspaces/{workspace_id}

    Add User To Workspace

    post
    /workspaces/{workspace_id}/user
    Authorizations
    AuthorizationstringRequired

    Enter your bearer token in the format 'your-token' (without quotes or 'Bearer' prefix)

    Path parameters
    workspace_idstringRequired

    The ID of the workspace to add user to.

    Body
    userstringRequired
    accessstring · enumRequiredPossible values:
    Responses
    200

    Successful Response

    application/json
    Responseany
    422

    Validation Error

    application/json
    post
    /workspaces/{workspace_id}/user

    Update User In Workspace

    put
    /workspaces/{workspace_id}/user
    Authorizations
    AuthorizationstringRequired

    Enter your bearer token in the format 'your-token' (without quotes or 'Bearer' prefix)

    Path parameters
    workspace_idstringRequired

    The ID of the workspace to update user info.

    Body
    userstringRequired
    accessstring · enumRequiredPossible values:
    Responses
    200

    Successful Response

    application/json
    Responseany
    422

    Validation Error

    application/json
    put
    /workspaces/{workspace_id}/user

    Remove User From Workspace

    delete
    /workspaces/{workspace_id}/user/{user_id}
    Authorizations
    AuthorizationstringRequired

    Enter your bearer token in the format 'your-token' (without quotes or 'Bearer' prefix)

    Path parameters
    workspace_idstringRequired

    The ID of the workspace to remove user from.

    user_idstringRequired

    The ID of the user.

    Responses
    200

    Successful Response

    application/json
    Responseany
    422

    Validation Error

    application/json
    delete
    /workspaces/{workspace_id}/user/{user_id}

    List Workspace Users

    get
    /workspaces/{workspace_id}/users
    Authorizations
    AuthorizationstringRequired

    Enter your bearer token in the format 'your-token' (without quotes or 'Bearer' prefix)

    Path parameters
    workspace_idstringRequired

    The ID of the workspace to list users from.

    Responses
    200

    Successful Response

    application/json
    422

    Validation Error

    application/json
    get
    /workspaces/{workspace_id}/users

    Upload File

    post
    /files

    Upload a file with optional metadata.

    Authorizations
    AuthorizationstringRequired

    Enter your bearer token in the format 'your-token' (without quotes or 'Bearer' prefix)

    Body
    filestring · binary[]Optional
    purposestring · enumOptionalDefault: user_dataPossible values:
    metadataany ofOptional

    JSON string with file metadata

    stringOptional
    or
    nullOptional
    instructionsany ofOptional

    Instructions used to process the file

    stringOptional
    or
    nullOptional
    workspacestringOptionalDefault: default
    Responses
    200

    Successful Response

    application/json
    Responseany of
    or
    422

    Validation Error

    application/json
    post
    /files

    List Files

    get
    /files

    Returns a list of files, filtered by the organization.

    Authorizations
    AuthorizationstringRequired

    Enter your bearer token in the format 'your-token' (without quotes or 'Bearer' prefix)

    Query parameters
    workspacestringOptional

    List files in workspace

    Default: default
    afterany ofOptional

    Cursor for pagination

    stringOptional
    or
    nullOptional
    limitinteger · min: 1 · max: 10000Optional

    Limit the number of returned files

    Default: 10000
    orderstringOptional

    Sort order by creation timestamp

    Default: desc
    purposeany ofOptional

    Filter by purpose

    string · enumOptionalPossible values:
    or
    nullOptional
    filterany ofOptional

    Filter by metadata

    stringOptional
    or
    nullOptional
    Responses
    200

    Successful Response

    application/json
    422

    Validation Error

    application/json
    get
    /files

    Retrieve File

    get
    /files/{file_id}

    Returns information about a specific file, verifying organization access.

    Authorizations
    AuthorizationstringRequired

    Enter your bearer token in the format 'your-token' (without quotes or 'Bearer' prefix)

    Path parameters
    file_idstringRequired

    The ID of the file

    Query parameters
    workspacestringOptional

    Get file from workspace

    Default: default
    Responses
    200

    Successful Response

    application/json
    422

    Validation Error

    application/json
    get
    /files/{file_id}

    Delete File

    delete
    /files/{file_id}

    Delete a file, verifying organization access.

    Authorizations
    AuthorizationstringRequired

    Enter your bearer token in the format 'your-token' (without quotes or 'Bearer' prefix)

    Path parameters
    file_idstringRequired

    The ID of the file

    Query parameters
    workspacestringOptional

    Delete file from workspace

    Default: default
    Responses
    200

    Successful Response

    application/json
    422

    Validation Error

    application/json
    delete
    /files/{file_id}

    Retrieve File Content

    get
    /files/{file_id}/content

    Returns the contents of the specified file, verifying organization access.

    Authorizations
    AuthorizationstringRequired

    Enter your bearer token in the format 'your-token' (without quotes or 'Bearer' prefix)

    Path parameters
    file_idstringRequired

    The ID of the file

    Query parameters
    workspacestringOptional

    The workspace id to get file content from

    Default: default
    Responses
    200

    Successful Response

    application/json
    Responseany
    422

    Validation Error

    application/json
    get
    /files/{file_id}/content

    Update File Metadata

    patch
    /files/{file_id}/metadata

    Update metadata for a specific file, verifying organization access.

    Authorizations
    AuthorizationstringRequired

    Enter your bearer token in the format 'your-token' (without quotes or 'Bearer' prefix)

    Path parameters
    file_idstringRequired

    The ID of the file

    Query parameters
    workspacestringOptional

    The workspace id to update th file in

    Default: default
    Body

    The metadata to update. instructions key is considered as an instruction to update metadata by AI.

    Other propertiesanyOptional
    Responses
    200

    Successful Response

    application/json
    Responseany of
    or
    nullOptional
    422

    Validation Error

    application/json
    patch
    /files/{file_id}/metadata

    Create Chat Completion

    post
    /chat/completions

    Create a chat completion with OpenAI-compatible format

    Authorizations
    AuthorizationstringRequired

    Enter your bearer token in the format 'your-token' (without quotes or 'Bearer' prefix)

    Body
    workspacestringOptionalDefault: default
    modelstringOptionalDefault: activeloop-l0
    temperatureany ofOptionalDefault: 1
    numberOptional
    or
    nullOptional
    top_pany ofOptionalDefault: 1
    numberOptional
    or
    nullOptional
    nany ofOptionalDefault: 1
    integerOptional
    or
    nullOptional
    streamany ofOptionalDefault: false
    booleanOptional
    or
    nullOptional
    max_tokensany ofOptional
    integerOptional
    or
    nullOptional
    max_completion_tokensany ofOptional
    integerOptional
    or
    nullOptional
    presence_penaltyany ofOptionalDefault: 0
    numberOptional
    or
    nullOptional
    frequency_penaltyany ofOptionalDefault: 0
    numberOptional
    or
    nullOptional
    logit_biasany ofOptional
    or
    nullOptional
    logprobsany ofOptionalDefault: false
    booleanOptional
    or
    nullOptional
    top_logprobsany ofOptional
    integerOptional
    or
    nullOptional
    stopany ofOptional
    stringOptional
    or
    string[]Optional
    or
    nullOptional
    seedany ofOptional
    integerOptional
    or
    nullOptional
    response_formatany ofOptional
    or
    nullOptional
    userany ofOptional
    stringOptional
    or
    nullOptional
    stream_optionsany ofOptional
    or
    nullOptional
    storeany ofOptionalDefault: false
    booleanOptional
    or
    nullOptional
    metadataany ofOptional
    or
    nullOptional
    modalitiesany ofOptional
    string[]Optional
    or
    nullOptional
    service_tierany ofOptional
    stringOptional
    or
    nullOptional
    reasoning_effortany ofOptional
    string · enumOptionalPossible values:
    or
    nullOptional

    Get Chat Completion Messages

    get
    /chat/completions/{completion_id}/messages

    Get messages for a chat completion

    Authorizations
    AuthorizationstringRequired

    Enter your bearer token in the format 'your-token' (without quotes or 'Bearer' prefix)

    Path parameters
    completion_idstringRequired

    The ID of the chat completion

    Query parameters
    workspacestringOptional

    The ID of workspace to lookup chat completion messages in

    Default: default
    afterany ofOptional

    Identifier for the last message from the previous pagination request

    stringOptional
    or
    nullOptional
    limitinteger · min: 1 · max: 100Optional

    Number of messages to retrieve

    Default: 20
    orderstringOptional

    Sort order for messages by timestamp

    Default: asc

    List Completions

    get
    /chat/completions

    List stored Chat Completions

    Authorizations
    AuthorizationstringRequired

    Enter your bearer token in the format 'your-token' (without quotes or 'Bearer' prefix)

    Query parameters
    workspacestringOptional

    The ID of workspace to lookup chat completions in

    Default: default
    afterany ofOptional

    Identifier for the last chat completion from the previous pagination request

    stringOptional
    or
    nullOptional
    limitinteger · min: 1 · max: 100Optional

    Number of Chat Completions to retrieve

    Default: 20
    orderstring · enumOptional

    Sort order for Chat Completions by timestamp

    Default: ascPossible values:
    modelany ofOptional

    Filter by model

    stringOptional
    or
    nullOptional
    Responses
    200

    Successful Response

    application/json
    422

    Validation Error

    application/json
    get
    /chat/completions

    Get Chat Completion

    get
    /chat/completions/{completion_id}

    Get a stored chat completion

    Authorizations
    AuthorizationstringRequired

    Enter your bearer token in the format 'your-token' (without quotes or 'Bearer' prefix)

    Path parameters
    completion_idstringRequired

    The ID of the chat completion to retrieve

    Query parameters
    workspacestringOptional

    The ID of workspace to lookup chat completion in

    Default: default
    Responses
    200

    Successful Response

    application/json
    422

    Validation Error

    application/json
    get
    /chat/completions/{completion_id}

    Update Chat Completion

    post
    /chat/completions/{completion_id}

    Update metadata for a chat completion

    Authorizations
    AuthorizationstringRequired

    Enter your bearer token in the format 'your-token' (without quotes or 'Bearer' prefix)

    Path parameters
    completion_idstringRequired

    The ID of the chat completion to update

    Query parameters
    workspacestringOptional

    The ID of workspace to update chat completion in

    Default: default
    Body
    Other propertiesstringOptional
    Responses
    200

    Successful Response

    application/json
    422

    Validation Error

    application/json
    post
    /chat/completions/{completion_id}

    Get Chat Completion Messages

    get
    /chat/completions/{completion_id}/messages

    Get messages for a chat completion

    Authorizations
    AuthorizationstringRequired

    Enter your bearer token in the format 'your-token' (without quotes or 'Bearer' prefix)

    Path parameters
    completion_idstringRequired

    The ID of the chat completion

    Query parameters
    workspacestringOptional

    The ID of workspace to lookup chat completion messages in

    Default: default
    afterany ofOptional

    Identifier for the last message from the previous pagination request

    stringOptional
    or
    nullOptional
    limitinteger · min: 1 · max: 100Optional

    Number of messages to retrieve

    Default: 20
    orderstringOptional

    Sort order for messages by timestamp

    Default: asc
    Responses
    200

    Successful Response

    application/json
    422

    Validation Error

    application/json
    get
    /chat/completions/{completion_id}/messages

    Delete Chat Completion

    delete
    /chat/completions/{completion_id}

    Delete a chat completion

    Authorizations
    AuthorizationstringRequired

    Enter your bearer token in the format 'your-token' (without quotes or 'Bearer' prefix)

    Path parameters
    completion_idstringRequired

    The ID of the chat completion to delete

    Query parameters
    workspacestringOptional

    The ID of workspace to delete chat completion in

    Default: default
    Responses
    200

    Successful Response

    application/json
    422

    Validation Error

    application/json
    delete
    /chat/completions/{completion_id}

    No content

    No content

    No content

    No content

    No content

    No content

    {
      "data": [
        {
          "id": "text",
          "name": "text",
          "creator_user_id": "text",
          "org_id": "text",
          "created_at": "2025-12-13T14:02:36.540Z"
        }
      ]
    }
    {
      "id": "text",
      "name": "text",
      "creator_user_id": "text",
      "org_id": "text",
      "created_at": "2025-12-13T14:02:36.540Z"
    }
    {
      "data": [
        {
          "user_id": "text",
          "access": "writer",
          "created_at": "2025-12-13T14:02:36.540Z"
        }
      ]
    }
    POST /workspaces HTTP/1.1
    Host: api.activeloop.ai
    Authorization: Bearer YOUR_SECRET_TOKEN
    Content-Type: application/json
    Accept: */*
    Content-Length: 27
    
    {
      "id": "text",
      "name": "text"
    }
    GET /workspaces HTTP/1.1
    Host: api.activeloop.ai
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    GET /workspaces/{workspace_id} HTTP/1.1
    Host: api.activeloop.ai
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    DELETE /workspaces/{workspace_id} HTTP/1.1
    Host: api.activeloop.ai
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    POST /workspaces/{workspace_id}/user HTTP/1.1
    Host: api.activeloop.ai
    Authorization: Bearer YOUR_SECRET_TOKEN
    Content-Type: application/json
    Accept: */*
    Content-Length: 33
    
    {
      "user": "text",
      "access": "writer"
    }
    PUT /workspaces/{workspace_id}/user HTTP/1.1
    Host: api.activeloop.ai
    Authorization: Bearer YOUR_SECRET_TOKEN
    Content-Type: application/json
    Accept: */*
    Content-Length: 33
    
    {
      "user": "text",
      "access": "writer"
    }
    DELETE /workspaces/{workspace_id}/user/{user_id} HTTP/1.1
    Host: api.activeloop.ai
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    GET /workspaces/{workspace_id}/users HTTP/1.1
    Host: api.activeloop.ai
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    [
      {
        "id": "text",
        "object": "file",
        "bytes": 1,
        "created_at": 1,
        "filename": "text",
        "purpose": "user_data",
        "status": "uploaded",
        "status_details": "text",
        "expires_at": 1,
        "org_id": "text",
        "workspace_id": "default",
        "user_id": "text",
        "metadata": {
          "ANY_ADDITIONAL_PROPERTY": "anything"
        }
      }
    ]
    {
      "data": [
        {
          "id": "text",
          "object": "file",
          "bytes": 1,
          "created_at": 1,
          "filename": "text",
          "purpose": "user_data",
          "status": "uploaded",
          "status_details": "text",
          "expires_at": 1,
          "org_id": "text",
          "workspace_id": "default",
          "user_id": "text",
          "metadata": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          }
        }
      ],
      "object": "list",
      "total": 1
    }
    {
      "id": "text",
      "object": "file",
      "bytes": 1,
      "created_at": 1,
      "filename": "text",
      "purpose": "user_data",
      "status": "uploaded",
      "status_details": "text",
      "expires_at": 1,
      "org_id": "text",
      "workspace_id": "default",
      "user_id": "text",
      "metadata": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      }
    }
    {
      "id": "text",
      "object": "file",
      "deleted": true
    }
    PATCH /files/{file_id}/metadata HTTP/1.1
    Host: api.activeloop.ai
    Authorization: Bearer YOUR_SECRET_TOKEN
    Content-Type: application/json
    Accept: */*
    Content-Length: 38
    
    {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    }
    {
      "id": "text",
      "object": "file",
      "bytes": 1,
      "created_at": 1,
      "filename": "text",
      "purpose": "user_data",
      "status": "uploaded",
      "status_details": "text",
      "expires_at": 1,
      "org_id": "text",
      "workspace_id": "default",
      "user_id": "text",
      "metadata": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      }
    }
    POST /files HTTP/1.1
    Host: api.activeloop.ai
    Authorization: Bearer YOUR_SECRET_TOKEN
    Content-Type: multipart/form-data
    Accept: */*
    Content-Length: 103
    
    {
      "file": [
        "binary"
      ],
      "purpose": "user_data",
      "metadata": "text",
      "instructions": "text",
      "workspace": "default"
    }
    GET /files/{file_id} HTTP/1.1
    Host: api.activeloop.ai
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    DELETE /files/{file_id} HTTP/1.1
    Host: api.activeloop.ai
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    GET /files/{file_id}/content HTTP/1.1
    Host: api.activeloop.ai
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    GET /files HTTP/1.1
    Host: api.activeloop.ai
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    Responses
    200

    Successful Response

    application/json
    Responseany
    422

    Validation Error

    application/json
    post
    /chat/completions

    No content

    Responses
    200

    Successful Response

    application/json
    422

    Validation Error

    application/json
    get
    /chat/completions/{completion_id}/messages
    POST /chat/completions HTTP/1.1
    Host: api.activeloop.ai
    Authorization: Bearer YOUR_SECRET_TOKEN
    Content-Type: application/json
    Accept: */*
    Content-Length: 566
    
    {
      "workspace": "default",
      "model": "activeloop-l0",
      "messages": [
        {
          "role": "user",
          "content": [
            {
              "type": "text",
              "text": "text"
            }
          ]
        }
      ],
      "temperature": 1,
      "top_p": 1,
      "n": 1,
      "stream": false,
      "max_tokens": 1,
      "max_completion_tokens": 1,
      "presence_penalty": 0,
      "frequency_penalty": 0,
      "logit_bias": {
        "ANY_ADDITIONAL_PROPERTY": 1
      },
      "logprobs": false,
      "top_logprobs": 1,
      "stop": "text",
      "seed": 1,
      "response_format": {
        "type": "text"
      },
      "user": "text",
      "stream_options": {
        "include_usage": true
      },
      "store": false,
      "metadata": {
        "ANY_ADDITIONAL_PROPERTY": "text"
      },
      "modalities": [
        "text"
      ],
      "service_tier": "text",
      "reasoning_effort": "low"
    }
    GET /chat/completions/{completion_id}/messages HTTP/1.1
    Host: api.activeloop.ai
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    {
      "object": "list",
      "data": [
        {
          "id": "text",
          "object": "chat.completion",
          "created": 1,
          "model": "text",
          "system_fingerprint": "text",
          "choices": [
            {
              "index": 1,
              "message": {
                "role": "system",
                "content": "text",
                "reasoning_content": "text",
                "refusal": null,
                "annotations": [
                  {
                    "type": "text",
                    "text": "text",
                    "start_index": 1,
                    "end_index": 1,
                    "file_citation": {
                      "ANY_ADDITIONAL_PROPERTY": "anything"
                    },
                    "file_path": {
                      "ANY_ADDITIONAL_PROPERTY": "anything"
                    }
                  }
                ]
              },
              "finish_reason": "text",
              "logprobs": {
                "content": [
                  {
                    "ANY_ADDITIONAL_PROPERTY": "anything"
                  }
                ]
              },
              "metadata": {
                "ANY_ADDITIONAL_PROPERTY": "anything"
              }
            }
          ],
          "usage": {
            "prompt_tokens": 1,
            "completion_tokens": 1,
            "total_tokens": 1
          },
          "perception_usage": {
            "prompt_tokens": 1,
            "completion_tokens": 1,
            "total_tokens": 1
          },
          "service_tier": "text",
          "request_id": "text",
          "seed": 1,
          "top_p": 1,
          "temperature": 1,
          "presence_penalty": 1,
          "frequency_penalty": 1,
          "input_user": "text",
          "tools": [
            {
              "ANY_ADDITIONAL_PROPERTY": "anything"
            }
          ],
          "metadata": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          },
          "response_format": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          },
          "responses": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          }
        }
      ],
      "first_id": "text",
      "last_id": "text",
      "has_more": false
    }
    {
      "id": "text",
      "object": "chat.completion",
      "created": 1,
      "model": "text",
      "system_fingerprint": "text",
      "choices": [
        {
          "index": 1,
          "message": {
            "role": "system",
            "content": "text",
            "reasoning_content": "text",
            "refusal": null,
            "annotations": [
              {
                "type": "text",
                "text": "text",
                "start_index": 1,
                "end_index": 1,
                "file_citation": {
                  "ANY_ADDITIONAL_PROPERTY": "anything"
                },
                "file_path": {
                  "ANY_ADDITIONAL_PROPERTY": "anything"
                }
              }
            ]
          },
          "finish_reason": "text",
          "logprobs": {
            "content": [
              {
                "ANY_ADDITIONAL_PROPERTY": "anything"
              }
            ]
          },
          "metadata": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          }
        }
      ],
      "usage": {
        "prompt_tokens": 1,
        "completion_tokens": 1,
        "total_tokens": 1
      },
      "perception_usage": {
        "prompt_tokens": 1,
        "completion_tokens": 1,
        "total_tokens": 1
      },
      "service_tier": "text",
      "request_id": "text",
      "seed": 1,
      "top_p": 1,
      "temperature": 1,
      "presence_penalty": 1,
      "frequency_penalty": 1,
      "input_user": "text",
      "tools": [
        {
          "ANY_ADDITIONAL_PROPERTY": "anything"
        }
      ],
      "metadata": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "response_format": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "responses": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      }
    }
    {
      "id": "text",
      "object": "chat.completion",
      "created": 1,
      "model": "text",
      "system_fingerprint": "text",
      "choices": [
        {
          "index": 1,
          "message": {
            "role": "system",
            "content": "text",
            "reasoning_content": "text",
            "refusal": null,
            "annotations": [
              {
                "type": "text",
                "text": "text",
                "start_index": 1,
                "end_index": 1,
                "file_citation": {
                  "ANY_ADDITIONAL_PROPERTY": "anything"
                },
                "file_path": {
                  "ANY_ADDITIONAL_PROPERTY": "anything"
                }
              }
            ]
          },
          "finish_reason": "text",
          "logprobs": {
            "content": [
              {
                "ANY_ADDITIONAL_PROPERTY": "anything"
              }
            ]
          },
          "metadata": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          }
        }
      ],
      "usage": {
        "prompt_tokens": 1,
        "completion_tokens": 1,
        "total_tokens": 1
      },
      "perception_usage": {
        "prompt_tokens": 1,
        "completion_tokens": 1,
        "total_tokens": 1
      },
      "service_tier": "text",
      "request_id": "text",
      "seed": 1,
      "top_p": 1,
      "temperature": 1,
      "presence_penalty": 1,
      "frequency_penalty": 1,
      "input_user": "text",
      "tools": [
        {
          "ANY_ADDITIONAL_PROPERTY": "anything"
        }
      ],
      "metadata": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "response_format": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "responses": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      }
    }
    {
      "object": "list",
      "data": [
        {
          "id": "text",
          "role": "system",
          "content": "text",
          "name": "text",
          "content_parts": [
            {
              "ANY_ADDITIONAL_PROPERTY": "anything"
            }
          ]
        }
      ],
      "first_id": "text",
      "last_id": "text",
      "has_more": false
    }
    {
      "id": "text",
      "object": "chat.completion.deleted",
      "deleted": true
    }
    GET /chat/completions/{completion_id} HTTP/1.1
    Host: api.activeloop.ai
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    GET /chat/completions/{completion_id}/messages HTTP/1.1
    Host: api.activeloop.ai
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    DELETE /chat/completions/{completion_id} HTTP/1.1
    Host: api.activeloop.ai
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    GET /chat/completions HTTP/1.1
    Host: api.activeloop.ai
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    POST /chat/completions/{completion_id} HTTP/1.1
    Host: api.activeloop.ai
    Authorization: Bearer YOUR_SECRET_TOKEN
    Content-Type: application/json
    Accept: */*
    Content-Length: 34
    
    {
      "ANY_ADDITIONAL_PROPERTY": "text"
    }
    {
      "object": "list",
      "data": [
        {
          "id": "text",
          "role": "system",
          "content": "text",
          "name": "text",
          "content_parts": [
            {
              "ANY_ADDITIONAL_PROPERTY": "anything"
            }
          ]
        }
      ],
      "first_id": "text",
      "last_id": "text",
      "has_more": false
    }