What can you do with it?

The Segment API allows you to manage your data infrastructure and ETL pipelines. You can create and manage data warehouses, configure data sources, set up destinations for your data, and handle all aspects of your data integration workflow with comprehensive warehouse management, source configuration, and destination routing.

How to use it?

Basic Command Structure

/your-segment-connection [action] [required-parameters] [optional-parameters]

Parameters

Required:

  • action - The action to perform (list, create, get, update, delete)
  • entity - The entity type (warehouse, source, destination)
  • id - Entity ID for specific operations

Optional:

  • name - Entity name
  • type - Warehouse type (redshift, bigquery, snowflake)
  • slug - Entity slug identifier
  • platform - Platform type (web, mobile, server)
  • categories - Entity categories
  • connection - Connection configuration

Tools

List All Warehouses

Retrieve a list of all warehouses in your Segment workspace.

Parameters:

  • limit (optional) - Number of warehouses to return
  • offset (optional) - Number of warehouses to skip

Example:

/your-segment-connection
action: list
entity: warehouses
limit: 20
offset: 0

Response:

{
  "warehouses": [
    {
      "id": "warehouse_123",
      "name": "My Data Warehouse",
      "type": "redshift",
      "connection": {
        "host": "example.redshift.amazonaws.com",
        "port": 5439,
        "database": "analytics",
        "username": "user",
        "schema": "public"
      },
      "status": "active",
      "created_at": "2023-04-10T10:30:00Z"
    },
    {
      "id": "warehouse_456",
      "name": "BigQuery Warehouse",
      "type": "bigquery",
      "connection": {
        "project_id": "my-gcp-project",
        "dataset": "analytics"
      },
      "status": "active",
      "created_at": "2023-04-11T08:59:18Z"
    }
  ]
}

Create New Warehouse

Add a new warehouse to your Segment workspace.

Parameters:

  • name (required) - Warehouse name
  • type (required) - Warehouse type (redshift, bigquery, snowflake)
  • connection (required) - Connection configuration object
  • account (for Snowflake) - Snowflake account identifier
  • warehouse (for Snowflake) - Snowflake warehouse name
  • database (required) - Database name
  • schema (required) - Schema name
  • username (required) - Username for connection
  • role (optional) - Role for connection

Example:

/your-segment-connection
action: create
entity: warehouse
name: New Data Warehouse
type: snowflake
connection: {
  "account": "my_snowflake_account",
  "warehouse": "COMPUTE_WH",
  "database": "ANALYTICS_DB",
  "schema": "PUBLIC",
  "username": "user",
  "role": "SYSADMIN"
}

Response:

{
  "id": "warehouse_789",
  "name": "New Data Warehouse",
  "type": "snowflake",
  "connection": {
    "account": "my_snowflake_account",
    "warehouse": "COMPUTE_WH",
    "database": "ANALYTICS_DB",
    "schema": "PUBLIC",
    "username": "user",
    "role": "SYSADMIN"
  },
  "status": "active",
  "created_at": "2025-01-12T12:00:00Z"
}

Get Warehouse by ID

Retrieve details of a specific warehouse using its unique ID.

Parameters:

  • warehouse_id (required) - Warehouse ID to retrieve

Example:

/your-segment-connection
action: get
entity: warehouse
warehouse_id: warehouse_123

Response:

{
  "id": "warehouse_123",
  "name": "My Data Warehouse",
  "type": "redshift",
  "connection": {
    "host": "example.redshift.amazonaws.com",
    "port": 5439,
    "database": "analytics",
    "username": "user",
    "schema": "public"
  },
  "status": "active",
  "created_at": "2023-04-10T10:30:00Z",
  "updated_at": "2023-04-11T08:59:18Z"
}

Update Warehouse

Update the configuration of an existing warehouse.

Parameters:

  • warehouse_id (required) - Warehouse ID to update
  • name (optional) - New warehouse name
  • connection (optional) - Updated connection configuration

Example:

/your-segment-connection
action: update
entity: warehouse
warehouse_id: warehouse_123
name: Updated Warehouse Name
connection: {
  "host": "new-example.redshift.amazonaws.com",
  "port": 5439,
  "database": "new_analytics",
  "username": "new_user",
  "schema": "public"
}

Response:

{
  "id": "warehouse_123",
  "name": "Updated Warehouse Name",
  "type": "redshift",
  "connection": {
    "host": "new-example.redshift.amazonaws.com",
    "port": 5439,
    "database": "new_analytics",
    "username": "new_user",
    "schema": "public"
  },
  "status": "active",
  "updated_at": "2025-01-12T12:00:00Z"
}

Delete Warehouse

Remove a warehouse from your Segment workspace.

Parameters:

  • warehouse_id (required) - Warehouse ID to delete

Example:

/your-segment-connection
action: delete
entity: warehouse
warehouse_id: warehouse_123

Response:

{
  "status": 204,
  "message": "Warehouse deleted successfully."
}

List All Sources

Retrieve a list of all sources in your Segment workspace.

Parameters:

  • limit (optional) - Number of sources to return
  • offset (optional) - Number of sources to skip

Example:

/your-segment-connection
action: list
entity: sources
limit: 20

Response:

{
  "sources": [
    {
      "id": "source_123",
      "name": "Website Analytics",
      "slug": "website_analytics",
      "metadata": {
        "platform": "web",
        "categories": ["analytics"]
      },
      "status": "active",
      "created_at": "2023-04-10T10:30:00Z"
    },
    {
      "id": "source_456",
      "name": "Mobile App",
      "slug": "mobile_app",
      "metadata": {
        "platform": "mobile",
        "categories": ["marketing"]
      },
      "status": "active",
      "created_at": "2023-04-11T08:59:18Z"
    }
  ]
}

Create New Source

Add a new source to your Segment workspace.

Parameters:

  • name (required) - Source name
  • slug (required) - Source slug identifier
  • platform (required) - Platform type (web, mobile, server)
  • categories (required) - Array of categories (analytics, marketing, crm)

Example:

/your-segment-connection
action: create
entity: source
name: New Source
slug: new_source
platform: server
categories: ["crm"]

Response:

{
  "id": "source_789",
  "name": "New Source",
  "slug": "new_source",
  "metadata": {
    "platform": "server",
    "categories": ["crm"]
  },
  "status": "active",
  "created_at": "2025-01-12T12:00:00Z"
}

Get Source by ID

Retrieve details of a specific source using its unique ID.

Parameters:

  • source_id (required) - Source ID to retrieve

Example:

/your-segment-connection
action: get
entity: source
source_id: source_123

Response:

{
  "id": "source_123",
  "name": "Website Analytics",
  "slug": "website_analytics",
  "metadata": {
    "platform": "web",
    "categories": ["analytics"]
  },
  "status": "active",
  "created_at": "2023-04-10T10:30:00Z",
  "updated_at": "2023-04-11T08:59:18Z"
}

Update Source

Update the configuration of an existing source.

Parameters:

  • source_id (required) - Source ID to update
  • name (optional) - New source name
  • platform (optional) - Updated platform type
  • categories (optional) - Updated categories array

Example:

/your-segment-connection
action: update
entity: source
source_id: source_123
name: Updated Source Name
categories: ["analytics", "marketing"]

Response:

{
  "id": "source_123",
  "name": "Updated Source Name",
  "slug": "website_analytics",
  "metadata": {
    "platform": "web",
    "categories": ["analytics", "marketing"]
  },
  "status": "active",
  "updated_at": "2025-01-12T12:00:00Z"
}

Delete Source

Remove a source from your Segment workspace.

Parameters:

  • source_id (required) - Source ID to delete

Example:

/your-segment-connection
action: delete
entity: source
source_id: source_123

Response:

{
  "status": 204,
  "message": "Source deleted successfully."
}

List All Destinations

Retrieve a list of all destinations in your Segment workspace.

Parameters:

  • limit (optional) - Number of destinations to return
  • offset (optional) - Number of destinations to skip

Example:

/your-segment-connection
action: list
entity: destinations
limit: 20

Response:

{
  "destinations": [
    {
      "id": "destination_123",
      "name": "Google Analytics",
      "slug": "google_analytics",
      "metadata": {
        "platform": "web",
        "categories": ["analytics"]
      },
      "status": "active",
      "created_at": "2023-04-10T10:30:00Z"
    },
    {
      "id": "destination_456",
      "name": "Facebook Ads",
      "slug": "facebook_ads",
      "metadata": {
        "platform": "marketing",
        "categories": ["ads"]
      },
      "status": "active",
      "created_at": "2023-04-11T08:59:18Z"
    }
  ]
}

Create New Destination

Add a new destination to your Segment workspace.

Parameters:

  • name (required) - Destination name
  • slug (required) - Destination slug identifier
  • platform (required) - Platform type (web, mobile, server)
  • categories (required) - Array of categories (analytics, marketing, crm, ads)

Example:

/your-segment-connection
action: create
entity: destination
name: New Destination
slug: new_destination
platform: server
categories: ["crm"]

Response:

{
  "id": "destination_789",
  "name": "New Destination",
  "slug": "new_destination",
  "metadata": {
    "platform": "server",
    "categories": ["crm"]
  },
  "status": "active",
  "created_at": "2025-01-12T12:00:00Z"
}

Get Destination by ID

Retrieve details of a specific destination using its unique ID.

Parameters:

  • destination_id (required) - Destination ID to retrieve

Example:

/your-segment-connection
action: get
entity: destination
destination_id: destination_123

Response:

{
  "id": "destination_123",
  "name": "Google Analytics",
  "slug": "google_analytics",
  "metadata": {
    "platform": "web",
    "categories": ["analytics"]
  },
  "status": "active",
  "created_at": "2023-04-10T10:30:00Z",
  "updated_at": "2023-04-11T08:59:18Z"
}

Update Destination

Update the configuration of an existing destination.

Parameters:

  • destination_id (required) - Destination ID to update
  • name (optional) - New destination name
  • platform (optional) - Updated platform type
  • categories (optional) - Updated categories array

Example:

/your-segment-connection
action: update
entity: destination
destination_id: destination_123
name: Updated Destination Name
platform: marketing
categories: ["ads", "analytics"]

Response:

{
  "id": "destination_123",
  "name": "Updated Destination Name",
  "slug": "google_analytics",
  "metadata": {
    "platform": "marketing",
    "categories": ["ads", "analytics"]
  },
  "status": "active",
  "updated_at": "2025-01-12T12:00:00Z"
}

Delete Destination

Remove a destination from your Segment workspace.

Parameters:

  • destination_id (required) - Destination ID to delete

Example:

/your-segment-connection
action: delete
entity: destination
destination_id: destination_123

Response:

{
  "status": 204,
  "message": "Destination deleted successfully."
}

Notes

Warehouse types include redshift, bigquery, and snowflake with specific connection parameters for each. Platform types include web, mobile, and server for different data sources. Categories help organize entities by purpose: analytics, marketing, crm, and ads. All entities support full CRUD operations. Uses Paragon proxy connection. Status indicates active or inactive state. Slugs provide URL-friendly identifiers. Connection configurations vary by warehouse type. Metadata includes platform and category information for organization. Deletion returns HTTP 204 status code. All timestamps use ISO 8601 format.