Artie Source Readers API
The Source Readers API from Artie — 5 operation(s) for source readers.
The Source Readers API from Artie — 5 operation(s) for source readers.
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/artie:artie-source-readers-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a 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:
description: External API endpoints for Artie
title: Artie Source Readers API
version: v1.0.139
servers:
- url: https://api.artie.com
security:
- ApiKey: []
tags:
- name: Source Readers
paths:
/source-readers:
get:
description: Lists all source readers for the authenticated company.
operationId: source_reader_list
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/PayloadsSourceReader'
type: array
description: OK
'500':
description: Internal Server Error
summary: List source readers
tags:
- Source Readers
x-artie-mcp:
destructiveHint: false
exclusionReason: Returns source-reader configuration that can contain credentials.
exposure: excluded
idempotentHint: true
inputSensitivity: none
openWorldHint: false
operationId: source_reader_list
outputSensitivity: restricted-credentials
readOnlyHint: true
remediation: Use safe pipeline metadata tools and manage source-reader credentials outside MCP.
requiredScopes:
- source_readers:read
retrySemantics: safe
title: List source readers
triggerDescription: Use when you need to list source readers.
post:
description: Creates a new source reader for the authenticated company.
operationId: source_reader_create
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RouterSourceReaderCreateRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PayloadsSourceReader'
description: OK
'400':
description: Bad Request
'500':
description: Internal Server Error
summary: Create a source reader
tags:
- Source Readers
x-artie-mcp:
destructiveHint: false
exclusionReason: Accepts and returns source-reader configuration that can contain credentials.
exposure: excluded
idempotentHint: false
inputSensitivity: restricted-credentials
openWorldHint: false
operationId: source_reader_create
outputSensitivity: restricted-credentials
readOnlyHint: false
remediation: Create source readers through the authenticated Dashboard setup flow.
requiredScopes:
- source_readers:write
retrySemantics: unsafe
title: Create a source reader
triggerDescription: Use when you need to create a source reader.
/source-readers/{uuid}:
delete:
description: Permanently deletes a source reader by UUID. The source reader must not be associated with any active pipelines before deletion.
operationId: source_reader_delete
parameters:
- in: path
name: uuid
required: true
schema:
type: string
responses:
'204':
description: No Content
'400':
description: Bad Request
'500':
description: Internal Server Error
summary: Delete a source reader
tags:
- Source Readers
x-artie-mcp:
bodilessSuccess: true
destructiveHint: true
exposure: exposed
idempotentHint: true
inputSensitivity: none
openWorldHint: true
operationId: source_reader_delete
outputSensitivity: none
readOnlyHint: false
requiredScopes:
- source_readers:delete
retrySemantics: safe-after-state-check
title: Delete a source reader
triggerDescription: Deletes a source reader unused by any active pipeline. Does not delete the source connector.
get:
description: Retrieves a source reader by UUID, including database, settings, and table configuration. Sensitive fields may be present. MCP clients should echo this payload into source_reader_update.
operationId: source_reader_detail
parameters:
- in: path
name: uuid
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PayloadsSourceReader'
description: OK
'404':
description: Not Found
'500':
description: Internal Server Error
summary: Get a source reader
tags:
- Source Readers
x-artie-mcp:
destructiveHint: false
exposure: exposed
idempotentHint: true
inputSensitivity: none
openWorldHint: false
operationId: source_reader_detail
outputSensitivity: restricted-credentials
readOnlyHint: true
requiredScopes:
- source_readers:read
retrySemantics: safe
title: Get a source reader
triggerDescription: Returns a source reader by uuid from pipeline_detail.sourceReaderUUID, not a pipeline uuid or connector uuid. Includes database, tablesConfig, and settings (replicationSlotOverride, publicationNameOverride, heartbeats). Sensitive fields may be present. Echo this into source_reader_update; do not invent a partial body. If pipeline_start 400s that two readers share slot artie, GET this, set settings.replicationSlotOverride to a unique lowercase name (digits and underscores, <=63), POST source_reader_update, then retry start.
post:
description: Updates an existing source reader by UUID. Echo the last source_reader_detail payload and change only the intended fields; omitting name, database, or connectorUUID overwrites them with empty values.
operationId: source_reader_update
parameters:
- in: path
name: uuid
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PayloadsSourceReader'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PayloadsSourceReader'
description: OK
'400':
description: Bad Request
'500':
description: Internal Server Error
summary: Update a source reader
tags:
- Source Readers
x-artie-mcp:
destructiveHint: false
exposure: exposed
idempotentHint: false
inputSensitivity: restricted-credentials
openWorldHint: false
operationId: source_reader_update
outputSensitivity: restricted-credentials
readOnlyHint: false
requiredScopes:
- source_readers:write
retrySemantics: unsafe
title: Update a source reader
triggerDescription: Applies a SourceReader from source_reader_detail. Echo the last GET and change only the intended fields. Omitting name, database, or connectorUUID blanks them. To fix a duplicate Postgres slot (pipeline_start 400 that two readers share artie), set settings.replicationSlotOverride to a unique lowercase name, then pipeline_start. This is not pipeline_update or connector_update.
/source-readers/{uuid}/deploy:
post:
description: Deploys a shared source reader to the data plane. The source reader must be shared and pass validation before it can be deployed.
operationId: source_reader_deploy
parameters:
- in: path
name: uuid
required: true
schema:
type: string
responses:
'204':
description: No Content
'400':
description: Bad Request
'500':
description: Internal Server Error
summary: Deploy a source reader
tags:
- Source Readers
x-artie-mcp:
bodilessSuccess: true
destructiveHint: false
exposure: exposed
idempotentHint: false
inputSensitivity: none
openWorldHint: true
operationId: source_reader_deploy
outputSensitivity: none
readOnlyHint: false
requiredScopes:
- source_readers:write
retrySemantics: safe-after-state-check
title: Deploy a source reader
triggerDescription: Deploys a shared, validated source reader. To take a draft pipeline live, use pipeline_start.
/source-readers/{uuid}/status:
post:
description: Changes the status of a shared source reader (e.g. running, paused). Only shared source readers are supported; for non-shared source readers, use the pipeline status endpoint instead.
operationId: source_reader_update_status
parameters:
- in: path
name: uuid
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RouterSourceReaderUpdateStatusRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PayloadsSourceReader'
description: OK
'400':
description: Bad Request
'500':
description: Internal Server Error
summary: Update source reader status
tags:
- Source Readers
x-artie-mcp:
destructiveHint: false
exclusionReason: Returns source-reader configuration that can contain credentials.
exposure: excluded
idempotentHint: false
inputSensitivity: none
openWorldHint: true
operationId: source_reader_update_status
outputSensitivity: restricted-credentials
readOnlyHint: false
remediation: Change source-reader status through the authenticated Dashboard setup flow.
requiredScopes:
- source_readers:write
retrySemantics: safe-after-state-check
title: Update source reader status
triggerDescription: Use when you need to update source reader status.
/source-readers/validate-unsaved:
post:
description: Validates a source reader configuration without persisting it.
operationId: source_reader_validate_unsaved
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RouterSourceReaderValidateUnsavedRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RouterSourceReaderValidateUnsavedResponse'
description: OK
'204':
description: No Content
'500':
description: Internal Server Error
summary: Validate an unsaved source reader
tags:
- Source Readers
x-artie-mcp:
bodilessSuccess: true
destructiveHint: false
exclusionReason: Accepts unsaved source-reader configuration that can contain credentials.
exposure: excluded
idempotentHint: true
inputSensitivity: restricted-credentials
openWorldHint: true
operationId: source_reader_validate_unsaved
outputSensitivity: none
readOnlyHint: true
remediation: Validate source-reader credentials through the authenticated Dashboard setup flow.
requiredScopes:
- source_readers:read
retrySemantics: safe
title: Validate an unsaved source reader
triggerDescription: Use when you need to validate an unsaved source reader.
components:
schemas:
RouterSourceReaderUpdateStatusRequest:
properties:
status:
$ref: '#/components/schemas/EnumsSourceReaderStatus'
required:
- status
type: object
PayloadsSourceReaderTable:
properties:
excludeColumns:
items:
type: string
type: array
includeColumns:
items:
type: string
type: array
name:
type: string
schema:
type: string
unifyAcrossDatabases:
type: boolean
unifyAcrossSchemas:
type: boolean
type: object
PayloadsAzureBlobStorageConfig:
properties:
accountURL:
type: string
containerName:
type: string
sasToken:
type: string
type: object
RouterSourceReaderValidateUnsavedRequest:
properties:
sourceReader:
$ref: '#/components/schemas/PayloadsSourceReader'
required:
- sourceReader
type: object
RouterSourceReaderValidateUnsavedResponse:
properties:
error:
type: string
required:
- error
type: object
EnumsMSSQLArchiveLocationType:
enum:
- azure_blob
- smb_share
type: string
PayloadsSourceReaderSettingsPayload:
properties:
archiveLocationType:
$ref: '#/components/schemas/EnumsMSSQLArchiveLocationType'
archiveLogPassword:
type:
- 'null'
- string
archiveLogPath:
type:
- 'null'
- string
archiveLogPrivateLinkUUID:
format: uuid
type:
- 'null'
- string
archiveLogUsername:
type:
- 'null'
- string
azureBlobStorageConfig:
$ref: '#/components/schemas/PayloadsAzureBlobStorageConfig'
backfillBatchSize:
minimum: 0
type:
- 'null'
- integer
backfillDefaults:
$ref: '#/components/schemas/PayloadsBackfillDefaultsPayload'
collectionScopedMode:
type:
- 'null'
- boolean
compositeTypesAsText:
type:
- 'null'
- boolean
databasesToSync:
items:
type: string
type:
- 'null'
- array
disableAutoFetchTables:
type:
- 'null'
- boolean
disableFullDocumentBeforeChange:
type:
- 'null'
- boolean
disableNoCursorTimeout:
type:
- 'null'
- boolean
enableClientSideFullDocumentLookup:
type:
- 'null'
- boolean
enableHeartbeats:
type:
- 'null'
- boolean
enableRelationMessageCaching:
type:
- 'null'
- boolean
enableSchemaHistoryCompaction:
type:
- 'null'
- boolean
maxConnIdleTimeSeconds:
type:
- 'null'
- integer
messageCompression:
enum:
- gzip
- ''
- null
type:
- 'null'
- string
mssqlChangeTrackingConcurrency:
type:
- 'null'
- integer
mssqlChangeTrackingMaxIdleConns:
type:
- 'null'
- integer
mssqlChangeTrackingPollIntervalMs:
minimum: 0
type:
- 'null'
- integer
mssqlReplicationMethod:
type:
- 'null'
- string
oneTopicPerSchema:
type:
- 'null'
- boolean
publicationAutoCreateMode:
type:
- 'null'
- string
publicationNameOverride:
type:
- 'null'
- string
publishViaPartitionRoot:
type:
- 'null'
- boolean
replicationSlotOverride:
type:
- 'null'
- string
s3PathMappings:
items:
$ref: '#/components/schemas/PayloadsS3PathMapping'
type:
- 'null'
- array
unifyAcrossDatabases:
type:
- 'null'
- boolean
unifyAcrossDatabasesRegex:
type:
- 'null'
- string
unifyAcrossSchemas:
type:
- 'null'
- boolean
unifyAcrossSchemasMaxParallelism:
maximum: 3
minimum: 0
type:
- 'null'
- integer
unifyAcrossSchemasRegex:
type:
- 'null'
- string
useAdvanceOnPrimaryKeepAlive:
type:
- 'null'
- boolean
useFailoverReplicationSlot:
type:
- 'null'
- boolean
useNumericTypesForMoney:
type:
- 'null'
- boolean
useReaderForOracleStreaming:
type:
- 'null'
- boolean
type: object
PayloadsSourceReaderTablesConfig:
additionalProperties:
$ref: '#/components/schemas/PayloadsSourceReaderTable'
type:
- 'null'
- object
PayloadsS3Parser:
properties:
columnOrder:
items:
type: string
type: array
csv:
$ref: '#/components/schemas/PayloadsS3CSVParser'
type:
enum:
- csv
- json
- parquet
- ach
type: string
required:
- type
type: object
PayloadsBackfillDefaultsPayload:
properties:
chunkSize:
maximum: 1e+08
minimum: 100000
type: integer
pagination:
enum:
- client
- server
type: string
parallelism:
maximum: 50
minimum: 1
type: integer
preset:
enum:
- normal
- performance
type: string
readMode:
enum:
- primaryKey
- range
- ctid
type: string
type: object
EnumsSourceReaderStatus:
enum:
- draft
- paused
- running
type: string
PayloadsS3MetadataColumns:
properties:
columns:
items:
enum:
- artieSourcePath
- artieSourceFileName
- artieSourceLastModified
- artieSourceETag
- artieSourceRecordNumber
- artieSourceIngestedAt
type: string
type: array
type: object
RouterSourceReaderCreateRequest:
properties:
connectorUUID:
format: uuid
type: string
containerName:
type: string
dataPlaneName:
type: string
database:
type: string
isShared:
type: boolean
name:
type: string
settings:
$ref: '#/components/schemas/PayloadsSourceReaderSettingsPayload'
tablesConfig:
$ref: '#/components/schemas/PayloadsSourceReaderTablesConfig'
required:
- connectorUUID
type: object
PayloadsS3Match:
properties:
fileNameRegex:
type: string
type: object
PayloadsS3PathMapping:
properties:
id:
type: string
match:
$ref: '#/components/schemas/PayloadsS3Match'
metadata:
$ref: '#/components/schemas/PayloadsS3MetadataColumns'
parser:
$ref: '#/components/schemas/PayloadsS3Parser'
prefix:
type: string
primaryKey:
items:
type: string
type: array
referenceID:
type: string
required:
- id
- referenceID
- prefix
- match
- parser
- metadata
type: object
PayloadsS3CSVParser:
properties:
commentPrefix:
type: string
delimiter:
type: string
headers:
items:
type: string
type: array
nullValues:
items:
type: string
type: array
trimWhitespace:
type: boolean
type: object
PayloadsSourceReader:
properties:
apiBaseURL:
type: string
companyUUID:
format: uuid
type: string
connectorUUID:
format: uuid
type: string
containerName:
type: string
createdAt:
format: date-time
type: string
dataPlaneName:
type: string
database:
type: string
environmentUUID:
format: uuid
type: string
isShared:
type:
- 'null'
- boolean
isValid:
type: boolean
name:
type: string
settings:
$ref: '#/components/schemas/PayloadsSourceReaderSettingsPayload'
status:
$ref: '#/components/schemas/EnumsSourceReaderStatus'
tablesConfig:
$ref: '#/components/schemas/PayloadsSourceReaderTablesConfig'
updatedAt:
format: date-time
type: string
uuid:
format: uuid
type: string
required:
- uuid
- name
- companyUUID
- dataPlaneName
- environmentUUID
- connectorUUID
- status
- isValid
- database
- containerName
- settings
type: object
securitySchemes:
ApiKey:
description: API key passed as a Bearer token in the Authorization header.
scheme: bearer
type: http
x-provenance:
method: harvested
publisher: Artie
source: https://raw.githubusercontent.com/artie-labs/artie-api-spec/refs/heads/master/openapi.yaml
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)