> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getmembrane.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Packages

Integration Packages are collections of integration elements. Packages can be organized around external apps (i.e. "Integration with Github"), integration scenarios (i.e. "Unified API for Tasks"), product features (i.e. "Documents Import") or any other grouping.

Example of a package:

```yaml theme={null}
name: Continuously Import Users
shortDescription: Import users from external app and keep them in sync by monitoring events.
description: <Long description explaining the scenario in detail>
elements:
  - type: action
    id: <action id>
  - type: flow
    id: <flow id>
```

Packages can be universal (work across multiple integrations) and integration-specific.

When a universal package is applied to a given integration (by creating a child package for that integration that has `parentId` pointing to the universal one), elements of the integration-specific packages are automatically generated and the list of elements can only be changed in the parent package.

## API Operations

| Operation                                                                                      | Method | Endpoint                            | Description                     |
| ---------------------------------------------------------------------------------------------- | ------ | ----------------------------------- | ------------------------------- |
| [List all packages](/api-reference/packages/list-packages)                                     | GET    | `/packages`                         | Retrieve all available packages |
| [Get package](/api-reference/packages/get-package-by-selector)                                 | GET    | `/packages/{selector}`              | Get specific package details    |
| [Create a new package](/api-reference/packages/create-a-new-package)                           | POST   | `/packages`                         | Create a new package            |
| [Replace package](/api-reference/packages/replace-package-completely)                          | PUT    | `/packages/{selector}`              | Replace package configuration   |
| [Patch package](/api-reference/packages/update-package-partially)                              | PATCH  | `/packages/{selector}`              | Update package partially        |
| [Clone package](/api-reference/packages/clone-package)                                         | POST   | `/packages/{selector}/clone`        | Clone an existing package       |
| [Reset package](/api-reference/packages/reset-package)                                         | POST   | `/packages/{selector}/reset`        | Reset package to default        |
| [Export package](/api-reference/packages/export-package-flat-interface)                        | GET    | `/packages/{selector}/export`       | Export package configuration    |
| [Get package dependencies](/api-reference/packages/get-dependencies-of-package-flat-interface) | GET    | `/packages/{selector}/dependencies` | Get package dependencies        |
| [Restore package](/api-reference/packages/restore-package-flat-interface)                      | POST   | `/packages/{selector}/restore`      | Restore archived package        |
| [Refresh package](/api-reference/packages/refresh-package)                                     | POST   | `/packages/{selector}/refresh`      | Refresh package from source     |
| [Archive package](/api-reference/packages/archive-package)                                     | DELETE | `/packages/{selector}`              | Archive a package               |
