Docs

plugin

Plugins available for the Amfelt client.

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


GET /v1/plugins  

List available plugins.

Returns a page of plugins available for the Amfelt client, optionally filtered by category, name, operating system, architecture, or version.

Parameters  

NameInRequiredTypeDescription
categoryqueryNostring (enum: source, destination, synchronizer, transformer)Category to filter by.
Category to filter by.
namesqueryNostring[]Plugin names to filter by; repeat the parameter to pass multiple values.
Plugin names to filter by; repeat the parameter to pass multiple values.
osqueryNostring (enum: darwin, linux, windows)Operating system to filter by.
Operating system to filter by.
archqueryNostring (enum: amd64, arm64)Architecture to filter by.
Architecture to filter by.
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 plugins.

application/json

PropertyTypeRequiredDescription
dataPlugin []YesThe page of plugins.
The page of plugins.
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.
401 The request lacks valid credentials.

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.

Security  

bearer_jwt


GET /v1/plugins/{plugin_name}  

Find plugins by name.

Returns the releases of a single plugin matching the given name, optionally filtered by category, operating system, architecture, or version.

Parameters  

NameInRequiredTypeDescription
plugin_namepathYesstringName of the plugin.
Name of the plugin.
categoryqueryNostring (enum: source, destination, synchronizer, transformer)Category to filter by.
Category to filter by.
osqueryNostring (enum: darwin, linux, windows)Operating system to filter by.
Operating system to filter by.
archqueryNostring (enum: amd64, arm64)Architecture to filter by.
Architecture to filter by.
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 plugins matching the name.

application/json

PropertyTypeRequiredDescription
dataPlugin []YesThe page of plugins.
The page of plugins.
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.
401 The request lacks valid credentials.

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.

Security  

api_key, bearer_jwt


GET /v1/assets/{asset_id}  

Download a binary asset by ID.

Downloads a binary asset, or returns its metadata, for the given asset identifier.

Parameters  

NameInRequiredTypeDescription
asset_idpathYesintegerIdentifier of the asset.
Identifier of the asset.

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

401 The request lacks valid credentials.

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.

Security  

api_key, bearer_jwt


GET /v1/plugins/{plugin_name}/{version}/assets/{asset_id}  

Download a plugin binary asset by ID.

Downloads a plugin’s binary asset, or returns its metadata, for the given plugin name, version, and asset identifier.

Parameters  

NameInRequiredTypeDescription
plugin_namepathYesstringName of the plugin.
Name of the plugin.
versionpathYesstringSemantic version of the plugin; use ’latest’ for the most recent version.
Semantic version of the plugin; use ’latest’ for the most recent version.
asset_idpathYesintegerIdentifier of the asset.
Identifier of the asset.

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

401 The request lacks valid credentials.

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.

Security  

api_key, bearer_jwt


Schemas  

Plugin List  

type: PluginList

A page of plugins.

PropertyTypeRequiredDescription
dataPlugin []YesThe page of plugins.
The page of plugins.
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.

Plugin  

type: Plugin

PropertyTypeRequiredDescription
assetsAsset []YesDownloadable assets related to the plugin release.
Downloadable assets related to the plugin release.
categorystringYesCategory of the plugin. Valid values are: source, destination, synchronizer, transformer. Examples: source.
Category of the plugin. Valid values are: source, destination, synchronizer, transformer. Examples: source.
idintegerYesUnique identifier of the plugin. Examples: 10.
Unique identifier of the plugin. Examples: 10.
namestringYesName of the plugin in snake case, including the category prefix and without a version suffix. Examples: postgres.
Name of the plugin in snake case, including the category prefix and without a version suffix. Examples: postgres.
prereleasebooleanYesWhether the release is a prerelease rather than a full release. Examples: false.
Whether the release is a prerelease rather than a full release. Examples: false.
published_atstringYesTimestamp when the plugin was released. Examples: 2025-02-04T18:11:08Z.
Timestamp when the plugin was released. Examples: 2025-02-04T18:11:08Z.
versionstringYesSemantic version of the plugin, without a ‘v’ prefix. Examples: 1.1.0.
Semantic version of the plugin, without a ‘v’ prefix. Examples: 1.1.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