Agemo Workflows API
Run deployed CodeWords services and fetch results.
Run deployed CodeWords services and fetch results.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/codewords:codewords-workflows-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: CodeWords Runtime Workflows API
version: 1.0.0
summary: Run, poll, and stream CodeWords workflows and WhatsApp agents.
description: Public HTTP API for CodeWords, the AI agent platform at https://www.codewords.ai. Authenticate with a `cwk-` API key or an OAuth 2.0 access token. Workflows are Python services identified by `serviceId`. Synchronous runs complete in about two minutes; longer jobs should use `/run_async/{serviceId}` then poll `/result/{requestId}`. See https://docs.codewords.ai/automations/calling-codewords-workflows.md
contact:
name: CodeWords support
email: hello@codewords.ai
url: https://www.codewords.ai/developers
license:
name: Proprietary
url: https://www.codewords.ai/terms-conditions
termsOfService: https://www.codewords.ai/terms-conditions
servers:
- url: https://runtime.codewords.ai
description: Production CodeWords runtime
security:
- bearerAuth: []
- oauth2:
- api:read
- api:write
tags:
- name: Workflows
description: Run deployed CodeWords services and fetch results.
paths:
/run/{serviceId}:
post:
operationId: runWorkflowSync
tags:
- Workflows
summary: Run a CodeWords workflow synchronously
description: Execute a deployed workflow and wait for the JSON result. Use this for jobs that finish in under two minutes. On timeout the runtime returns HTTP 504; retry with `runWorkflowAsync`.
parameters:
- name: serviceId
in: path
required: true
description: Deployed workflow / service identifier (for example `linkedin-enricher`).
schema:
type: string
minLength: 1
requestBody:
required: true
content:
application/json:
schema:
type: object
additionalProperties: true
description: JSON object. Workflow input and output fields are defined by each service's own schema.
responses:
'200':
description: Workflow completed. Body is the service's JSON output.
content:
application/json:
schema:
type: object
additionalProperties: true
description: JSON object. Workflow input and output fields are defined by each service's own schema.
'401':
description: Missing or invalid API key / OAuth token.
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- detail
properties:
detail:
description: Human-readable error message.
type: string
error:
description: Machine-readable error code when present.
type: string
'404':
description: Unknown serviceId.
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- detail
properties:
detail:
description: Human-readable error message.
type: string
error:
description: Machine-readable error code when present.
type: string
'429':
description: Rate limited.
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- detail
properties:
detail:
description: Human-readable error message.
type: string
error:
description: Machine-readable error code when present.
type: string
'504':
description: Synchronous execution exceeded the runtime timeout. Use runWorkflowAsync.
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- detail
properties:
detail:
description: Human-readable error message.
type: string
error:
description: Machine-readable error code when present.
type: string
/run_async/{serviceId}:
post:
operationId: runWorkflowAsync
tags:
- Workflows
summary: Start a CodeWords workflow asynchronously
description: Start a long-running workflow and return a `request_id` immediately. Poll `getWorkflowResult` and optionally stream `getWorkflowLogs`.
parameters:
- name: serviceId
in: path
required: true
description: Deployed workflow / service identifier.
schema:
type: string
minLength: 1
requestBody:
required: true
content:
application/json:
schema:
type: object
additionalProperties: true
description: JSON object. Workflow input and output fields are defined by each service's own schema.
responses:
'200':
description: Workflow accepted.
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- request_id
properties:
request_id:
type: string
description: Opaque run identifier used with /result and /logs.
'401':
description: Missing or invalid credentials.
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- detail
properties:
detail:
description: Human-readable error message.
type: string
error:
description: Machine-readable error code when present.
type: string
'404':
description: Unknown serviceId.
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- detail
properties:
detail:
description: Human-readable error message.
type: string
error:
description: Machine-readable error code when present.
type: string
/result/{requestId}:
get:
operationId: getWorkflowResult
tags:
- Workflows
summary: Get an asynchronous workflow result
description: Poll an async run. HTTP 408 means the workflow is still running. HTTP 200 includes `responseStatus` and `json` when complete.
parameters:
- name: requestId
in: path
required: true
description: The `request_id` returned by runWorkflowAsync.
schema:
type: string
minLength: 1
responses:
'200':
description: Run finished.
content:
application/json:
schema:
type: object
additionalProperties: true
required:
- id
- responseStatus
properties:
id:
type: string
userId:
type: string
serviceId:
type: string
completedAt:
type: string
format: date-time
responseStatus:
type: integer
responseJson:
type: object
additionalProperties: true
description: JSON object.
responseContent:
type: string
'401':
description: Missing or invalid credentials.
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- detail
properties:
detail:
description: Human-readable error message.
type: string
error:
description: Machine-readable error code when present.
type: string
'404':
description: Unknown requestId.
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- detail
properties:
detail:
description: Human-readable error message.
type: string
error:
description: Machine-readable error code when present.
type: string
'408':
description: Run is still in progress. Retry later.
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- detail
properties:
detail:
description: Human-readable error message.
type: string
error:
description: Machine-readable error code when present.
type: string