Improvado Embedded API V3 provides programmatic access to data extraction, transformation, and loading capabilities.
Authentication
This API supports multiple authentication methods depending on the endpoint:
Basic Authentication
Used for workspace-agnostic operations such as:
- Creating access tokens (
POST /api/v3/token) - Listing workspaces (
GET /api/v3/workspaces) - Managing workspaces (
POST /api/v3/workspaces,GET /api/v3/workspaces/{id},PUT /api/v3/workspaces/{id}) - Getting iframe URLs (
POST /api/v3/get_iframe_url) - Listing available recipes (
GET /api/v3/recipes) etc.
Format: Authorization: Basic <base64(username:password)>
Bearer Token Authentication
Used for workspace-scoped operations after obtaining a token from /api/v3/token. The token is scoped to a specific workspace.
Format: Authorization: Bearer <token>
Cookie Authentication
Alternative to Bearer token for browser-based integrations. When using cookie authentication, you must include the workspace ID in the request header.
Cookie: dts_session_id=<session_token>
Required Header: X-IM-WORKSPACE-ID: <workspace_id>
Workspace Scoping
Most API operations are workspace-scoped. After authenticating with Basic Auth, obtain a workspace-specific token using POST /api/v3/token with the desired workspace_id. This token provides access only to resources within that workspace, ensuring isolation between different customers or projects.
- Provide username/password credentials
- Complete OAuth flows
- Configure additional connection parameters
- Create connection via iframe (provides OAuth or credential input)
- Validate connection status
- Use connection to create extracts
- Monitor connection health and refresh tokens as needed
- Available fields from a data source
- Default extraction settings and parameters
- Supported date ranges and filters
- Which connection and account to extract from
- Which extract template to use
- Custom field selections and filters
- Schedule and date range configuration
- Where to store the extracted data (data table)
- Create extract with desired configuration
- Extraction runs automatically on schedule or on-demand
- Data is stored in the associated data table
- Monitor extraction status and history
- Data warehouses (Snowflake, BigQuery, Redshift)
- Databases (PostgreSQL, MySQL)
- File storage (S3, Google Cloud Storage)
- Business intelligence tools
- Authentication credentials for the destination
- Target configuration (database, schema, table naming patterns)
- Load behavior settings (append, replace, upsert)
- Path and formatting rules
- Source data table selection
- Destination connection and target location
- Load schedule and frequency
- Data transformation and mapping rules
- Load mode (full refresh, incremental, etc.)
- Creating and managing data source connections (OAuth flows, credential input)
- Configuring destination connections
- Managing connection settings and permissions
- List system + custom roles (each role carries its assigned
user_count). - Fetch the curated permission catalog: a stable, ordered list of product layers with
permissions, including human-readable
titleanddescriptionfor each entry. - Create, rename, edit, and delete custom roles. System roles are read-only.
- List users currently assigned to a role for impact preview.
reassigned_users_count.
All Roles endpoints require an agency-chief Basic Auth credential and the can_use_embedded_api
flag enabled for the agency.- Separate resources for different customers or projects
- Maintain data isolation and security boundaries
- Control access through workspace-scoped tokens
- Organize resources by environment (dev, staging, production)
- Setting up end-to-end data pipelines (source → extract → load → destination)
- Configuring multiple related extracts at once
- Applying best-practice configurations
- Register an endpoint with the URL of your receiver and the event types you care about.
Improvado returns an
idand asecret, and the endpoint is created inunverifiedstatus. - Verify ownership by calling the verify action. Improvado sends a GET request to your URL with
X-Improvado-Verify-TokenandX-Improvado-Challengeheaders. Your receiver must respond with HTTP 200 and the challenge value as the response body. After successful verification the endpoint moves toactive. - Receive events. Improvado POSTs JSON payloads
{id, type, timestamp, data}to your URL. Each request is signed with HMAC-SHA256 in theX-Improvado-Signatureheader (using the endpoint's secret) and includesX-Improvado-Idempotency-Keyfor safe retry handling. - Rotate the secret at any time. Rotation invalidates the previous secret immediately and resets the
endpoint to
unverifieduntil you re-verify.
[0s, 2s, 5s, 10s]. Receivers should aim to
respond within a few seconds and return 2xx for successful processing.
