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.
Create, retrieve, update, and delete data sources within a data set. A data source represents an external system whose data is synced into Lucid.
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/lucid-data-source-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: 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.'