Platform map35 domainsREST + SSE + MCPSDK TS / Python

One agent. 35 domains.

How to read the map

  1. Core · Mets
  2. Agents and execution
  3. Data and CRM
  4. Channels and output
  5. Operations and platform

Each node’s size is its number of public operations in the OpenAPI contract.

Meteor isn’t a list of endpoints: it’s a system. Hover over a domain to see its endpoint, its scope and its MCP tool.

See all 35 domains by layer

The route, in four calls.

The green line on the map, step by step. Each hop is a public operation with its scope: your editor calls it over MCP and your backend through the SDK.

  1. 01

    CRM · Contacts

    GET/contacts?q=

    scope
    contacts:read
    tool
    met_list_contacts
  2. 02

    Mets · Runs

    POST/workspaces/{workspaceId}/runs

    scope
    runs:execute
    tool
    met_run_agent
  3. 03

    WhatsApp

    POST/contacts/{contactId}/messages

    scope
    channels:send
    tool
    met_send_message
  4. 04

    Reminders

    POST/reminders

    scope
    reminders:write
    tool
    met_create_reminder

See it live Illustrative example

Your agent asks. Meteor runs it. Here is every call.

A plain-language request turns into API operations: which endpoint, which Met acted, how much Energy was debited and what went out on WhatsApp. REST, SSE and MCP over the same 35 domains.

01 Your agent

Works with Claude Code · Cursor · Windsurf · Codex · your agent

You

When a lead comes in on WhatsApp, have the sales Met qualify it and set a reminder for Thursday’s demo.

Agent · over MCP

Done. I used four Meteor tools:

  • met_list_contactsfinds Laura in the CRM
  • met_run_agentruns Valeria (sales)
  • met_send_messagereplies on WhatsApp
  • met_create_remindersets Thursday’s reminder

Should I make this an automation for every new lead?

02 Calls to Meteor

live · 4 operations

OperationMetScopeEnergy
GET/contacts?q=Laura —contacts:read—
POST/workspaces/7/runs Valeriaruns:executee.g. 1,2

→{ "met": "Valeria", "input": "Califica a Laura…", "stream": true }

Idempotency-Key: 6f1c2a…

←200 text/event-stream

↓run.started · run.step · run.output · run.completed

POST/contacts/4812/messages Valeriachannels:send—
POST/reminders —reminders:write—

Sample values. Energy is debited per executed task; a met_test_ key debits nothing and external sends are blocked.

03 WhatsApp line

04 Run SSE events POST /workspaces/7/runs · stream: true

$ met listen --types run.completed,run.failed
  1. 01run.startedthe run started with Valeria
  2. 02run.steptool · find the contact
  3. 03run.steptool · reply on WhatsApp
  4. 04run.outputa chunk of the answer
  5. 05run.completeddone · Energy debited
  6. 06run.failedonly if something fails

All 35, by layer.

Public operations per domain · OpenAPI contract

The same, without an agent

What your agent did, written with the SDK.

Every row in the console is a public operation with its scope. Over MCP your editor calls it; through the SDK, your backend does. Same contract.

  1. 01

    Install the SDK

    No runtime dependencies, Node ≥ 20, ESM.

    npm install @meteor.ia/sdk
  2. 02

    Create a test key

    Create a workspace or sign in. In Developers, create a met_test_ key with runs:execute and contacts:read, and copy your workspace ID into your .env.

    MET_API_KEY=met_test_your_key
    MET_WORKSPACE_ID=7
  3. 03

    Run the script

    Save the code as run.mjs, then run node --env-file=.env run.mjs.

Step by step: Authentication → Run Mets.

import Met from '@meteor.ia/sdk';

const met = new Met(process.env.MET_API_KEY, {
  workspaceId: Number(process.env.MET_WORKSPACE_ID),
});

const { data } = await met.contacts.list({ q: 'Laura' });
const run = await met.runs.create({ met: 'Valeria', input: 'Qualify Laura' });
console.log(run.status, run.output);
import os
from meteor_ia import Met

met = Met(os.environ["MET_API_KEY"], workspace_id=int(os.environ["MET_WORKSPACE_ID"]))
contacts = met.contacts.list(q="Laura")
run = met.runs.create("Qualify Laura", met="Valeria")
print(run["status"], run["output"])
// your editor, connected to https://api.met.meteor.com.co/api/v1/mcp
{ "method": "tools/call", "params": { "name": "met_list_contacts", "arguments": { "search": "Laura" } } }

{ "method": "tools/call", "params": { "name": "met_run_agent", "arguments": { "met": "Valeria", "input": "Qualify Laura" } } }
curl "https://api.met.meteor.com.co/api/v1/contacts?q=Laura" \
  -H "Authorization: Bearer $MET_API_KEY"
curl -X POST https://api.met.meteor.com.co/api/v1/workspaces/$MET_WORKSPACE_ID/runs \
  -H "Authorization: Bearer $MET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"met":"Valeria","input":"Qualify Laura"}'
node --env-file=.env run.mjs · completed · a met_test_ key debits no Energy

In action

Whole builds, not fragments.

Each recipe goes from the problem to running code: which scopes the key needs, which endpoints it touches, and what breaks in production if you skip it.

See all guides
  1. 01An agent that answers WhatsAppruns · contacts · events
  2. 02Sync your system into collectionscollections · items
  3. 03Receive signed events in your backendwebhooks · HMAC
  4. 04Run a Met from GitHub Actionsruns · CLI
  5. 05Show a run live in your UIruns.stream · SSE
  6. 06A link to the conversation from your CRMcontacts · webhooks

For agents

These docs also come as markdown.

If your agent is the one reading this and not you, it shouldn't have to dig through navigation and styles. The whole portal is served as plain text too.

curl -H "Accept: text/markdown" \
  https://developers.meteor.com.co/guias/autenticacion.html

Pricing

The API comes with your plan.

Create API keys from your workspace or Partner account. To operate a workspace, it needs a current monthly plan; trials and sponsored plans also qualify.

  • Access to all 35 API domains
  • Keys with granular scopes (read / write)
  • Test keys (met_test_) at no cost
  • Energy is billed under the workspace plan
PlanPrice / month
EstudioFreelancers and small businesses$99USD
OficinaGrowing teams$299USD
EdificioFull operation at higher volume$500USD
CiudadelaHeavy automation demand$1,000USD
CampusCorporations at scale$3,000USD

Are you a Tech Partner?

For approved workspaces, Meteor can enable a USD 0 fixed monthly plan; consumed Energy is billed at the premium rate. It is not a public plan: a Meteor Super Admin enables it for approved partnerships.

See the Partners API →