Ecosystem Workbench

Public API

Send a Workbench JWT or a public API key.

Entities Data Management Catalogs Predictions Jobs Campaigns Analytics
Either
Authorization: Bearer <jwt>orX-API-Key: ewb_public_...
Gateway
https://mewbserver.ecosystem.ai
Base path
/public/v1
MCP
https://mewbserver.ecosystem.ai/mcp
OpenAPI documentation

Check my API access

Paste a public API key or a Workbench JWT.

Enter a public API key or a Workbench JWT.

Public API Catalog

Filter by group, method, or keyword.

117 endpoints across 16 groups, plus 31 entity collections.

Auth & Health

2
POST /public/v1/auth/login Exchange email/password for a JWT (no public API key). public
GET /public/v1/health Gateway health check. public

Data Management

12
GET /public/v1/data-management/databases List MongoDB databases. data-management:read
POST /public/v1/data-management/databases Create a MongoDB database. data-management:write
GET /public/v1/data-management/databases/{database}/collections List collections in a database. data-management:read
POST /public/v1/data-management/databases/{database}/collections Create a collection. data-management:write
GET /public/v1/data-management/databases/{database}/collections/{collection}/fields List field keys for a collection. data-management:read
GET /public/v1/data-management/databases/{database}/collections/{collection}/indexes List indexes on a collection. data-management:read
POST /public/v1/data-management/databases/{database}/collections/{collection}/indexes Create an index on a collection. data-management:write
POST /public/v1/data-management/databases/{database}/collections/{collection}/documents/query Query documents (limit capped at 1000). data-management:read
POST /public/v1/data-management/databases/{database}/collections/{collection}/documents Insert one document. data-management:write
POST /public/v1/data-management/databases/{database}/collections/{collection}/documents/update Update one document by _id (POST, not PUT). data-management:write
DELETE /public/v1/data-management/databases/{database}/collections/{collection}/documents Delete one document. data-management:write
POST /public/v1/data-management/databases/{database}/collections/{collection}/import Import CSV or JSON (multipart form upload). data-management:write

Contact Catalogs

3
GET /public/v1/catalogs List Contact Sets (not entity collections). catalogs:read
GET /public/v1/catalogs/{catalog_id} Read one Contact Set. catalogs:read
GET /public/v1/catalogs/{catalog_id}/records List records for a Contact Set. contacts:read

Jobs & Predictions

4
GET /public/v1/jobs/{job_id} Read async job status. jobs:read
POST /public/v1/batch-scoring/jobs Start a backend batch-scoring job. predictions:run
GET /public/v1/batch-scoring/jobs/{job_id} Read backend batch-scoring job progress. jobs:read
POST /public/v1/predictions/run Run Spend Personality runtime scoring. predictions:run

Networks (large processing)

9
POST /public/v1/networks/jobs Start graph build/analyze job (largeMode for million-scale). networks:jobs
GET /public/v1/networks/jobs/{job_id} Read Networks job status/progress. networks:read
GET /public/v1/networks/jobs/{job_id}/events SSE (or polled) progress events for a Networks job. networks:read
GET /public/v1/networks/jobs/{job_id}/result Job result: graphId, analysisStats, displayGraph, metricsSummary. networks:read
DELETE /public/v1/networks/jobs/{job_id} Cancel a Networks job. networks:jobs
GET /public/v1/networks/graphs/{graph_id}/display Display sample (≤ displayMaxNodes) for a graphId. networks:read
GET /public/v1/networks/graphs/{graph_id}/metrics Top-K / paginated node metrics from analysis store. networks:read
POST /public/v1/networks/graphs/{graph_id}/analyze Run/re-run core analysis against a cached analysis graph. networks:analyze
POST /public/v1/networks/graphs/{graph_id}/temporal/{category} Temporal analysis (use largeMode + timeField + periodBounds for large corpora). networks:analyze

Spend Personality

5
GET /public/v1/spend-personality/configs List algorithm configs (optional ?name= for RUN_NAME handoff). spend-personality:configs
POST /public/v1/spend-personality/configs Create or upsert a named algorithm config from wizard snapshot. spend-personality:configs
GET /public/v1/spend-personality/configs/{config_id} Read one algorithm config and run_log. spend-personality:configs
POST /public/v1/spend-personality/runs Start a phased or full pipeline (same sp_pipeline steps as the wizard). Poll GET /public/v1/jobs/{job_id} until Completed. Pass running_config_id from the first response on later phase calls so prepare/deploy share leader model ids. Requires jobs:read to poll. spend-personality:runs
POST /public/v1/spend-personality/drift Recompute per-customer personality drift from weekly/monthly score collections onto the selected demographic or generated _customers collection. Poll GET /public/v1/jobs/{job_id}. spend-personality:runs

Money Personality

1
POST /public/v1/money-personality/process Start money personality scoring. Poll GET /public/v1/jobs/{job_id}. money-personality:runs

Sentimental Equilibrium

1
POST /public/v1/sentimental-equilibrium/process Start sentimental equilibrium analysis from prediction logs. Poll GET /public/v1/jobs/{job_id}. sentimental-equilibrium:runs

Interaction Personality

8
GET /public/v1/interaction-personality/configs List saved Interaction Personality configurations. interaction-personality:configs
POST /public/v1/interaction-personality/configs Create or upsert an Interaction Personality configuration. interaction-personality:configs
GET /public/v1/interaction-personality/configs/{config_id} Read one Interaction Personality configuration. interaction-personality:configs
PUT /public/v1/interaction-personality/configs/{config_id} Update an Interaction Personality configuration. interaction-personality:configs
DELETE /public/v1/interaction-personality/configs/{config_id} Delete an Interaction Personality configuration. interaction-personality:configs
POST /public/v1/interaction-personality/process Start Interaction Personality scoring from a saved config_id or the configuration JSON. Poll GET /public/v1/jobs/{job_id}. interaction-personality:runs
POST /public/v1/interaction-personality/events Enqueue one interaction event or a small batch into the config input collection. Returns 202 before Mongo acknowledges. interaction-personality:runs
POST /public/v1/interaction-personality/events/flush Wait until queued events for a user_id have been inserted. interaction-personality:runs

Two-Tower

14
GET /public/v1/two-tower/configs List saved Two-Tower configurations. two-tower:configs
POST /public/v1/two-tower/configs Create or upsert a Two-Tower configuration. two-tower:configs
GET /public/v1/two-tower/configs/{config_id} Read one Two-Tower configuration. two-tower:configs
PUT /public/v1/two-tower/configs/{config_id} Update a Two-Tower configuration. two-tower:configs
POST /public/v1/two-tower/train Start training; poll /public/v1/jobs/{job_id}. two-tower:train
POST /public/v1/two-tower/concept-test Sync concept rank for one customer. two-tower:train
POST /public/v1/two-tower/export-embeddings Export user/item embeddings to Mongo. two-tower:train
POST /public/v1/two-tower/batch-score Batch score top-K offers to a collection. two-tower:train
GET /public/v1/two-tower/predictors List distinct predictors in a flatten collection. two-tower:configs
GET /public/v1/two-tower/predictor-date-bounds Oldest/latest dates and row count for a predictor. two-tower:configs
GET /public/v1/two-tower/runs List recent training runs (optional config_id filter). two-tower:configs
POST /public/v1/two-tower/preview-schema Preview flatten schema for a predictor slice (async job). two-tower:configs
POST /public/v1/two-tower/prepare-feature-frame Create H2O feature frame without training (async job). two-tower:train
POST /public/v1/two-tower/generate-python Generate runnable Python + API explanation for the full pipeline. two-tower:train

LoRA Recommender

12
GET /public/v1/lora/configs List saved LoRA configurations. lora:configs
POST /public/v1/lora/configs Create or upsert a LoRA configuration. lora:configs
GET /public/v1/lora/configs/{config_id} Read one LoRA configuration. lora:configs
PUT /public/v1/lora/configs/{config_id} Update a LoRA configuration. lora:configs
POST /public/v1/lora/train Start LoRA training; poll /public/v1/jobs/{job_id}. lora:train
POST /public/v1/lora/concept-test Sync concept rank for one customer. lora:train
POST /public/v1/lora/export-embeddings Export user/item embeddings to Mongo. lora:train
POST /public/v1/lora/batch-score Batch score top-K offers to a collection. lora:train
GET /public/v1/lora/predictors List distinct predictors in a flatten collection. lora:configs
GET /public/v1/lora/predictor-date-bounds Oldest/latest dates and row count for a predictor. lora:configs
GET /public/v1/lora/runs List recent training runs (optional config_id filter). lora:configs
POST /public/v1/lora/generate-python Generate runnable Python + API explanation for the LoRA pipeline. lora:train

Simulations

10
GET /public/v1/simulations/status In-process simulation engine status. simulation:read
POST /public/v1/simulations/validate-connections Validate Workbench Mongo and pulse responder URL. simulation:read
POST /public/v1/simulations/from-deployment Open or create a simulation linked to a deployment. simulation:runs
POST /public/v1/simulations/run Start recommender or log_replay simulation. Save config via /entities/simulation first (set simulation_type + runs[].log_replay). simulation:runs
POST /public/v1/simulations/cancel Cancel a running simulation by run_uuid. simulation:runs
GET /public/v1/simulations/logs Fetch simulation run logs. simulation:read
DELETE /public/v1/simulations/logs Clear simulation run logs. simulation:runs
GET /public/v1/simulations/results/parameters Parameter/metric outputs (includes HitAtK for log_replay). simulation:read
GET /public/v1/simulations/results/plot Plot outputs for a simulation run. simulation:read
GET /public/v1/simulations/results/options Plot variable options for a simulation run. simulation:read

Ontology

12
GET /public/v1/ontology List ontologies. ontology:read
GET /public/v1/ontology/{ontology_id} Get one ontology document. ontology:read
POST /public/v1/ontology Create an ontology. ontology:write
POST /public/v1/ontology/{ontology_id} Update an ontology (POST — not PUT/PATCH). ontology:write
DELETE /public/v1/ontology/{ontology_id} Delete an ontology. ontology:write
POST /public/v1/ontology/from-data-source Generate-for-me: infer ontology + draft mapping from a MongoDB database.collection. ontology:write
GET /public/v1/ontology/{ontology_id}/mappings List mappings for an ontology. ontology:read
POST /public/v1/ontology/{ontology_id}/mappings Create a mapping document. ontology:write
POST /public/v1/ontology/{ontology_id}/mappings/suggest-multi Generate matches (detected types + Matched status). Preserves Accepted rows. ontology:write
POST /public/v1/ontology/{ontology_id}/mappings/{mapping_id} Update a mapping (POST — not PUT/PATCH). ontology:write
POST /public/v1/ontology/{ontology_id}/resolve-term Resolve a business term to ontology properties/fields. ontology:read
POST /public/v1/ontology/{ontology_id}/resolve-question Resolve an NL question to mongo_filter / sql_filter. ontology:read

Campaigns

18
GET /public/v1/campaigns List campaigns. entities:read
GET /public/v1/campaigns/channel-catalog Platform campaign delivery channel catalog (email, WhatsApp, WhatsApp Local, Python, …). entities:read
GET /public/v1/campaigns/{campaign_id} Read one campaign. entities:read
GET /public/v1/campaigns/{campaign_id}/channels Campaign channel options, selection, send_track, and platform catalog. entities:read
PUT /public/v1/campaigns/{campaign_id}/channel-selection Set Campaign Management channel selection (option_ids). entities:write
POST /public/v1/campaigns/{campaign_id}/trigger Trigger a campaign run. entities:write
POST /public/v1/campaigns/{campaign_id}/apply-params Apply campaign parameter overrides. entities:write
PUT /public/v1/campaigns/{campaign_id}/schedules Replace embedded multi-schedule definitions. entities:write
GET /public/v1/campaigns/{campaign_id}/schedules List embedded and registered schedules. entities:read
POST /public/v1/campaigns/{campaign_id}/schedules/sync Save optional schedules and arm all enabled crons into the claim loop. entities:write
POST /public/v1/campaigns/{campaign_id}/schedules/generate Plain-English → validated schedule draft rows (no write/arm). Returns schedules with next_run_at. entities:read
POST /public/v1/campaigns/{campaign_id}/schedule Register one recurring schedule (cron + optional id, param_overrides, cadence). entities:write
DELETE /public/v1/campaigns/{campaign_id}/schedules/{schedule_id} Unregister one armed schedule from the claim loop. entities:write
DELETE /public/v1/campaigns/{campaign_id}/schedule Unregister one schedule (?schedule_id=) or all (?all=true). entities:write
GET /public/v1/campaigns/{campaign_id}/runs List runs for a campaign. jobs:read
GET /public/v1/campaigns/runs/{run_id} Read one campaign run. jobs:read
GET /public/v1/campaigns/runs/{run_id}/progress Campaign run progress. jobs:read
POST /public/v1/campaigns/runs/{run_id}/stop Stop a campaign run. entities:write

Analytics

4
GET /public/v1/analytics/dashboards List analytics dashboards. entities:read
GET /public/v1/analytics/dashboards/{dashboard_id} Read one dashboard. entities:read
GET /public/v1/analytics/dashboards/{dashboard_id}/share Read dashboard share metadata. entities:read
POST /public/v1/analytics/dashboards/{dashboard_id}/share Create or refresh dashboard share. entities:write

Account & Models

2
GET /public/v1/me/apis Endpoints accessible to the current public credential. public
GET /v1/models OpenAI-compatible model list (also /models). predictions:run

Entity collections

31

Each Workbench entity type has paths under /public/v1/entities/<collection>. Requires entities:read / entities:write plus your JWT.

Projects
projects
List GET /public/v1/entities/projects
Read GET /public/v1/entities/projects/{entity_id}
Create POST /public/v1/entities/projects
Update PUT /public/v1/entities/projects/{entity_id}
Delete DELETE /public/v1/entities/projects/{entity_id}
Agent Configs
agent_configs
List GET /public/v1/entities/agent_configs
Read GET /public/v1/entities/agent_configs/{entity_id}
Create POST /public/v1/entities/agent_configs
Update PUT /public/v1/entities/agent_configs/{entity_id}
Delete DELETE /public/v1/entities/agent_configs/{entity_id}
Agent Node Configs
agent_node_configs
List GET /public/v1/entities/agent_node_configs
Read GET /public/v1/entities/agent_node_configs/{entity_id}
Create POST /public/v1/entities/agent_node_configs
Update PUT /public/v1/entities/agent_node_configs/{entity_id}
Delete DELETE /public/v1/entities/agent_node_configs/{entity_id}
Agent Channel Configs
agent_channel_configs
List GET /public/v1/entities/agent_channel_configs
Read GET /public/v1/entities/agent_channel_configs/{entity_id}
Create POST /public/v1/entities/agent_channel_configs
Update PUT /public/v1/entities/agent_channel_configs/{entity_id}
Delete DELETE /public/v1/entities/agent_channel_configs/{entity_id}
Custom Channel Modules
custom_channel_modules
List GET /public/v1/entities/custom_channel_modules
Read GET /public/v1/entities/custom_channel_modules/{entity_id}
Create POST /public/v1/entities/custom_channel_modules
Update PUT /public/v1/entities/custom_channel_modules/{entity_id}
Delete DELETE /public/v1/entities/custom_channel_modules/{entity_id}
Calendar
calendar
List GET /public/v1/entities/calendar
Read GET /public/v1/entities/calendar/{entity_id}
Create POST /public/v1/entities/calendar
Update PUT /public/v1/entities/calendar/{entity_id}
Delete DELETE /public/v1/entities/calendar/{entity_id}
Fact Injection Config
chat_config
List GET /public/v1/entities/chat_config
Read GET /public/v1/entities/chat_config/{entity_id}
Create POST /public/v1/entities/chat_config
Update PUT /public/v1/entities/chat_config/{entity_id}
Delete DELETE /public/v1/entities/chat_config/{entity_id}
Dashboards
dashboards
List GET /public/v1/entities/dashboards
Read GET /public/v1/entities/dashboards/{entity_id}
Create POST /public/v1/entities/dashboards
Update PUT /public/v1/entities/dashboards/{entity_id}
Delete DELETE /public/v1/entities/dashboards/{entity_id}
Data Wizards
data_wizards
List GET /public/v1/entities/data_wizards
Read GET /public/v1/entities/data_wizards/{entity_id}
Create POST /public/v1/entities/data_wizards
Update PUT /public/v1/entities/data_wizards/{entity_id}
Delete DELETE /public/v1/entities/data_wizards/{entity_id}
Dynamic Engagement
dynamic_engagement
List GET /public/v1/entities/dynamic_engagement
Read GET /public/v1/entities/dynamic_engagement/{entity_id}
Create POST /public/v1/entities/dynamic_engagement
Update PUT /public/v1/entities/dynamic_engagement/{entity_id}
Delete DELETE /public/v1/entities/dynamic_engagement/{entity_id}
Enrichment Configs
enrichment_configs
List GET /public/v1/entities/enrichment_configs
Read GET /public/v1/entities/enrichment_configs/{entity_id}
Create POST /public/v1/entities/enrichment_configs
Update PUT /public/v1/entities/enrichment_configs/{entity_id}
Delete DELETE /public/v1/entities/enrichment_configs/{entity_id}
Enrichment Pipelines
enrichment_pipelines
List GET /public/v1/entities/enrichment_pipelines
Read GET /public/v1/entities/enrichment_pipelines/{entity_id}
Create POST /public/v1/entities/enrichment_pipelines
Update PUT /public/v1/entities/enrichment_pipelines/{entity_id}
Delete DELETE /public/v1/entities/enrichment_pipelines/{entity_id}
Frames
frames
List GET /public/v1/entities/frames
Read GET /public/v1/entities/frames/{entity_id}
Create POST /public/v1/entities/frames
Update PUT /public/v1/entities/frames/{entity_id}
Delete DELETE /public/v1/entities/frames/{entity_id}
Predictions
predictions
List GET /public/v1/entities/predictions
Read GET /public/v1/entities/predictions/{entity_id}
Create POST /public/v1/entities/predictions
Update PUT /public/v1/entities/predictions/{entity_id}
Delete DELETE /public/v1/entities/predictions/{entity_id}
Data Connections
data_connections
List GET /public/v1/entities/data_connections
Read GET /public/v1/entities/data_connections/{entity_id}
Create POST /public/v1/entities/data_connections
Update PUT /public/v1/entities/data_connections/{entity_id}
Delete DELETE /public/v1/entities/data_connections/{entity_id}
Offer Matrix
offer_matrix
List GET /public/v1/entities/offer_matrix
Read GET /public/v1/entities/offer_matrix/{entity_id}
Create POST /public/v1/entities/offer_matrix
Update PUT /public/v1/entities/offer_matrix/{entity_id}
Delete DELETE /public/v1/entities/offer_matrix/{entity_id}
Offer Matrix History
offer_matrix_history
List GET /public/v1/entities/offer_matrix_history
Read GET /public/v1/entities/offer_matrix_history/{entity_id}
Create POST /public/v1/entities/offer_matrix_history
Update PUT /public/v1/entities/offer_matrix_history/{entity_id}
Delete DELETE /public/v1/entities/offer_matrix_history/{entity_id}
Prompt Library
prompt_library
List GET /public/v1/entities/prompt_library
Read GET /public/v1/entities/prompt_library/{entity_id}
Create POST /public/v1/entities/prompt_library
Update PUT /public/v1/entities/prompt_library/{entity_id}
Delete DELETE /public/v1/entities/prompt_library/{entity_id}
Responder Analytics Config
responder_analytics_config
List GET /public/v1/entities/responder_analytics_config
Read GET /public/v1/entities/responder_analytics_config/{entity_id}
Create POST /public/v1/entities/responder_analytics_config
Update PUT /public/v1/entities/responder_analytics_config/{entity_id}
Delete DELETE /public/v1/entities/responder_analytics_config/{entity_id}
Responder API Config
responder_config
List GET /public/v1/entities/responder_config
Read GET /public/v1/entities/responder_config/{entity_id}
Create POST /public/v1/entities/responder_config
Update PUT /public/v1/entities/responder_config/{entity_id}
Delete DELETE /public/v1/entities/responder_config/{entity_id}
Simulation
simulation
List GET /public/v1/entities/simulation
Read GET /public/v1/entities/simulation/{entity_id}
Create POST /public/v1/entities/simulation
Update PUT /public/v1/entities/simulation/{entity_id}
Delete DELETE /public/v1/entities/simulation/{entity_id}
Campaigns
campaigns
List GET /public/v1/entities/campaigns
Read GET /public/v1/entities/campaigns/{entity_id}
Create POST /public/v1/entities/campaigns
Update PUT /public/v1/entities/campaigns/{entity_id}
Delete DELETE /public/v1/entities/campaigns/{entity_id}
Ontology
ontology
List GET /public/v1/entities/ontology
Read GET /public/v1/entities/ontology/{entity_id}
Create POST /public/v1/entities/ontology
Update PUT /public/v1/entities/ontology/{entity_id}
Delete DELETE /public/v1/entities/ontology/{entity_id}
Ontology Mappings
ontology_mappings
List GET /public/v1/entities/ontology_mappings
Read GET /public/v1/entities/ontology_mappings/{entity_id}
Create POST /public/v1/entities/ontology_mappings
Update PUT /public/v1/entities/ontology_mappings/{entity_id}
Delete DELETE /public/v1/entities/ontology_mappings/{entity_id}
Networks
networks
List GET /public/v1/entities/networks
Read GET /public/v1/entities/networks/{entity_id}
Create POST /public/v1/entities/networks
Update PUT /public/v1/entities/networks/{entity_id}
Delete DELETE /public/v1/entities/networks/{entity_id}
Network Configs
network_configs
List GET /public/v1/entities/network_configs
Read GET /public/v1/entities/network_configs/{entity_id}
Create POST /public/v1/entities/network_configs
Update PUT /public/v1/entities/network_configs/{entity_id}
Delete DELETE /public/v1/entities/network_configs/{entity_id}
Network Selector Configs
network_selector_configs
List GET /public/v1/entities/network_selector_configs
Read GET /public/v1/entities/network_selector_configs/{entity_id}
Create POST /public/v1/entities/network_selector_configs
Update PUT /public/v1/entities/network_selector_configs/{entity_id}
Delete DELETE /public/v1/entities/network_selector_configs/{entity_id}
Custom Forms
custom_forms
List GET /public/v1/entities/custom_forms
Read GET /public/v1/entities/custom_forms/{entity_id}
Create POST /public/v1/entities/custom_forms
Update PUT /public/v1/entities/custom_forms/{entity_id}
Delete DELETE /public/v1/entities/custom_forms/{entity_id}
Workbench Analytics Dashboards
workbench_analytics_dashboards
List GET /public/v1/entities/workbench_analytics_dashboards
Read GET /public/v1/entities/workbench_analytics_dashboards/{entity_id}
Create POST /public/v1/entities/workbench_analytics_dashboards
Update PUT /public/v1/entities/workbench_analytics_dashboards/{entity_id}
Delete DELETE /public/v1/entities/workbench_analytics_dashboards/{entity_id}
Lora Configs
lora_configs
List GET /public/v1/entities/lora_configs
Read GET /public/v1/entities/lora_configs/{entity_id}
Create POST /public/v1/entities/lora_configs
Update PUT /public/v1/entities/lora_configs/{entity_id}
Delete DELETE /public/v1/entities/lora_configs/{entity_id}
Lora Runs
lora_runs
List GET /public/v1/entities/lora_runs
Read GET /public/v1/entities/lora_runs/{entity_id}
Create POST /public/v1/entities/lora_runs
Update PUT /public/v1/entities/lora_runs/{entity_id}
Delete DELETE /public/v1/entities/lora_runs/{entity_id}

Notebooks and scripts

Send a public API key or a Workbench JWT.

import os
import requests

BASE = "https://mewbserver.ecosystem.ai/public/v1"

# Option A: public API key
HEADERS = {"X-API-Key": os.environ["EWB_PUBLIC_API_KEY"]}

# Option B: Workbench JWT instead
# HEADERS = {"Authorization": f"Bearer {os.environ['EWB_JWT']}"}

projects = requests.get(f"{BASE}/entities/projects", headers=HEADERS, params={"limit": 20}, timeout=30)
print(projects.json())

Need the Workbench app?

Keys are issued in Workbench Administration → API Keys.