Skip to main content
GET/api/public/v1/extensions/{id}

extensions.get

One extension with its last 50 versions: SHA-256, size, signature (verified CRX3 or unsigned ZIP), Chrome Web Store signature, licence found in the package, permissions and review decisions.

Capability: profile.readMCP tool: extensions_get
View as Markdown

Parameters

NameTypeRequiredDescription
idpathstring (uuid)YesExtension id

Examples

curl "https://browlix.com/api/public/v1/extensions/<id>" \
  -H "Authorization: Bearer $BROWLIX_API_KEY"

Response

200 with { data, correlation_id }.

FieldTypeAlways presentDescription
dataobjectYes
data.idstring (uuid)Yes
data.namestringYes
data.source"store" | "upload"Yes
data.store_idstringNo
data.chrome_idstringYesThe extension ID every machine loads it under
data.key_generatedbooleanYesBrowlix created the key of an uploaded extension without one, so its ID stays the same everywhere
data.state"approved" | "update_pending" | "unreviewed" | "rejected" | "disabled"Yes
data.revisionintegerYes(min -9007199254740991, max 9007199254740991)
data.active_versionobjectNoThe version profiles load
data.active_version.idstring (uuid)Yes
data.active_version.versionstringYes
data.active_version.namestringYes
data.active_version.manifest_versionintegerYes(min -9007199254740991, max 9007199254740991)
data.active_version.sha256stringYesSHA-256 of the stored file; machines check it before loading
data.active_version.size_bytesintegerYes(min -9007199254740991, max 9007199254740991)
data.active_version.format"crx3" | "zip"Yes
data.active_version.signature"verified" | "unsigned"Yesverified: every CRX3 proof checked by the server; unsigned: a plain ZIP
data.active_version.store_signedbooleanYesAlso signed by the Chrome Web Store
data.active_version.permissionsarray<string>Yes
data.active_version.host_permissionsarray<string>YesSites it can read and change (host permissions and content-script matches)
data.active_version.optional_permissionsarray<string>Yes
data.active_version.licensestringNoLicence found in the package (SPDX id, or custom); absent when the package has no licence file
data.active_version.same_version_changedbooleanYesA different file under a version number already in the library
data.active_version.state"unreviewed" | "approved" | "rejected"Yes
data.active_version.added_permissionsarray<string>NoPermissions beyond the version profiles load now (what an approval must acknowledge)
data.active_version.removed_permissionsarray<string>No
data.active_version.created_atstring (date-time)Yes
data.active_version.reviewed_atstring (date-time)No
data.pending_versionobjectNoThe newest version waiting for review
data.pending_version.idstring (uuid)Yes
data.pending_version.versionstringYes
data.pending_version.namestringYes
data.pending_version.manifest_versionintegerYes(min -9007199254740991, max 9007199254740991)
data.pending_version.sha256stringYesSHA-256 of the stored file; machines check it before loading
data.pending_version.size_bytesintegerYes(min -9007199254740991, max 9007199254740991)
data.pending_version.format"crx3" | "zip"Yes
data.pending_version.signature"verified" | "unsigned"Yesverified: every CRX3 proof checked by the server; unsigned: a plain ZIP
data.pending_version.store_signedbooleanYesAlso signed by the Chrome Web Store
data.pending_version.permissionsarray<string>Yes
data.pending_version.host_permissionsarray<string>YesSites it can read and change (host permissions and content-script matches)
data.pending_version.optional_permissionsarray<string>Yes
data.pending_version.licensestringNoLicence found in the package (SPDX id, or custom); absent when the package has no licence file
data.pending_version.same_version_changedbooleanYesA different file under a version number already in the library
data.pending_version.state"unreviewed" | "approved" | "rejected"Yes
data.pending_version.added_permissionsarray<string>NoPermissions beyond the version profiles load now (what an approval must acknowledge)
data.pending_version.removed_permissionsarray<string>No
data.pending_version.created_atstring (date-time)Yes
data.pending_version.reviewed_atstring (date-time)No
data.versions_countintegerYes(min -9007199254740991, max 9007199254740991)
data.assignmentsarray<object>Yes
data.assignments[].idstring (uuid)Yes
data.assignments[].target_kind"workspace" | "group" | "profile"Yes
data.assignments[].group_idstring (uuid)No
data.assignments[].profile_idstring (uuid)No
data.assignments[].target_namestringNo
data.assignments[].hiddenbooleanNoThe group or profile is outside your group scope: it is not named
data.assignments[].requiredbooleanYes
data.profiles_reachedintegerYesActive profiles at least one assignment reaches (min -9007199254740991, max 9007199254740991)
data.created_atstring (date-time)Yes
data.updated_atstring (date-time)Yes
data.versionsarray<object>Yes
data.versions[].idstring (uuid)Yes
data.versions[].versionstringYes
data.versions[].namestringYes
data.versions[].manifest_versionintegerYes(min -9007199254740991, max 9007199254740991)
data.versions[].sha256stringYesSHA-256 of the stored file; machines check it before loading
data.versions[].size_bytesintegerYes(min -9007199254740991, max 9007199254740991)
data.versions[].format"crx3" | "zip"Yes
data.versions[].signature"verified" | "unsigned"Yesverified: every CRX3 proof checked by the server; unsigned: a plain ZIP
data.versions[].store_signedbooleanYesAlso signed by the Chrome Web Store
data.versions[].permissionsarray<string>Yes
data.versions[].host_permissionsarray<string>YesSites it can read and change (host permissions and content-script matches)
data.versions[].optional_permissionsarray<string>Yes
data.versions[].licensestringNoLicence found in the package (SPDX id, or custom); absent when the package has no licence file
data.versions[].same_version_changedbooleanYesA different file under a version number already in the library
data.versions[].state"unreviewed" | "approved" | "rejected"Yes
data.versions[].added_permissionsarray<string>NoPermissions beyond the version profiles load now (what an approval must acknowledge)
data.versions[].removed_permissionsarray<string>No
data.versions[].created_atstring (date-time)Yes

New fields can appear at any time; ignore the ones you do not know.

Errors

CodeHTTPRetryable
UNAUTHENTICATED401No
FORBIDDEN403No
RATE_LIMITED429Yes
VALIDATION_FAILED422No
NOT_FOUND404No
DEPENDENCY_UNAVAILABLE503Yes
UNKNOWN500No

Every error code and when to retry

All operations