Lucid Data Source API
Create, retrieve, update, and delete data sources within a data set. A data source represents an external system whose data is synced into Lucid.
Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay
HEAD
/dataSources
Count my data sources · Get Total Data Sources Count
#
Ask an LLM“How many data sources can I access?”
“Is there a way to get only the total number of data sources?”
Tell an agentCount my data sources.
Tell me how many data sources I have access to.
GET
/dataSources
List my data sources · Get All Data Sources
#
Ask an LLM“Which data sources do I have access to in Lucid?”
“Can I page through my data sources in ranges?”
Tell an agentList all my data sources.
Show data sources {start} through {end}.
POST
/dataSources
Create a data source · Create Data Source
#
Ask an LLM“How do I create a new data source to link data into diagrams?”
“Do I get a grant automatically on a data source I create?”
Tell an agentCreate a data source named {name}.
Create data source {name} with adapter type {adapterType}.
GET
/dataSources/{dataSourceId}
Get a data source · Get Data Source
#
Ask an LLM“What details does a single data source have?”
“When are a data source's link parameters returned?”
Tell an agentGet data source {dataSourceId}.
Show the details of data source {dataSourceId}.
PATCH
/dataSources/{dataSourceId}
Rename a data source or change its adapter · Update Data Source
#
Ask an LLM“How do I rename a data source?”
“Can I change the adapter type of an existing data source?”
Tell an agentRename data source {dataSourceId} to {name}.
Set data source {dataSourceId}'s adapter type to {adapterType}.
DELETE
/dataSources/{dataSourceId}
Delete a data source and everything in it · Delete Data Source
#
Ask an LLM“Does deleting a data source also remove its collections and items?”
“Can a deleted data source be recovered?”
Tell an agent destructive · confirm firstDelete data source {dataSourceId}.
Permanently remove data source {dataSourceId} and its collections.
POST
/adapter/csv
Create a data source from a CSV file · Create Data Source from CSV
#
Ask an LLM“Can I upload a CSV to make a brand-new data source?”
“How are columns named when a CSV becomes a new data source?”
Tell an agentCreate a new data source from CSV {file}.
Upload {file} as a new CSV data source.
PUT
/adapter/csv
Replace a data source's data from a CSV · Update Data Source from CSV
#
Ask an LLM“How do I refresh an existing data source with a new CSV file?”
“Can I overwrite just one collection from a CSV upload?”
Tell an agentOverwrite data source {dataSource} with CSV {file}.
Replace the items in collection {collection} of data source {dataSource} with CSV {file}.
Documentation
Specifications
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
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.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/lucid:lucid-data-source-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
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: Lucid Data Data Source API
version: '1.0'
description: The Lucid Data API enables external applications to create, read, update, and delete structured data linked to Lucid documents. Use it to sync data sets, collections, and schemas between your data sources and Lucid diagrams. Authenticate via OAuth 2.0.
contact:
name: Lucid Developer Platform
url: https://developer.lucid.co/
x-documentation: https://developer.lucid.co/reference/data-api
servers:
- url: https://data.lucid.app
tags:
- name: Data Source
description: Create, retrieve, update, and delete data sources within a data set. A data source represents an external system whose data is synced into Lucid.
paths:
/dataSources:
head:
summary: Get Total Data Sources Count
description: This endpoint returns the number of data sources a user has access to. The return value is in the response headers as `Lucid-DataSources-Total`
operationId: getDataSourceCount
tags:
- Data Source
security:
- OAuth2:
- data-service.admin
responses:
'200':
description: OK with lucid-datasources-total header in response
headers:
lucid-datasources-total:
description: Total number of data sources
schema:
type: integer
example: 123
get:
summary: Get All Data Sources
description: This endpoint returns all data sources that the user has access to. The results will be paginated. If the number of data sources exceeds the pagination limit, links will be provided to get the next set of results or the previous set of results (if applicable). The range of returned values can be determined by optional start and end parameters. If the difference between the end and start values is greater than the pagination limit, the endpoint returns data sources in the range from start to start + pagination limit. Items in the response are determined based on their creation order.
operationId: getAllDataSources
tags:
- Data Source
security:
- OAuth2:
- data-service.admin
parameters:
- name: start
in: query
description: Starting 1-based index of data sources to retreive. Defaults to 1.
required: false
schema:
type: integer
- name: end
in: query
description: Ending index of data sources to retreive. Defaults to 100.
required: false
schema:
type: integer
responses:
'200':
description: OK with paginated list of Data Source objects
content:
application/json:
schema:
type: object
properties:
dataSources:
type: array
items:
type: object
properties:
uri:
type: string
description: URI of the data source
example: https://data.lucid.app/dataSources/2967
name:
type: string
description: Name of the data source
example: Internal Org Chart
sourceGrants:
type: string
description: Link to get grants for the data source
example: https://data.lucid.app/sourceGrants?dataSource=https://data.lucid.app/dataSources/2967
adapterType:
type: string
description: Type of adapter used to create the data source. Valid values are `CSV`, `DATA_API`, and `UNKNOWN`
example: CSV
collections:
type: string
description: Link to get collections for the data source
example: https://data.lucid.app/collections?dataSource=https://data.lucid.app/dataSources/2967
created:
type: string
description: Date the data source was created
example: '2021-01-01T00:00:00Z'
lastModified:
type: string
description: Date the data source was last modified
example: '2021-01-01T00:00:00Z'
pending:
type: boolean
description: If a data source is marked pending it won't be availble for users to select within Lucid
example: false
dataSet:
type: string
description: Link to get the data set for the data source
example: https://data.lucid.app/dataSets/2168
linkParameters:
type: object
description: Link parameters for the data source
example:
param1: value1
param2: value2
deleted:
type: string
description: Date the data source was deleted
example: '2021-01-01T00:00:00Z'
required:
- uri
- name
- sourceGrants
- adapterType
- collections
- created
- lastModified
- pending
- dataSet
example:
uri: https://data.lucid.app/dataSources/2967
name: Internal Org Chart
sourceGrants: https://data.lucid.app/sourceGrants?dataSource=https://data.lucid.app/dataSources/2967
adapterType: CSV
collections: https://data.lucid.app/collections?dataSource=https://data.lucid.app/dataSources/2967
created: '2021-01-01T00:00:00Z'
lastModified: '2021-01-01T00:00:00Z'
pending: false
dataSet: https://data.lucid.app/dataSets/2168
linkParameters:
param1: value1
param2: value2
deleted: '2021-01-01T00:00:00Z'
total:
type: integer
description: Total number of data sources
example: 125
prev:
type: string
description: Link to get the previous set of data sources
example: https://data.lucid.app/dataSources?start=80&end=90
next:
type: string
description: Link to get the next set of data sources
example: https://data.lucid.app/dataSources?start=100&end=110
post:
summary: Create Data Source
description: Creates a new data source and a corresponding new data source grant for the user.
operationId: createDataSource
tags:
- Data Source
security:
- OAuth2:
- data-service.admin
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name to give the new data source
example: New Data Source
adapterType:
type: string
description: Type of adapter used to create the data source. Valid values are `CSV`, `DATA_API`, and `UNKNOWN`. (Defaults to `UNKNOWN`)
example: CSV
required:
- name
example:
name: Internal Org Chart
adapterType: CSV
responses:
'200':
description: OK with Data Source
content:
application/json:
schema:
type: object
properties:
uri:
type: string
description: URI of the data source
example: https://data.lucid.app/dataSources/2967
name:
type: string
description: Name of the data source
example: Internal Org Chart
sourceGrants:
type: string
description: Link to get grants for the data source
example: https://data.lucid.app/sourceGrants?dataSource=https://data.lucid.app/dataSources/2967
adapterType:
type: string
description: Type of adapter used to create the data source. Valid values are `CSV`, `DATA_API`, and `UNKNOWN`
example: CSV
collections:
type: string
description: Link to get collections for the data source
example: https://data.lucid.app/collections?dataSource=https://data.lucid.app/dataSources/2967
created:
type: string
description: Date the data source was created
example: '2021-01-01T00:00:00Z'
lastModified:
type: string
description: Date the data source was last modified
example: '2021-01-01T00:00:00Z'
pending:
type: boolean
description: If a data source is marked pending it won't be availble for users to select within Lucid
example: false
dataSet:
type: string
description: Link to get the data set for the data source
example: https://data.lucid.app/dataSets/2168
linkParameters:
type: object
description: Link parameters for the data source
example:
param1: value1
param2: value2
deleted:
type: string
description: Date the data source was deleted
example: '2021-01-01T00:00:00Z'
required:
- uri
- name
- sourceGrants
- adapterType
- collections
- created
- lastModified
- pending
- dataSet
example:
uri: https://data.lucid.app/dataSources/2967
name: New Data Source
sourceGrants: https://data.lucid.app/sourceGrants?dataSource=https://data.lucid.app/dataSources/2967
adapterType: CSV
collections: https://data.lucid.app/collections?dataSource=https://data.lucid.app/dataSources/2967
created: '2021-01-01T00:00:00Z'
lastModified: '2021-01-01T00:00:00Z'
pending: false
dataSet: https://data.lucid.app/dataSets/2168
/dataSources/{dataSourceId}:
get:
summary: Get Data Source
description: Gets a specific existing data source from Lucid. If the creator of the data source is the user making the request, the link parameters will be returned with the data source.
operationId: getDataSource
tags:
- Data Source
security:
- OAuth2:
- data-service.admin
parameters:
- name: dataSourceId
in: path
description: ID of data source to return
required: true
schema:
type: integer
responses:
'200':
description: OK with Data Source
content:
application/json:
schema:
type: object
properties:
uri:
type: string
description: URI of the data source
example: https://data.lucid.app/dataSources/2967
name:
type: string
description: Name of the data source
example: Internal Org Chart
sourceGrants:
type: string
description: Link to get grants for the data source
example: https://data.lucid.app/sourceGrants?dataSource=https://data.lucid.app/dataSources/2967
adapterType:
type: string
description: Type of adapter used to create the data source. Valid values are `CSV`, `DATA_API`, and `UNKNOWN`
example: CSV
collections:
type: string
description: Link to get collections for the data source
example: https://data.lucid.app/collections?dataSource=https://data.lucid.app/dataSources/2967
created:
type: string
description: Date the data source was created
example: '2021-01-01T00:00:00Z'
lastModified:
type: string
description: Date the data source was last modified
example: '2021-01-01T00:00:00Z'
pending:
type: boolean
description: If a data source is marked pending it won't be availble for users to select within Lucid
example: false
dataSet:
type: string
description: Link to get the data set for the data source
example: https://data.lucid.app/dataSets/2168
linkParameters:
type: object
description: Link parameters for the data source
example:
param1: value1
param2: value2
deleted:
type: string
description: Date the data source was deleted
example: '2021-01-01T00:00:00Z'
required:
- uri
- name
- sourceGrants
- adapterType
- collections
- created
- lastModified
- pending
- dataSet
example:
uri: https://data.lucid.app/dataSources/2967
name: Internal Org Chart
sourceGrants: https://data.lucid.app/sourceGrants?dataSource=https://data.lucid.app/dataSources/2967
adapterType: CSV
collections: https://data.lucid.app/collections?dataSource=https://data.lucid.app/dataSources/2967
created: '2021-01-01T00:00:00Z'
lastModified: '2021-01-01T00:00:00Z'
pending: false
dataSet: https://data.lucid.app/dataSets/2168
linkParameters:
param1: value1
param2: value2
deleted: '2021-01-01T00:00:00Z'
patch:
summary: Update Data Source
description: This endpoint takes a JSON object and uses it to update the data source's name and/or adapter type. The JSON object of the updated data source is returned. Updates will only occur if the user has access to the data source.
operationId: updateDataSource
tags:
- Data Source
security:
- OAuth2:
- data-service.admin
parameters:
- name: dataSourceId
in: path
description: ID of data source to update
required: true
schema:
type: integer
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: New name for the data source being updated
example: Updated Data Source name
adapterType:
type: string
description: New adapter type for the data source being update. Valid values are `CSV`, `DATA_API`, and `UNKNOWN`
example: CSV
example:
name: Updated Data Source name
adapterType: CSV
responses:
'200':
description: OK with Data Source
content:
application/json:
schema:
type: object
properties:
uri:
type: string
description: URI of the data source
example: https://data.lucid.app/dataSources/2967
name:
type: string
description: Name of the data source
example: Internal Org Chart
sourceGrants:
type: string
description: Link to get grants for the data source
example: https://data.lucid.app/sourceGrants?dataSource=https://data.lucid.app/dataSources/2967
adapterType:
type: string
description: Type of adapter used to create the data source. Valid values are `CSV`, `DATA_API`, and `UNKNOWN`
example: CSV
collections:
type: string
description: Link to get collections for the data source
example: https://data.lucid.app/collections?dataSource=https://data.lucid.app/dataSources/2967
created:
type: string
description: Date the data source was created
example: '2021-01-01T00:00:00Z'
lastModified:
type: string
description: Date the data source was last modified
example: '2021-01-01T00:00:00Z'
pending:
type: boolean
description: If a data source is marked pending it won't be availble for users to select within Lucid
example: false
dataSet:
type: string
description: Link to get the data set for the data source
example: https://data.lucid.app/dataSets/2168
linkParameters:
type: object
description: Link parameters for the data source
example:
param1: value1
param2: value2
deleted:
type: string
description: Date the data source was deleted
example: '2021-01-01T00:00:00Z'
required:
- uri
- name
- sourceGrants
- adapterType
- collections
- created
- lastModified
- pending
- dataSet
example:
uri: https://data.lucid.app/dataSources/2967
name: Updated Data Source name
sourceGrants: https://data.lucid.app/sourceGrants?dataSource=https://data.lucid.app/dataSources/2967
adapterType: CSV
collections: https://data.lucid.app/collections?dataSource=https://data.lucid.app/dataSources/2967
created: '2021-01-01T00:00:00Z'
lastModified: '2021-01-01T00:00:00Z'
pending: false
dataSet: https://data.lucid.app/dataSets/2168
delete:
summary: Delete Data Source
description: This removes the specified data source and anything related to it (collections, schema, items, link parameters). Once deleted, none of the information can be recovered.
operationId: deleteDataSource
tags:
- Data Source
security:
- OAuth2:
- data-service.admin
parameters:
- name: dataSourceId
in: path
description: ID of data source to delete
required: true
schema:
type: integer
responses:
'200':
description: OK
/adapter/csv:
post:
summary: Create Data Source from CSV
description: If able to successfully parse the attached file as a CSV file, a new data source with be created (with the same name as the attached file) that includes a single collection. The single collection in the newly created data source will contain the data from the CSV file. Each row will be an item, and each column will be labelled A, B, C, …, AA, AB, AC, .. in the order in which they were in the original file. There will be a single metadata collection created which represents the mapping between the id of each created item and the original row number of the row it was created from.
operationId: createDataSourceFromCSV
tags:
- Data Source
security:
- OAuth2:
- data-service.admin
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
description: CSV file to upload
required:
- file
example:
file: file=@location/file.csv
responses:
'200':
description: OK with Data Source
content:
application/json:
schema:
type: object
properties:
uri:
type: string
description: URI of the data source
example: https://data.lucid.app/dataSources/2967
name:
type: string
description: Name of the data source
example: file
sourceGrants:
type: string
description: Link to get grants for the data source
example: https://data.lucid.app/sourceGrants?dataSource=https://data.lucid.app/dataSources/2967
adapterType:
type: string
description: Type of adapter used to create the data source. Valid values are `CSV`, `DATA_API`, and `UNKNOWN`
example: CSV
collections:
type: string
description: Link to get collections for the data source
example: https://data.lucid.app/collections?dataSource=https://data.lucid.app/dataSources/2967
created:
type: string
description: Date the data source was created
example: '2021-01-01T00:00:00Z'
lastModified:
type: string
description: Date the data source was last modified
example: '2021-01-01T00:00:00Z'
pending:
type: boolean
description: If a data source is marked pending it won't be availble for users to select within Lucid
example: false
dataSet:
type: string
description: Link to get the data set for the data source
example: https://data.lucid.app/dataSets/2168
linkParameters:
type: object
description: Link parameters for the data source
example:
param1: value1
param2: value2
deleted:
type: string
description: Date the data source was deleted
example: '2021-01-01T00:00:00Z'
required:
- uri
- name
- sourceGrants
- adapterType
- collections
- created
- lastModified
- pending
- dataSet
example:
uri: https://data.lucid.app/dataSources/2967
name: file
sourceGrants: https://data.lucid.app/sourceGrants?dataSource=https://data.lucid.app/dataSources/2967
adapterType: CSV
collections: https://data.lucid.app/collections?dataSource=https://data.lucid.app/dataSources/2967
created: '2021-01-01T00:00:00Z'
lastModified: '2021-01-01T00:00:00Z'
pending: false
dataSet: https://data.lucid.app/dataSets/2168
linkParameters:
param1: value1
param2: value2
deleted: '2021-01-01T00:00:00Z'
'400':
description: Bad Request if no file provided or unable to read file
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Error message
example: Invalid file format
put:
summary: Update Data Source from CSV
description: 'If able to successfully parse the attached file as a CSV file, the endpoint will overwrite the contents of the single collection with the new data. The collection reference is left unchanged, but will have new items.
A specific collection in a data source can be replaced by including both the data source and collection query parameters. In this case, the items in that single collection will be overwritten with the values from the CSV. The target collection''s id will remain the same, i.e., the original collection is the same, just the items have changed. The specified collection must belong to the specified data source.'
operationId: updateDataSourceFromCSV
tags:
- Data Source
security:
- OAuth2:
- data-service.admin
parameters:
- name: dataSource
in: query
description: URI of Data source to update
required: true
schema:
type: string
- name: collection
in: query
description: URI of Collection to update
required: false
schema:
type: string
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
description: CSV file to upload
required:
- file
example:
file: file=@location/file.csv
responses:
'200':
description: OK with Data Source
content:
application/json:
schema:
type: object
properties:
uri:
type: string
description: URI of the data source
example: https://data.lucid.app/dataSources/2967
name:
type: string
description: Name of the data source
example: file
sourceGrants:
type: string
description: Link to get grants for the data source
example: https://data.lucid.app/sourceGrants?dataSource=https://data.lucid.app/dataSources/2967
adapterType:
type: string
description: Type of adapter used to create the data source. Valid values are `CSV`, `DATA_API`, and `UNKNOWN`
example: CSV
collections:
type: string
description: Link to get collections for the data source
example: https://data.lucid.app/collections?dataSource=https://data.lucid.app/dataSources/2967
created:
type: string
description: Date the data source was created
example: '2021-01-01T00:00:00Z'
lastModified:
type: string
description: Date the data source was last modified
example: '2021-01-01T00:00:00Z'
pending:
type: boolean
description: If a data source is marked pending it won't be availble for users to select within Lucid
example: false
dataSet:
type: string
description: Link to get the data set for the data source
example: https://data.lucid.app/dataSets/2168
linkParameters:
type: object
description: Link parameters for the data source
example:
param1: value1
param2: value2
deleted:
type: string
description: Date the data source was deleted
example: '2021-01-01T00:00:00Z'
required:
- uri
- name
- sourceGrants
- adapterType
- collections
- created
- lastModified
- pending
- dataSet
example:
uri: https://data.lucid.app/dataSources/2967
name: file
sourceGrants: https://data.lucid.app/sourceGrants?dataSource=https://data.lucid.app/dataSources/2967
adapterType: CSV
collections: https://data.lucid.app/collections?dataSource=https://data.lucid.app/dataSources/2967
created: '2021-01-01T00:00:00Z'
lastModified: '2021-01-01T00:00:00Z'
pending: false
dataSet: https://data.lucid.app/dataSets/2168
linkParameters:
param1: value1
param2: value2
deleted: '2021-01-01T00:00:00Z'
'400':
description: Bad Request if no file provided, unable to read file, or datasource query parameter is missing
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Error message
example: Invalid file format
components:
securitySchemes:
OAuth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://lucid.app/oauth2/authorize
tokenUrl: https://api.lucid.co/oauth2/token
refreshUrl: https://api.lucid.co/oauth2/token
scopes:
data-service.admin: Scope needed for access to the Data APIs.
x-harvest:
harvested: '2026-08-01'
method: searched
source: https://lucid-developer-docs.readme.io/mcp
note: 'Assembled operation-by-operation from Lucid''s own documentation MCP server (tools list-endpoints + get-endpoint), which returns verbatim OpenAPI 3.0.3 fragments out of the spec Lucid uploaded to its ReadMe hub (/branches/1.4/apis/lucid-data-api.json). Paths, operations, parameters, request bodies, responses, components and securitySchemes are provider content, unmodified. Only the info block is ours: ReadMe''s per-endpoint fragments omit info, so title/description are copied verbatim from the provider''s own list-specs description for this spec.'