Limitless

Limitless Developer Platform

Your data is yours to use. Build your own integrations with our API.

Note: The Developer API is currently in beta. Because the current endpoints only work with Pendant data, it is only available to Pendant owners. We plan to add more endpoints very soon. Order your own Pendant here.

Table of Contents

SetupEndpointsUsage

Example Repository

We've created an example repository that shows how to use the Developer API to access your data.

Fork @limitless-ai-inc/limitless-api-examples

Claude Desktop Integration

Bring your Limitless context directly into Claude Desktop with our MCP (Model Context Protocol) server. Search through your lifelogs, get daily summaries, and generate tasks from your conversations.

Download MCP Server

Slack Channel

Join the #developers channel in our Slack Community for tips and to share what you've built!

Join #developers

Setup

1. Access Developer settings

First, you'll need to join Limitless if you haven't already. Then, pair your Pendant with your Limitless account. After pairing, open the Desktop or Web App to copy your API key. You'll see the Developer link appear in your Limitless Desktop or Web App:

Developer API screenshot

2. Create an API Key

Once you're logged in, you can create an API key by clicking the "Create API Key" button in the top right corner of the screen.

Developer API screenshot

The security of your data is incredibly important to us. NEVER share your API key, commit it to a source repository, or otherwise expose it to third parties.

3. Use the API

Now that you have an API key, you can use it to access the API. Here's an example of how to use the API to get your 3 most recent Lifelog entries:

curl -H "X-API-Key: YOUR_API_KEY" https://api.limitless.ai/v1/lifelogs

There are many parameters you can use to customize your API request. For more information, see the API documentation.

Endpoints

While the Developer API is in beta, it only supports Pendant data. We plan to add more endpoints very soon.

Usage

Resources

openapi.yml

For developers and LLMs

Authentication

All API requests require authentication using an API key.

Include your API key in the X-API-Key header with each request:

curl -H "X-API-Key: YOUR_API_KEY" https://api.limitless.ai/v1/lifelogs

You can obtain an API key from the Developer settings in your Limitless account.

Requests

GET /v1/lifelogs

Get recent Lifelogs from your Pendant, search specific dates, or search by natural language query.

Query Parameters

ParameterTypeDescription
timezonestringIANA timezone specifier. If missing, UTC is used. Optional.
datestring (date)Will return all entries beginning on a date in the given timezone (YYYY-MM-DD). If start or end are provided, date will be ignored.
startstring (date-time)Start datetime in modified ISO-8601 format (YYYY-MM-DD or YYYY-MM-DD HH:mm:SS). Timezones/offsets will be ignored; use the query parameter instead.
endstring (date-time)End datetime in modified ISO-8601 format (YYYY-MM-DD or YYYY-MM-DD HH:mm:SS). Timezones/offsets will be ignored; use the query parameter instead.
cursorstringCursor for pagination to retrieve the next set of lifelogs. Optional.

Note: You cannot use cursor pagination when using thesearch parameter.
directionstring (enum)Sort direction for lifelogs. Allowed values: asc, desc. Default: desc
includeMarkdownboolean Whether to include markdown content in the response. Default: true
includeHeadingsbooleanWhether to include headings in the response. Default: true
isStarredbooleanFilter entries by their starred status. Optional.
limitintegerMaximum number of lifelogs to return. (Max value is 10; use the cursor parameter for pagination). Default: 3
searchstring

Optional.

Search query to perform hybrid search across lifelogs. Hybrid search is a combination of keyword search and semantic search; you can therefore send:

  • semantic queries, like "place bob recommended at dinner", or
  • boolean keyword search, like "blue OR red".

(While AND queries are supported, sending "red AND blue" is the same as sending "red blue"). When provided, other filtering parameters are applied as additional constraints.


Note: You cannot use cursor pagination when using this parameter.

Response

Returns a 200 status code with the following response body:

{
  "data": {
    "lifelogs": [
      {
        "id": "string",
        "title": "string",
        "markdown": "string",
        "startTime": "ISO-8601 string",
        "endTime": "ISO-8601 string",
        "isStarred": "boolean",
        "updatedAt": "ISO-8601 string",
        "contents": [
          {
            "type": "heading1" | "heading2" | "blockquote",
            "content": "string",
            "startTime": "ISO-8601 string",
            "endTime": "ISO-8601 string",
            "startOffsetMs": "timestamp in milliseconds",
            "endOffsetMs": "timestamp in milliseconds",
            "children": [],
            "speakerName": "string",
            "speakerIdentifier": "user" | null
          }
        ]
      }
    ]
  },
  "meta": {
    "lifelogs": {
      "nextCursor": "string" | undefined,
      "count": 0
    }
  }
}

Example Request

curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.limitless.ai/v1/lifelogs?date=2025-07-20&timezone=America/Los_Angeles&sea  "

Example Code (TypeScript)

const params = new URLSearchParams({
  date: '2025-07-20',
  timezone: 'America/Los_Angeles',
  search: 'that place bob recommended at dinner'
});
const response = await fetch(`https://api.limitless.ai/v1/lifelogs?${params}`, {
  method: 'GET',
  headers: {
    'X-API-Key': 'YOUR_API_KEY',
  },
});

Example Code (Python)

import requests

response = requests.get('https://api.limitless.ai/v1/lifelogs', params={
  'date': '2025-07-20',
  'timezone': 'America/Los_Angeles',
  'search': 'that place bob recommended at dinner'
}, headers={'X-API-Key': 'YOUR_API_KEY'})

GET /v1/lifelogs/:id

Returns a specific lifelog entry by ID.

Query Parameters

ParameterTypeDescription
:idstringThe ID of the lifelog entry to retrieve, given in the URL.
includeMarkdownboolean Whether to include markdown content in the response. Default: true
includeHeadingsbooleanWhether to include headings in the response. Default: true

Response

Returns a 200 status code with the following response body:

{
  "data": {
    "lifelog": {
      "id": "string",
      "title": "string",
      "markdown": "string",
      "startTime": "ISO-8601 string",
      "endTime": "ISO-8601 string",
      "isStarred": "boolean",
      "updatedAt": "ISO-8601 string",
      "contents": [
        {
          "type": "heading1" | "heading2" | "blockquote",
          "content": "string",
          "startTime": "ISO-8601 string",
          "endTime": "ISO-8601 string",
          "startOffsetMs": "timestamp in milliseconds",
          "endOffsetMs": "timestamp in milliseconds",
          "children": [],
          "speakerName": "string",
          "speakerIdentifier": "user" | null
        }
      ]
    }
  }
}

Example Request

curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.limitless.ai/v1/lifelogs/123"

Example Code (TypeScript)

const response = await fetch('https://api.limitless.ai/v1/lifelogs/123', {
  method: 'GET',
  headers: {
    'X-API-Key': 'YOUR_API_KEY',
  },
});

Example Code (Python)

import requests

response = requests.get('https://api.limitless.ai/v1/lifelogs/123', headers={'X-API-Key': 'YOUR_API_KEY'})

DELETE /v1/lifelogs/:id

Permanently deletes a specific lifelog entry by ID. All associated transcripts, audio, and metadata are fully deleted and cannot be recovered.

Query Parameters

ParameterTypeDescription
:idstringThe ID of the lifelog entry to delete, given in the URL.

Response

Returns a 200 status code with the following response body:

{
  "success": true
}

Example Request

curl -X DELETE -H "X-API-Key: YOUR_API_KEY" \
  "https://api.limitless.ai/v1/lifelogs/123"

Example Code (TypeScript)

const response = await fetch('https://api.limitless.ai/v1/lifelogs/123', {
  method: 'DELETE',
  headers: {
    'X-API-Key': 'YOUR_API_KEY',
  },
});

Example Code (Python)

import requests

response = requests.delete('https://api.limitless.ai/v1/lifelogs/123', headers={'X-API-Key': 'YOUR_API_KEY'})

Limitless Go Beyond

Sign in
© 2025 Limitless AITermsPrivacy Policy