Skip to main content
POST
/
v1
/
admin
/
airbyte-sources
Create an Airbyte source
curl --request POST \
  --url https://api.withsplendor.com/v1/admin/airbyte-sources \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'x-splendor-tenant-id: <x-splendor-tenant-id>' \
  --data '
{
  "bucket": "<string>",
  "connector_key": "<string>",
  "connector_name": "<string>",
  "dataset_id": "<string>",
  "iam_role_arn": "<string>",
  "provider_key": "<string>",
  "source_key": "<string>",
  "source_name": "<string>",
  "cron_expression": "<string>",
  "enabled": true,
  "external_id": "<string>",
  "parse_config": {},
  "prefix": "",
  "retention_days": 2,
  "schedule_type": "manual",
  "search_config": {
    "text_fields": [
      {
        "field": "<string>",
        "boost": 1,
        "natural_language": true
      }
    ]
  },
  "semantic_config": {
    "document_embeddings": {
      "fields": [
        {
          "field": "<string>",
          "max_chars": 4000
        }
      ]
    },
    "vocabulary": {
      "fields": [
        {
          "field": "<string>"
        }
      ]
    }
  },
  "streams": [
    "<string>"
  ],
  "transform_config": {}
}
'
{
  "airbyte": {
    "airbyte_connection_id": "conn_1",
    "airbyte_destination_id": "dst_1",
    "airbyte_source_definition_id": "def_1",
    "airbyte_source_definition_name": "Stripe",
    "airbyte_source_id": "airbyte_src_1",
    "connection_status": "active",
    "credential_status": "ready",
    "cron_expression": null,
    "destination_status": "ready",
    "oauth_mode": "airbyte",
    "provider_key": "stripe",
    "schedule_type": "manual",
    "source_id": 12,
    "stream_config": {
      "streams": [
        "charges"
      ]
    }
  },
  "connector": {
    "config": {},
    "connector_id": 7,
    "connector_key": "stripe",
    "connector_type": "airbyte",
    "created_at": "2026-01-15T09:30:00Z",
    "enabled": true,
    "name": "Stripe",
    "tenant_id": "acme",
    "updated_at": "2026-01-15T09:30:00Z"
  },
  "source": {
    "bucket": "acme-logs",
    "connector_id": null,
    "created_at": "2026-01-15T09:30:00Z",
    "dataset_id": "app-logs",
    "enabled": true,
    "external_id_configured": false,
    "format": "jsonl",
    "iam_role_arn": "arn:aws:iam::123456789012:role/acme-splendor",
    "ingest_token_configured": true,
    "ingest_token_created_at": "2026-01-15T09:30:00Z",
    "ingest_token_last_used_at": "2026-01-15T09:30:00Z",
    "ingest_token_revoked_at": null,
    "intake_role_arn": null,
    "name": "Application logs",
    "parse_config": {},
    "prefix": "",
    "retention_days": null,
    "search_config": {
      "text_fields": []
    },
    "semantic_config": {
      "document_embeddings": {
        "fields": []
      },
      "vocabulary": {
        "fields": []
      }
    },
    "source_id": 12,
    "source_key": "app-logs",
    "source_type": "hosted",
    "tenant_id": "acme",
    "transform_config": {},
    "updated_at": "2026-01-15T09:30:00Z"
  }
}

Authorizations

Authorization
string
header
required

API token issued from the Splendor console.

Headers

x-splendor-tenant-id
string
required

Selects the tenant (workspace) the request acts within.

Body

application/json
bucket
string
required
Required string length: 1 - 255
connector_key
string
required
Required string length: 1 - 128
connector_name
string
required
Required string length: 1 - 255
dataset_id
string
required
Required string length: 1 - 128
iam_role_arn
string
required
Required string length: 1 - 2048
provider_key
string
required
Required string length: 1 - 64
source_key
string
required
Required string length: 1 - 128
source_name
string
required
Required string length: 1 - 255
cron_expression
string | null
Maximum string length: 255
enabled
boolean
default:true
external_id
string | null
Required string length: 1 - 255
parse_config
Parse Config · object
prefix
string
default:""
Maximum string length: 1024
retention_days
integer | null
Required range: x >= 1
schedule_type
enum<string>
default:manual
Available options:
manual,
cron
search_config
SearchConfig · object
semantic_config
SemanticConfig · object
streams
string[]
transform_config
Transform Config · object

Response

Successful Response

airbyte
AirbyteRefItem · object
required
connector
ConnectorItem · object
required
Example:
{
"config": {},
"connector_id": 7,
"connector_key": "stripe",
"connector_type": "airbyte",
"created_at": "2026-01-15T09:30:00Z",
"enabled": true,
"name": "Stripe",
"tenant_id": "acme",
"updated_at": "2026-01-15T09:30:00Z"
}
source
SourceItem · object
required
Example:
{
"bucket": "acme-logs",
"connector_id": null,
"created_at": "2026-01-15T09:30:00Z",
"dataset_id": "app-logs",
"enabled": true,
"external_id_configured": false,
"format": "jsonl",
"iam_role_arn": "arn:aws:iam::123456789012:role/acme-splendor",
"ingest_token_configured": true,
"ingest_token_created_at": "2026-01-15T09:30:00Z",
"ingest_token_last_used_at": "2026-01-15T09:30:00Z",
"ingest_token_revoked_at": null,
"intake_role_arn": null,
"name": "Application logs",
"parse_config": {},
"prefix": "",
"retention_days": null,
"search_config": { "text_fields": [] },
"semantic_config": {
"document_embeddings": { "fields": [] },
"vocabulary": { "fields": [] }
},
"source_id": 12,
"source_key": "app-logs",
"source_type": "hosted",
"tenant_id": "acme",
"transform_config": {},
"updated_at": "2026-01-15T09:30:00Z"
}