Skip to content
Get started

Promptly

List all runs
client.promptly.listRuns(PromptlyListRunsParams { organizationId, limit } query, RequestOptionsoptions?): PromptlyListRunsResponse { id, completedAt, costCents, 9 more }
GET/api/promptly/runs
Get usage statistics
client.promptly.getStats(PromptlyGetStatsParams { organizationId } query, RequestOptionsoptions?): PromptlyGetStatsResponse { activeTasks, failedRuns, successfulRuns, 4 more }
GET/api/promptly/stats

PromptlyTasks

List all tasks
client.promptly.tasks.list(TaskListParams { organizationId } query, RequestOptionsoptions?): TaskListResponse { id, createdAt, model, 22 more }
GET/api/promptly/tasks
Create a new task
client.promptly.tasks.create(TaskCreateParams { name, organizationId, prompt, 12 more } body, RequestOptionsoptions?): Task { id, createdAt, model, 22 more }
POST/api/promptly/tasks
Get a task
client.promptly.tasks.retrieve(stringtaskID, RequestOptionsoptions?): Task { id, createdAt, model, 22 more }
GET/api/promptly/tasks/{taskId}
Update a task
client.promptly.tasks.update(stringtaskID, TaskUpdateParams { deliveryEmail, deliveryEmailAddress, deliveryPhoneNumber, 12 more } body, RequestOptionsoptions?): Task { id, createdAt, model, 22 more }
PATCH/api/promptly/tasks/{taskId}
Delete a task
client.promptly.tasks.delete(stringtaskID, RequestOptionsoptions?): TaskDeleteResponse { success }
DELETE/api/promptly/tasks/{taskId}
Run a task immediately
client.promptly.tasks.run(stringtaskID, RequestOptionsoptions?): TaskRun { id, completedAt, costCents, 9 more }
POST/api/promptly/tasks/{taskId}/run
List task runs
client.promptly.tasks.listRuns(stringtaskID, TaskListRunsParams { limit } query?, RequestOptionsoptions?): TaskListRunsResponse { id, completedAt, costCents, 9 more }
GET/api/promptly/tasks/{taskId}/runs
ModelsExpand Collapse
Destination { type, value, label }
type: "email" | "sms" | "webhook"
Accepts one of the following:
"email"
"sms"
"webhook"
value: string

Email address, phone number, or webhook URL

label?: string

Optional human-readable label

Task { id, createdAt, model, 22 more }
id: string
formatuuid
createdAt: string
formatdate-time
model: string

AI model identifier (e.g., 'gpt-4o-mini')

name: string

Human-readable task name

prompt: string

The AI prompt to execute

schedule: "once" | "hourly" | "daily" | "weekly"

Task execution frequency

Accepts one of the following:
"once"
"hourly"
"daily"
"weekly"
status: "active" | "paused" | "completed"
Accepts one of the following:
"active"
"paused"
"completed"
cronExpression?: string

Custom cron expression (overrides schedule settings)

deliveryEmail?: boolean

Email delivery enabled

deliveryEmailAddress?: string

Email address for delivery

formatemail
deliveryPhoneNumber?: string

Phone number for SMS delivery

deliverySms?: boolean

SMS delivery enabled

destinations?: Array<Destination { type, value, label } >

Where to deliver task results

type: "email" | "sms" | "webhook"
Accepts one of the following:
"email"
"sms"
"webhook"
value: string

Email address, phone number, or webhook URL

label?: string

Optional human-readable label

lastRunAt?: string | null
formatdate-time
nextRunAt?: string | null
formatdate-time
organizationId?: string
formatuuid
scheduleDays?: Array<"monday" | "tuesday" | "wednesday" | 4 more>

Days of week to run (for weekly schedule)

Accepts one of the following:
"monday"
"tuesday"
"wednesday"
"thursday"
"friday"
"saturday"
"sunday"
scheduleTime?: string

Time of day to run (HH:MM format)

skillIds?: Array<string>

IDs of attached skills

skills?: Array<Skill { id, content, name, 11 more } >

Attached skills (when expanded)

id: string
formatuuid
content: string

Markdown instructions that guide task execution

name: string
category?: string
createdAt?: string
formatdate-time
description?: string
frontmatter?: Frontmatter { author, requiredSources, tags }

Skill metadata

author?: string
requiredSources?: Array<string>

Source slugs this skill depends on

tags?: Array<string>
iconUrl?: string
formaturi
isPublic?: boolean

Whether the skill is shared publicly

isUserInvocable?: boolean

Whether users can manually attach this skill

organizationId?: string
formatuuid
slug?: string

URL-friendly identifier

updatedAt?: string
formatdate-time
version?: number
sourceIds?: Array<string>

IDs of attached sources

sources?: Array<Source { id, config, name, 14 more } >

Attached data sources (when expanded)

id: string
formatuuid
config: Config { args, baseUrl, command, 3 more }

Source-specific configuration

args?: Array<string>

Command arguments

baseUrl?: string

Base URL for API sources

formaturi
command?: string

Command to run for stdio transport

env?: Record<string, string>

Environment variables

transport?: "stdio" | "http" | "websocket"

MCP transport type

Accepts one of the following:
"stdio"
"http"
"websocket"
url?: string

URL for http/websocket transport

formaturi
name: string
type: "mcp" | "api" | "local"

Source connection type

Accepts one of the following:
"mcp"
"api"
"local"
authConfig?: AuthConfig { headerName, prefix, provider }

Authentication configuration

headerName?: string
prefix?: string
provider?: string
authType?: "none" | "oauth" | "bearer" | 5 more
Accepts one of the following:
"none"
"oauth"
"bearer"
"basic"
"header"
"query"
"api_key"
"composio"
composioConnected?: boolean

Whether Composio OAuth is completed

composioToolkit?: string

Composio toolkit name (e.g., 'todoist', 'github')

createdAt?: string
formatdate-time
description?: string
iconUrl?: string
formaturi
isActive?: boolean

Whether the source is connected and ready

lastConnectedAt?: string
formatdate-time
organizationId?: string
formatuuid
slug?: string

URL-friendly identifier

tools?: Array<Tool { description, inputSchema, name } >

Available tools from this source

description?: string
inputSchema?: unknown

JSON Schema for tool parameters

name?: string
updatedAt?: string
formatdate-time
timezone?: string

IANA timezone (e.g., 'America/New_York')

updatedAt?: string
formatdate-time
userId?: string

Owner user ID

TaskRun { id, completedAt, costCents, 9 more }
id?: string
formatuuid
completedAt?: string
formatdate-time
costCents?: number

Cost in cents

createdAt?: string
formatdate-time
deliveryStatus?: "pending" | "delivered" | "failed"
Accepts one of the following:
"pending"
"delivered"
"failed"
durationMs?: number

Execution time in milliseconds

error?: string

Error message if failed

output?: string

AI-generated output

startedAt?: string
formatdate-time
status?: "pending" | "running" | "completed" | "failed"
Accepts one of the following:
"pending"
"running"
"completed"
"failed"
taskId?: string
formatuuid
tokensUsed?: number

Total tokens consumed

PromptlyTasksSources

Attach a source to a task
client.promptly.tasks.sources.attach(stringtaskID, SourceAttachParams { sourceId } body, RequestOptionsoptions?): void
POST/api/promptly/tasks/{taskId}/sources
Detach a source from a task
client.promptly.tasks.sources.detach(stringsourceID, SourceDetachParams { taskId } params, RequestOptionsoptions?): void
DELETE/api/promptly/tasks/{taskId}/sources/{sourceId}

PromptlyTasksSkills

Attach a skill to a task
client.promptly.tasks.skills.attach(stringtaskID, SkillAttachParams { skillId } body, RequestOptionsoptions?): void
POST/api/promptly/tasks/{taskId}/skills
Detach a skill from a task
client.promptly.tasks.skills.detach(stringskillID, SkillDetachParams { taskId } params, RequestOptionsoptions?): void
DELETE/api/promptly/tasks/{taskId}/skills/{skillId}

PromptlySources

List all sources
client.promptly.sources.list(SourceListParams { organizationId } query, RequestOptionsoptions?): SourceListResponse { id, config, name, 14 more }
GET/api/promptly/sources
Create a source
client.promptly.sources.create(SourceCreateParams { config, name, organizationId, 6 more } body, RequestOptionsoptions?): Source { id, config, name, 14 more }
POST/api/promptly/sources
Get a source
client.promptly.sources.retrieve(stringsourceID, RequestOptionsoptions?): Source { id, config, name, 14 more }
GET/api/promptly/sources/{sourceId}
Update a source
client.promptly.sources.update(stringsourceID, SourceUpdateParams { authConfig, authType, config, 3 more } body, RequestOptionsoptions?): Source { id, config, name, 14 more }
PATCH/api/promptly/sources/{sourceId}
Delete a source
client.promptly.sources.delete(stringsourceID, RequestOptionsoptions?): void
DELETE/api/promptly/sources/{sourceId}
Test a source connection
client.promptly.sources.test(stringsourceID, RequestOptionsoptions?): SourceTestResponse { message, success, tools }
POST/api/promptly/sources/{sourceId}/test
ModelsExpand Collapse
Source { id, config, name, 14 more }
id: string
formatuuid
config: Config { args, baseUrl, command, 3 more }

Source-specific configuration

args?: Array<string>

Command arguments

baseUrl?: string

Base URL for API sources

formaturi
command?: string

Command to run for stdio transport

env?: Record<string, string>

Environment variables

transport?: "stdio" | "http" | "websocket"

MCP transport type

Accepts one of the following:
"stdio"
"http"
"websocket"
url?: string

URL for http/websocket transport

formaturi
name: string
type: "mcp" | "api" | "local"

Source connection type

Accepts one of the following:
"mcp"
"api"
"local"
authConfig?: AuthConfig { headerName, prefix, provider }

Authentication configuration

headerName?: string
prefix?: string
provider?: string
authType?: "none" | "oauth" | "bearer" | 5 more
Accepts one of the following:
"none"
"oauth"
"bearer"
"basic"
"header"
"query"
"api_key"
"composio"
composioConnected?: boolean

Whether Composio OAuth is completed

composioToolkit?: string

Composio toolkit name (e.g., 'todoist', 'github')

createdAt?: string
formatdate-time
description?: string
iconUrl?: string
formaturi
isActive?: boolean

Whether the source is connected and ready

lastConnectedAt?: string
formatdate-time
organizationId?: string
formatuuid
slug?: string

URL-friendly identifier

tools?: Array<Tool { description, inputSchema, name } >

Available tools from this source

description?: string
inputSchema?: unknown

JSON Schema for tool parameters

name?: string
updatedAt?: string
formatdate-time
Tool { description, inputSchema, name }
description?: string
inputSchema?: unknown

JSON Schema for tool parameters

name?: string

PromptlySkills

List all skills
client.promptly.skills.list(SkillListParams { organizationId } query, RequestOptionsoptions?): SkillListResponse { id, content, name, 11 more }
GET/api/promptly/skills
Create a skill
client.promptly.skills.create(SkillCreateParams { content, name, organizationId, 6 more } body, RequestOptionsoptions?): Skill { id, content, name, 11 more }
POST/api/promptly/skills
Get a skill
client.promptly.skills.retrieve(stringskillID, RequestOptionsoptions?): Skill { id, content, name, 11 more }
GET/api/promptly/skills/{skillId}
Update a skill
client.promptly.skills.update(stringskillID, SkillUpdateParams { category, content, description, 3 more } body, RequestOptionsoptions?): Skill { id, content, name, 11 more }
PATCH/api/promptly/skills/{skillId}
Delete a skill
client.promptly.skills.delete(stringskillID, RequestOptionsoptions?): void
DELETE/api/promptly/skills/{skillId}
ModelsExpand Collapse
Skill { id, content, name, 11 more }
id: string
formatuuid
content: string

Markdown instructions that guide task execution

name: string
category?: string
createdAt?: string
formatdate-time
description?: string
frontmatter?: Frontmatter { author, requiredSources, tags }

Skill metadata

author?: string
requiredSources?: Array<string>

Source slugs this skill depends on

tags?: Array<string>
iconUrl?: string
formaturi
isPublic?: boolean

Whether the skill is shared publicly

isUserInvocable?: boolean

Whether users can manually attach this skill

organizationId?: string
formatuuid
slug?: string

URL-friendly identifier

updatedAt?: string
formatdate-time
version?: number

PromptlyModels

List available models
client.promptly.models.list(RequestOptionsoptions?): ModelListResponse { id, codingIndex, contextLength, 8 more }
GET/api/promptly/models
Get a model
client.promptly.models.retrieve(stringmodelID, RequestOptionsoptions?): Model { id, codingIndex, contextLength, 8 more }
GET/api/promptly/models/{modelId}
ModelsExpand Collapse
Model { id, codingIndex, contextLength, 8 more }
id?: string
formatuuid
codingIndex?: number

Coding benchmark score

contextLength?: number

Maximum context window size

intelligenceIndex?: number

Intelligence benchmark score

minimum0
maximum100
name?: string
openRouterId?: string

Model identifier for OpenRouter

outputSpeed?: number

Tokens per second

powerTier?: number

Power tier (1 = most powerful)

minimum1
maximum5
provider?: string

Model provider (anthropic, openai, google, etc.)

supportsInternetSearch?: boolean
supportsToolCalling?: boolean

PromptlyBilling

Get billing status
client.promptly.billing.getStatus(BillingGetStatusParams { organizationId } query, RequestOptionsoptions?): BillingGetStatusResponse { billingPeriodStart, plan, runsLimit, 9 more }
GET/api/promptly/billing/status
Create checkout session
client.promptly.billing.createCheckout(BillingCreateCheckoutParams { organizationId } body, RequestOptionsoptions?): BillingCreateCheckoutResponse { url }
POST/api/promptly/billing/checkout
Create billing portal session
client.promptly.billing.createPortal(BillingCreatePortalParams { organizationId } body, RequestOptionsoptions?): BillingCreatePortalResponse { url }
POST/api/promptly/billing/portal