Sources

APIs to connect your data

Sources connect your databases to Felt.

With these APIs, you can configure data source connections, credentials, and sync settings to create live maps.

List sources

get

Retrieve all data sources accessible to the authenticated user within the workspace.

Authorizations
Query parameters
workspace_idstringOptional

Only needed when using the API as part of a plugin

Responses
200

Source references

application/json
get
GET /api/v2/sources HTTP/1.1
Host: felt.com
Authorization: Bearer YOUR_API_KEY
Accept: */*
[
  {
    "automatic_sync": "enabled",
    "connection_type": "abs_bucket",
    "created_at": 1,
    "id": "luCHyMruTQ6ozGk3gPJfEB",
    "last_synced_at": 1,
    "links": {
      "self": "https://felt.com/api/v2/sources/V0dnOMOuTd9B9BOsL9C0UjmqC"
    },
    "name": "text",
    "owner_id": "luCHyMruTQ6ozGk3gPJfEB",
    "permissions": {
      "type": "workspace_editors"
    },
    "sync_status": "syncing",
    "type": "source_reference",
    "updated_at": 1,
    "workspace_id": "luCHyMruTQ6ozGk3gPJfEB"
  }
]

Create source

post

Create a new data source connection with authentication credentials and access permissions.

Connecting the Source and inspecting its datasets will happen asynchronously after the API response is returned. To determine when the inspection process has completed, poll the Show Source endpoint and check for sync_status: completed.

Authorizations
Body
connectionone ofRequired
or
or
or
or
or
or
or
or
or
or
or
or
namestringRequired
permissionsone ofOptional
or
or
Responses
202

Source reference

application/json
post
POST /api/v2/sources HTTP/1.1
Host: felt.com
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 269

{
  "connection": {
    "blob_storage_url": "text",
    "credentials": [
      {
        "credential": {
          "connection_string": "text",
          "type": "azure_storage_connection_string"
        },
        "name": "text",
        "use_case": "source_authentication"
      }
    ],
    "type": "abs_bucket"
  },
  "name": "text",
  "permissions": {
    "type": "workspace_editors"
  }
}
{
  "automatic_sync": "enabled",
  "connection_type": "abs_bucket",
  "created_at": 1,
  "id": "luCHyMruTQ6ozGk3gPJfEB",
  "last_synced_at": 1,
  "links": {
    "self": "https://felt.com/api/v2/sources/V0dnOMOuTd9B9BOsL9C0UjmqC"
  },
  "name": "text",
  "owner_id": "luCHyMruTQ6ozGk3gPJfEB",
  "permissions": {
    "type": "workspace_editors"
  },
  "sync_status": "syncing",
  "type": "source_reference",
  "updated_at": 1,
  "workspace_id": "luCHyMruTQ6ozGk3gPJfEB"
}

Update source

post

Update data source connection settings, access permissions, or configuration details.

Connecting the Source and inspecting its datasets will happen asynchronously after the API response is returned. To determine when the inspection process has completed, poll the Show Source endpoint and check for sync_status: completed.

Authorizations
Path parameters
source_idstringRequired

The ID of the source to update

Body
connectionone ofOptional
or
or
or
or
or
or
or
or
or
or
or
or
namestringOptional
permissionsone ofOptional
or
or
Responses
202

Source reference

application/json
post
POST /api/v2/sources/{source_id}/update HTTP/1.1
Host: felt.com
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 119

{
  "connection": {
    "blob_storage_url": "text",
    "type": "abs_bucket"
  },
  "name": "text",
  "permissions": {
    "type": "workspace_editors"
  }
}
{
  "automatic_sync": "enabled",
  "connection_type": "abs_bucket",
  "created_at": 1,
  "id": "luCHyMruTQ6ozGk3gPJfEB",
  "last_synced_at": 1,
  "links": {
    "self": "https://felt.com/api/v2/sources/V0dnOMOuTd9B9BOsL9C0UjmqC"
  },
  "name": "text",
  "owner_id": "luCHyMruTQ6ozGk3gPJfEB",
  "permissions": {
    "type": "workspace_editors"
  },
  "sync_status": "syncing",
  "type": "source_reference",
  "updated_at": 1,
  "workspace_id": "luCHyMruTQ6ozGk3gPJfEB"
}

Sync source

post

Trigger a full data synchronization from the source to update all connected layers with latest data.

Syncing will happen asynchronously after the API response is returned. To determine when the inspection process has completed, poll the Show Source endpoint and check for sync_status: completed.

Authorizations
Path parameters
source_idstringRequired

The ID of the source to sync

Responses
202

Source reference

application/json
post
POST /api/v2/sources/{source_id}/sync HTTP/1.1
Host: felt.com
Authorization: Bearer YOUR_API_KEY
Accept: */*
{
  "automatic_sync": "enabled",
  "connection_type": "abs_bucket",
  "created_at": 1,
  "id": "luCHyMruTQ6ozGk3gPJfEB",
  "last_synced_at": 1,
  "links": {
    "self": "https://felt.com/api/v2/sources/V0dnOMOuTd9B9BOsL9C0UjmqC"
  },
  "name": "text",
  "owner_id": "luCHyMruTQ6ozGk3gPJfEB",
  "permissions": {
    "type": "workspace_editors"
  },
  "sync_status": "syncing",
  "type": "source_reference",
  "updated_at": 1,
  "workspace_id": "luCHyMruTQ6ozGk3gPJfEB"
}

Get source

get

Retrieve detailed configuration and connection information for a specific data source.

Authorizations
Path parameters
source_idstringRequired

The ID of the source to show

Responses
200

Source

application/json
get
GET /api/v2/sources/{source_id} HTTP/1.1
Host: felt.com
Authorization: Bearer YOUR_API_KEY
Accept: */*
{
  "automatic_sync": "enabled",
  "connection": {
    "blob_storage_url": "text",
    "credentials": [
      {
        "created_at": 1,
        "credential": {
          "connection_string": "text",
          "type": "azure_storage_connection_string"
        },
        "id": "luCHyMruTQ6ozGk3gPJfEB",
        "name": "text",
        "source_id": "luCHyMruTQ6ozGk3gPJfEB",
        "updated_at": 1,
        "use_case": "source_authentication"
      }
    ],
    "type": "abs_bucket"
  },
  "created_at": 1,
  "datasets": [
    {
      "created_at": 1,
      "description": "text",
      "geometry_type": "polygon",
      "id": "luCHyMruTQ6ozGk3gPJfEB",
      "inspection_status": "completed",
      "name": "text",
      "type": "dataset",
      "updated_at": 1
    }
  ],
  "id": "luCHyMruTQ6ozGk3gPJfEB",
  "last_synced_at": 1,
  "name": "text",
  "owner_id": "luCHyMruTQ6ozGk3gPJfEB",
  "permissions": {
    "type": "workspace_editors"
  },
  "sync_status": "syncing",
  "type": "source",
  "updated_at": 1,
  "workspace_id": "luCHyMruTQ6ozGk3gPJfEB"
}

Delete source

delete

Permanently delete a data source connection and all its associated layers and data.

Authorizations
Path parameters
source_idstringRequired

The ID of the source to delete

Responses
204

No Content

delete
DELETE /api/v2/sources/{source_id} HTTP/1.1
Host: felt.com
Authorization: Bearer YOUR_API_KEY
Accept: */*

No content

Create source credential

post

Add authentication credentials to an existing data source for secure access.

Some sources may need to be configured with additional credentials to work with Felt. Access to S3 Buckets, for example, may be protected by IAM policies. Adding a SourceCredential-AwsAssumeRole credential to your S3 Bucket source allows Felt to connect to a private source.

Sensitive fields in credentials, like SourceCredential-KeyPair.private_key, will be returned as felt:redacted.

Authorizations
Path parameters
source_idstringRequired

The ID of the source to attach the credential

Body
credentialone ofRequired
or
or
or
or
or
namestringRequired
use_casestring · enumRequiredPossible values:
Responses
202

Source credential created

application/json
post
POST /api/v2/sources/{source_id}/credentials HTTP/1.1
Host: felt.com
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 137

{
  "credential": {
    "role_arn": "text",
    "role_session_name": "text",
    "type": "aws_assume_role"
  },
  "name": "text",
  "use_case": "stac_api_authentication"
}
{
  "created_at": 1,
  "credential": {
    "role_arn": "text",
    "role_session_name": "text",
    "type": "aws_assume_role"
  },
  "id": "luCHyMruTQ6ozGk3gPJfEB",
  "name": "text",
  "source_id": "luCHyMruTQ6ozGk3gPJfEB",
  "updated_at": 1,
  "use_case": "stac_api_authentication"
}

Update source credential

post

Update existing authentication credentials for a data source connection.

Sensitive fields in credentials, like SourceCredential-KeyPair.private_key, will be returned as felt:redacted.

Authorizations
Path parameters
source_idstringRequired

The ID of the source that the credential belongs to

credential_idstringRequired

The ID of the credential

Body
credentialone ofOptional
or
or
or
or
or
namestringOptional
use_casestring · enumOptionalPossible values:
Responses
202

Source credential updated

application/json
post
POST /api/v2/sources/{source_id}/credentials/{credential_id}/update HTTP/1.1
Host: felt.com
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 137

{
  "credential": {
    "role_arn": "text",
    "role_session_name": "text",
    "type": "aws_assume_role"
  },
  "name": "text",
  "use_case": "stac_api_authentication"
}
{
  "created_at": 1,
  "credential": {
    "role_arn": "text",
    "role_session_name": "text",
    "type": "aws_assume_role"
  },
  "id": "luCHyMruTQ6ozGk3gPJfEB",
  "name": "text",
  "source_id": "luCHyMruTQ6ozGk3gPJfEB",
  "updated_at": 1,
  "use_case": "stac_api_authentication"
}

Delete source credential

delete

Remove authentication credentials from a data source connection.

Authorizations
Path parameters
source_idstringRequired

The ID of the source that the credential belongs to

credential_idstringRequired

The ID of the credential to delete

Responses
204

No Content

delete
DELETE /api/v2/sources/{source_id}/credentials/{credential_id} HTTP/1.1
Host: felt.com
Authorization: Bearer YOUR_API_KEY
Accept: */*

No content

Was this helpful?