Docs

agent-release

Released builds of the Amfelt agent.

Amfelt REST API · v1.13.0 · https://api.amfelt.com


GET /v1/agent/releases  

List agent releases.

Returns a page of released Amfelt agent builds, optionally filtered by version. Public: the agent CLI fetches this before it holds any credentials. Without a version filter, data holds the published releases newest first by semantic-version precedence, and prereleases are left out.

Parameters  

NameInRequiredTypeDescription
versionqueryNostringSemantic version to filter by; use ’latest’ for the most recent version.
Semantic version to filter by; use ’latest’ for the most recent version.
cursorqueryNostringOpaque cursor for the next page; pass back the ’next_cursor’ from a prior response.
Opaque cursor for the next page; pass back the ’next_cursor’ from a prior response.
limitqueryNointegerMaximum number of items to return per page.
Maximum number of items to return per page.

Responses  

200 A page of agent releases.

application/json

PropertyTypeRequiredDescription
dataAgentRelease []YesThe page of agent releases.
The page of agent releases.
next_cursor[string null]NoOpaque cursor for the next page, or null when this is the final page. Examples: eyJpZCI6OTk5fQ.
Opaque cursor for the next page, or null when this is the final page. Examples: eyJpZCI6OTk5fQ.
400 The request was malformed or failed validation.

application/json

PropertyTypeRequiredDescription
codestringYesStable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument.
Stable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument.
fieldstringNoOptional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug.
Optional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug.
messagestringYesHuman-readable description of the error. Examples: limit must be between 1 and 100.
Human-readable description of the error. Examples: limit must be between 1 and 100.

GET /v1/agent/releases/{version}/assets/{os}/{arch}  

Download an agent binary asset.

Downloads the agent binary, or returns its metadata, for the given release version, operating system, and architecture. Public: the agent CLI fetches this before it holds any credentials.

Parameters  

NameInRequiredTypeDescription
versionpathYesstringSemantic version of the agent release; use ’latest’ for the most recent version.
Semantic version of the agent release; use ’latest’ for the most recent version.
ospathYesstring (enum: darwin, linux, windows)Operating system of the agent binary.
Operating system of the agent binary.
archpathYesstring (enum: amd64, arm64)Architecture of the agent binary.
Architecture of the agent binary.

Responses  

200 The binary asset, or its metadata.

application/json

PropertyTypeRequiredDescription
archstringYesArchitecture supported by the asset. Valid values are: amd64, arm64. Examples: amd64.
Architecture supported by the asset. Valid values are: amd64, arm64. Examples: amd64.
checksumstringNoOptional sha256 checksum of the asset archive. Examples: 2f1f366ae2307a9b9ae81b73abff5b2af8a1a1069284a73ee285a2bb6d55b8a0.
Optional sha256 checksum of the asset archive. Examples: 2f1f366ae2307a9b9ae81b73abff5b2af8a1a1069284a73ee285a2bb6d55b8a0.
content_typestringYesMedia type of the asset archive as defined by IANA media types (see https://www.iana.org/assignments/media-types/media-types.xhtml  ). Examples: application/g-tar.
Media type of the asset archive as defined by IANA media types (see https://www.iana.org/assignments/media-types/media-types.xhtml  ). Examples: application/g-tar.
filenamestringYesFilename of the asset archive. Examples: plugin-sdk_Linux_x86_64.tar.gz.
Filename of the asset archive. Examples: plugin-sdk_Linux_x86_64.tar.gz.
idintegerYesUnique identifier of the asset. Examples: 10.
Unique identifier of the asset. Examples: 10.
osstringYesOperating system supported by the asset. Valid values are: darwin, linux, windows. Examples: darwin.
Operating system supported by the asset. Valid values are: darwin, linux, windows. Examples: darwin.
sizeintegerNoSize of the asset archive in bytes. Examples: 6527251.
Size of the asset archive in bytes. Examples: 6527251.
urlstringYesURL the asset can be downloaded from. Examples: https://github.com/amfeltlabs/hub/releases/download/source-plugin-sdk-v1.1.6/plugin-sdk_Linux_x86_64.tar.gz.
URL the asset can be downloaded from. Examples: https://github.com/amfeltlabs/hub/releases/download/source-plugin-sdk-v1.1.6/plugin-sdk_Linux_x86_64.tar.gz.

application/octet-stream

400 The request was malformed or failed validation.

application/json

PropertyTypeRequiredDescription
codestringYesStable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument.
Stable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument.
fieldstringNoOptional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug.
Optional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug.
messagestringYesHuman-readable description of the error. Examples: limit must be between 1 and 100.
Human-readable description of the error. Examples: limit must be between 1 and 100.
404 The specified resource was not found.

application/json

PropertyTypeRequiredDescription
codestringYesStable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument.
Stable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument.
fieldstringNoOptional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug.
Optional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug.
messagestringYesHuman-readable description of the error. Examples: limit must be between 1 and 100.
Human-readable description of the error. Examples: limit must be between 1 and 100.

Schemas  

Agent Release List  

type: AgentReleaseList

A page of agent releases.

PropertyTypeRequiredDescription
dataAgentRelease []YesThe page of agent releases.
The page of agent releases.
next_cursor[string null]NoOpaque cursor for the next page, or null when this is the final page. Examples: eyJpZCI6OTk5fQ.
Opaque cursor for the next page, or null when this is the final page. Examples: eyJpZCI6OTk5fQ.

Agent Release  

type: AgentRelease

A released build of the Amfelt agent.

PropertyTypeRequiredDescription
assetsAsset []YesDownloadable binary assets for the release.
Downloadable binary assets for the release.
published_atstringYesTimestamp when the agent release was published. Examples: 2025-02-04T18:11:08Z.
Timestamp when the agent release was published. Examples: 2025-02-04T18:11:08Z.
versionstringYesSemantic version of the agent release, without a ‘v’ prefix. Examples: 1.4.0.
Semantic version of the agent release, without a ‘v’ prefix. Examples: 1.4.0.

Asset  

type: Asset

PropertyTypeRequiredDescription
archstringYesArchitecture supported by the asset. Valid values are: amd64, arm64. Examples: amd64.
Architecture supported by the asset. Valid values are: amd64, arm64. Examples: amd64.
checksumstringNoOptional sha256 checksum of the asset archive. Examples: 2f1f366ae2307a9b9ae81b73abff5b2af8a1a1069284a73ee285a2bb6d55b8a0.
Optional sha256 checksum of the asset archive. Examples: 2f1f366ae2307a9b9ae81b73abff5b2af8a1a1069284a73ee285a2bb6d55b8a0.
content_typestringYesMedia type of the asset archive as defined by IANA media types (see https://www.iana.org/assignments/media-types/media-types.xhtml  ). Examples: application/g-tar.
Media type of the asset archive as defined by IANA media types (see https://www.iana.org/assignments/media-types/media-types.xhtml  ). Examples: application/g-tar.
filenamestringYesFilename of the asset archive. Examples: plugin-sdk_Linux_x86_64.tar.gz.
Filename of the asset archive. Examples: plugin-sdk_Linux_x86_64.tar.gz.
idintegerYesUnique identifier of the asset. Examples: 10.
Unique identifier of the asset. Examples: 10.
osstringYesOperating system supported by the asset. Valid values are: darwin, linux, windows. Examples: darwin.
Operating system supported by the asset. Valid values are: darwin, linux, windows. Examples: darwin.
sizeintegerNoSize of the asset archive in bytes. Examples: 6527251.
Size of the asset archive in bytes. Examples: 6527251.
urlstringYesURL the asset can be downloaded from. Examples: https://github.com/amfeltlabs/hub/releases/download/source-plugin-sdk-v1.1.6/plugin-sdk_Linux_x86_64.tar.gz.
URL the asset can be downloaded from. Examples: https://github.com/amfeltlabs/hub/releases/download/source-plugin-sdk-v1.1.6/plugin-sdk_Linux_x86_64.tar.gz.

Error  

type: Error

The standard error envelope returned by every non-2xx response.

PropertyTypeRequiredDescription
codestringYesStable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument.
Stable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument.
fieldstringNoOptional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug.
Optional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug.
messagestringYesHuman-readable description of the error. Examples: limit must be between 1 and 100.
Human-readable description of the error. Examples: limit must be between 1 and 100.

Last updated on October 31, 2026