Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API 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.
openapi: 3.2.0
info:
title: hyreflow engine (local) Cli API
version: 0.1.0
tags:
- name: CLI
paths:
/cli/version:
get:
summary: Cli Version
description: Self-update target for the thin client (`hyreflow update` checks this).
operationId: cli_version_cli_version_get
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
tags:
- CLI
/api/v2/cli/releases:
get:
summary: Cli Releases
description: 'Immutable release index for version pinning + rollback (issue #74). Public.
Returns {latest, min_cli_version, releases:[{version, sha256, download_url}]}. Every entry''s
sha256 is the manifest''s RELEASE sha — the immutable Release asset''s hash, stable across
API redeploys. The `latest` entry falls back to the live baked-pyz hash only when the manifest
recorded no sha for it (pre-release seed). Older entries'' sha256 are used to verify a pinned
download; `latest` is the live/rolling artifact, so the CLI does not hard-verify it.
`download_url` is ALWAYS this engine''s version-addressable path — never the manifest''s recorded
`download_url`. That field points at the private source repo''s Release asset: echoing it out of a
public endpoint handed every caller a link that 404s for them and leaked the repo slug. The engine
proxies the same asset server-side with its own token (see cli_pyz_versioned).'
operationId: cli_releases_api_v2_cli_releases_get
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
tags:
- CLI
/cli/install:
get:
summary: Cli Install
description: Public installer served for `curl -fsSL …/api/v2/cli/install | bash`. No auth (bootstrap).
operationId: cli_install_cli_install_get
responses:
'200':
description: Successful Response
content:
text/plain:
schema:
type: string
tags:
- CLI
/api/v2/cli/install:
get:
summary: Cli Install
description: Public installer served for `curl -fsSL …/api/v2/cli/install | bash`. No auth (bootstrap).
operationId: cli_install_api_v2_cli_install_get
responses:
'200':
description: Successful Response
content:
text/plain:
schema:
type: string
tags:
- CLI
/cli/hyreflow.pyz:
get:
summary: Cli Pyz
description: The distributable CLI (built into the image at dist/hyreflow.pyz). Public — installer fetches it.
operationId: cli_pyz_cli_hyreflow_pyz_get
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
tags:
- CLI
/cli/v{version}/hyreflow.pyz:
get:
summary: Cli Pyz Versioned
description: 'Version-addressable CLI artifact (issue #74). The `latest` version serves the baked pyz directly
(always available, even if GitHub is down). Any older version is streamed from its immutable GitHub
Release asset — PROXIED through the engine (not a 302) because the repo is private, so the public
download URL would 404 without auth; the engine holds the token. If no token is configured, fall
back to a 302 to the public download URL (works for a public repo). Unknown version → 404. Public.'
operationId: cli_pyz_versioned_cli_v_version__hyreflow_pyz_get
parameters:
- name: version
in: path
required: true
schema:
type: string
title: Version
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- CLI
components:
schemas:
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
securitySchemes:
HTTPBearer:
type: http
scheme: bearer