Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.devhelm.io/llms.txt

Use this file to discover all available pages before exploring further.

Complete reference for the @devhelm/sdk TypeScript SDK.

Client initialization

import { Devhelm } from "@devhelm/sdk";

const client = new Devhelm({
  token: process.env.DEVHELM_API_TOKEN!,
  baseUrl: "https://api.devhelm.io",
  orgId: "1",
  workspaceId: "1",
});

Configuration options

PropertyTypeRequiredDefaultDescription
tokenstringYesAPI token (Bearer)
baseUrlstringhttps://api.devhelm.ioAPI base URL
orgIdstringDEVHELM_ORG_ID env or "1"Organization ID header
workspaceIdstringDEVHELM_WORKSPACE_ID env or "1"Workspace ID header

Resource namespaces

client.monitors

MethodSignatureReturns
list()() => Promise<MonitorDto[]>Auto-fetches all pages
listPage(page, size)(number, number) => Promise<Page<MonitorDto>>Single page
get(id)(string | number) => Promise<MonitorDto>
create(body)(CreateMonitorRequest) => Promise<MonitorDto>
update(id, body)(string | number, UpdateMonitorRequest) => Promise<MonitorDto>
delete(id)(string | number) => Promise<void>
pause(id)(string | number) => Promise<MonitorDto>
resume(id)(string | number) => Promise<MonitorDto>
test(id)(string | number) => Promise<MonitorTestResultDto>
results(id, options?)(string | number, { cursor?, limit? }) => Promise<CursorPage<CheckResultDto>>Cursor pagination
versions(id, options?)(string | number, { page?, size? }) => Promise<Page<MonitorVersionDto>>

client.incidents

MethodSignatureReturns
list()() => Promise<IncidentDto[]>
listPage(page, size)(number, number) => Promise<Page<IncidentDto>>
get(id)(string | number) => Promise<IncidentDetailDto>
create(body)(CreateManualIncidentRequest) => Promise<IncidentDetailDto>
resolve(id, body?)(string | number, ResolveIncidentRequest?) => Promise<IncidentDetailDto>Body optional
Incidents have no delete method — they are resolved, not deleted.

client.alertChannels

MethodSignatureReturns
list()() => Promise<AlertChannelDto[]>
listPage(page, size)(number, number) => Promise<Page<AlertChannelDto>>
get(id)(string | number) => Promise<AlertChannelDto>
create(body)(CreateAlertChannelRequest) => Promise<AlertChannelDto>
update(id, body)(string | number, UpdateAlertChannelRequest) => Promise<AlertChannelDto>
delete(id)(string | number) => Promise<void>
test(id)(string | number) => Promise<TestChannelResult>

client.notificationPolicies

MethodSignatureReturns
list()() => Promise<NotificationPolicyDto[]>
listPage(page, size)(number, number) => Promise<Page<NotificationPolicyDto>>
get(id)(string | number) => Promise<NotificationPolicyDto>
create(body)(CreateNotificationPolicyRequest) => Promise<NotificationPolicyDto>
update(id, body)(string | number, UpdateNotificationPolicyRequest) => Promise<NotificationPolicyDto>
delete(id)(string | number) => Promise<void>
test(id)(string | number) => Promise<void>

client.tags

MethodSignatureReturns
list()() => Promise<TagDto[]>
listPage(page, size)(number, number) => Promise<Page<TagDto>>
get(id)(string | number) => Promise<TagDto>
create(body)(CreateTagRequest) => Promise<TagDto>
update(id, body)(string | number, UpdateTagRequest) => Promise<TagDto>
delete(id)(string | number) => Promise<void>

client.environments

MethodSignatureReturns
list()() => Promise<EnvironmentDto[]>
listPage(page, size)(number, number) => Promise<Page<EnvironmentDto>>
get(slug)(string) => Promise<EnvironmentDto>By slug
create(body)(CreateEnvironmentRequest) => Promise<EnvironmentDto>
update(slug, body)(string, UpdateEnvironmentRequest) => Promise<EnvironmentDto>
delete(slug)(string) => Promise<void>

client.secrets

MethodSignatureReturns
list()() => Promise<SecretDto[]>Metadata only
listPage(page, size)(number, number) => Promise<Page<SecretDto>>
create(body)(CreateSecretRequest) => Promise<SecretDto>
update(key, body)(string, UpdateSecretRequest) => Promise<SecretDto>
delete(key)(string) => Promise<void>

client.resourceGroups

MethodSignatureReturns
list()() => Promise<ResourceGroupDto[]>
listPage(page, size)(number, number) => Promise<Page<ResourceGroupDto>>
get(id)(string | number) => Promise<ResourceGroupDto>
create(body)(CreateResourceGroupRequest) => Promise<ResourceGroupDto>
update(id, body)(string | number, UpdateResourceGroupRequest) => Promise<ResourceGroupDto>
delete(id)(string | number) => Promise<void>
addMember(groupId, body)(string | number, AddResourceGroupMemberRequest) => Promise<void>
removeMember(groupId, memberId)(string | number, string | number) => Promise<void>

client.webhooks

MethodSignatureReturns
list()() => Promise<WebhookEndpointDto[]>
listPage(page, size)(number, number) => Promise<Page<WebhookEndpointDto>>
get(id)(string | number) => Promise<WebhookEndpointDto>
create(body)(CreateWebhookEndpointRequest) => Promise<WebhookEndpointDto>
update(id, body)(string | number, UpdateWebhookEndpointRequest) => Promise<WebhookEndpointDto>
delete(id)(string | number) => Promise<void>
test(id)(string | number) => Promise<WebhookTestResult>

client.apiKeys

MethodSignatureReturns
list()() => Promise<ApiKeyDto[]>
listPage(page, size)(number, number) => Promise<Page<ApiKeyDto>>
create(body)(CreateApiKeyRequest) => Promise<ApiKeyCreateResponse>Full key only at creation
revoke(id)(string | number) => Promise<void>
delete(id)(string | number) => Promise<void>

client.dependencies

MethodSignatureReturns
list()() => Promise<ServiceSubscriptionDto[]>
listPage(page, size)(number, number) => Promise<Page<ServiceSubscriptionDto>>
get(id)(string | number) => Promise<ServiceSubscriptionDto>
track(slug)(string) => Promise<ServiceSubscriptionDto>
delete(id)(string | number) => Promise<void>

client.deployLock

MethodSignatureReturns
acquire(body)(AcquireDeployLockRequest) => Promise<DeployLockDto>409 if held
current()() => Promise<DeployLockDto | null>
release(lockId)(string) => Promise<void>
forceRelease()() => Promise<void>

client.status

MethodSignatureReturns
overview()() => Promise<DashboardOverviewDto>

client.statusPages

The largest namespace; root operations plus five sub-namespaces.
MethodSignature
list()() => Promise<StatusPageDto[]>
get(id)(string | number) => Promise<StatusPageDto>
create(body)(CreateStatusPageRequest) => Promise<StatusPageDto>
update(id, body)(string | number, UpdateStatusPageRequest) => Promise<StatusPageDto>
delete(id)(string | number) => Promise<void>
reorderLayout(id, body)(string | number, ReorderPageLayoutRequest) => Promise<StatusPageDto>
Sub-namespaces (each takes pageId as the first arg):
client.statusPages.components.list(pageId)
client.statusPages.components.create(pageId, body)
client.statusPages.components.update(pageId, componentId, body)
client.statusPages.components.delete(pageId, componentId)
client.statusPages.components.reorder(pageId, body)

client.statusPages.groups.list(pageId)
client.statusPages.groups.create(pageId, body)
client.statusPages.groups.update(pageId, groupId, body)
client.statusPages.groups.delete(pageId, groupId)

client.statusPages.incidents.list(pageId, options?)
client.statusPages.incidents.get(pageId, incidentId)
client.statusPages.incidents.create(pageId, body)
client.statusPages.incidents.update(pageId, incidentId, body)
client.statusPages.incidents.postUpdate(pageId, incidentId, body)
client.statusPages.incidents.publish(pageId, incidentId, body?)
client.statusPages.incidents.dismiss(pageId, incidentId)
client.statusPages.incidents.delete(pageId, incidentId)

client.statusPages.subscribers.list(pageId)
client.statusPages.subscribers.add(pageId, body)
client.statusPages.subscribers.remove(pageId, subscriberId)

client.statusPages.domains.list(pageId)
client.statusPages.domains.add(pageId, body)
client.statusPages.domains.verify(pageId, domainId)
client.statusPages.domains.remove(pageId, domainId)

client.forensics

Read-only audit trail for the detection engine. See Incident Forensics for the conceptual overview.
MethodSignatureReturns
incidentTimeline(id)(string | number) => Promise<IncidentTimelineDto>State transitions, triggering evals, active policy snapshot
checkTrace(checkId)(string) => Promise<CheckTraceDto>Everything recorded for a single check execution
policySnapshot(hashHex)(string) => Promise<PolicySnapshotDto>Fetch policy snapshot by SHA-256 hash
monitorRuleEvaluations(id, filters?)(string | number, RuleEvaluationFilters) => Promise<Page<RuleEvaluationDto>>Paginated rule evaluations
monitorTransitions(id, filters?)(string | number, TransitionFilters) => Promise<Page<IncidentStateTransitionDto>>Paginated state transitions
RuleEvaluationFilters accepts ruleType, region, onlyMatched, from, to, page, and size. TransitionFilters accepts from, to, page, and size.

Exported types

All DTO and request types are re-exported from the package root:
import type {
  MonitorDto,
  CreateMonitorRequest,
  IncidentDto,
  AlertChannelDto,
  Page,
  CursorPage,
} from "@devhelm/sdk";
Types are generated from the OpenAPI specification, so they always match the current API.

Next steps

Error handling

Catch and handle SDK errors.

Pagination

Iterate through paginated results.