Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

The Official Python Brandfolder SDK


What is Brandfolder?

Brandfolder is a visually-elegant and user-friendly Digital Asset Management software that allows marketers and creatives across industries to maximize their brand management potential. Brandfolder is more than just storage for your digital assets; with our solution's cloud-first architecture, users can organize, manipulate, distribute, and analyze their most important digital collateral from a single source of truth. With advanced AI-powered smart search, asset editing and manipulation, annotated workflow with approvals and notifications, and actionable brand insights, Brandfolder's feature suite amplifies cross-team collaboration and productivity, and empowers external users to access the content they need with unprecedented ease.


Install latest official build:

pip install brandfolder

Install from source:

git clone
cd sdk-python
python install


Interaction with the Brandfolder API via the Python SDK is client based. The first thing you need to do is create a client:

client = Client(api_key=API_KEY)

A valid Brandfolder API key is required for all actions. Find yours at

Methods for interacting with resource containers from Brandfolder:

container.fetch(): Returns a list from the first page of available objects of the provided type. (e.g. client.brandfolders.fetch())

container.fetch_by_id(<resource_id>): Returns the object associated with the provided type and id. (e.g. client.brandfolders.fetch_by_id(<bf_id>))

Methods for interacting with resource objects from Brandfolder:

obj.get(<attribute>): Returns the provided attribute value of the associated object. (e.g. asset.get('name'))

obj.refresh(): Updates local object attributes with what currently exists in Brandfolder.

obj.set(<updates>): Prepares to apply provided updates to the associated object. (e.g. asset.set(name='New Name'))

obj.update(): Pushes updates to the associated object to Brandfolder.

obj.delete(): Deletes the associated object in Brandfolder.

brandfolder_obj.create_section(): Creates section in the associated Brandfolder.

brandfolder_obj.create_collection(): Creates collection in the associated Brandfolder.

brandfolder_obj.create_asset(attachments_data, section_key, **attributes): Creates asset in the associated Brandfolder. This is also available for a Collection. Returns assets in the associated Brandfolder that match the query parameters provided.

Fields on resource objects: The id of the associated object.

obj.attributes: The attributes of the provided object.

obj.relationships: Information about the resources related to the provided object, if explicitly included in the API call.

obj.included: The included resources that are related to the provided object, if explicitly included in the API call.

obj.updates: A dict of staged updates to the associated object that are ready to apply.


See the complete API documentation at for more examples.

Get all available organizations:

orgs = client.organizations.fetch()

Get a specific Brandfolder:

bf = client.brandfolders.fetch_by_id(<brandfolder_id>)

Updating an asset:

asset = bf.assets.fetch_by_id(<asset_id>)  # Grab an asset
asset.set(name='New Name')
asset.update()  # Pushes new attributes to Brandfolder

Search for assets within a Brandfolder:

# Will return results with a name containing "Sample" of filetype ".png"

bf = client.brandfolders.fetch_by_id(<brandfolder_id>)
search_parameters = ['name:sample', 'extension:png']
results =


No description, website, or topics provided.







No packages published

Contributors 4