What you will be able to do
- State the account, role and legal requirements for offering listings
- Identify the privileges and ownership rules needed to create and publish a listing
- Order the steps for creating a private listing and moving a direct-share consumer onto it
- Explain how a Snowflake Native App is packaged and distributed through listings
1.Who can become a listing provider
A listing packages a share or an app as a data product, so other Snowflake accounts can get it privately or from the Snowflake Marketplace. Not every account can publish one. A provider must use a full Snowflake account. A trial account can share data with specified consumers but cannot publish on the Marketplace. The provider must not be using a reader account. It needs the ACCOUNTADMIN role or a role with provider privileges, and it must meet the legal requirements. Accounts in U.S. government regions must also accept a cross-region disclaimer.
The legal step is done by an organization administrator (ORGADMIN), who accepts the Snowflake Provider and Consumer Terms in Snowsight under Admin » Terms. There is one exception. Free private listings don't need those terms if the Snowflake Customer-Controlled Data Sharing Functionality Terms have been accepted instead.
The extra requirements depend on what you offer. Paid listings and any Marketplace listing need a provider profile, created in Provider Studio and approved by Snowflake. Free private listings don't need one. Paid listings also need a payout method: Snowflake Marketplace pays providers through a Stripe Express connected account, which costs the provider nothing extra. Paid listings can only be created if the account's billing address is in a supported country. Before creating a paid listing for the Marketplace, contact your Snowflake business development partner, or Marketplace Operations if you don't have one. This step is required for approval.
| Listing type | Provider profile | Provider and Consumer Terms | Stripe payout setup |
|---|---|---|---|
| Free private listing | Not required | Not required if the Customer-Controlled Data Sharing Functionality Terms are accepted | Not required |
| Any Snowflake Marketplace listing | Required | Required | Only if paid |
| Paid listing (private or Marketplace) | Required | Required | Required |
Checkpoint 1 of 6· Check yourself
A team on a Snowflake trial account wants to share a dataset. What can they do?
Marketplace publishing requires a full account. Trial accounts are limited to sharing with specified consumers.
“Trial accounts can share data with specified consumers, but not on the Snowflake Marketplace.”Source: docs.snowflake.com
Checkpoint 2 of 6· Exam question
A weather-data provider wants any Snowflake customer worldwide to be able to find its dataset by browsing or searching, without the provider needing to know who the consumers are in advance. Which listing type accomplishes this goal?
Correct answer: A — A public listing published to the Snowflake Marketplace, which makes the dataset discoverable and requestable by any Snowflake account
- A. Public listings are the mechanism specifically designed for broad, unauthenticated-by-name discovery on the Marketplace, letting any Snowflake customer search for and request the dataset without prior coordination. This directly matches the goal of open discoverability.
- B. Sharing across an organization's own accounts only reaches accounts already under that organization, not the broader Snowflake customer base the provider wants to reach. This is a narrower internal-sharing pattern, not open Marketplace discovery.
- C. A direct secure share still requires the provider to enumerate specific consumer accounts up front, which is exactly what the provider is trying to avoid by wanting open discoverability. It offers no public search surface.
- D. Reader accounts are provisioned individually per non-Snowflake consumer and require the provider to already have identified each company, so they do not enable open, self-service discovery by unknown customers.
Sources1
2.Privileges and the ownership rule
You create a listing from the account that holds the data or the application package. You can use ACCOUNTADMIN or a custom role. Either way, the ORGADMIN role must first delegate privileges to set up auto-fulfillment. For a custom role, ORGADMIN delegates to ACCOUNTADMIN, which then grants the privileges to the custom role. The privileges needed depend on the task:
| Task | Required roles and privileges |
|---|---|
| Create a data listing | Global CREATE LISTING; CREATE SHARE; OWNERSHIP (or sufficient grants) on the database, schemas, and objects being shared |
| Create a Native App listing | Global CREATE LISTING; OWNERSHIP on the application package |
| Modify or configure a listing | OWNERSHIP on the listing, or MODIFY on the listing |
| Publish a listing | OWNERSHIP on the listing; the publishing role must own the attached share or application package; an approved provider profile |
| Publish a paid listing | The requirements to publish a listing, plus a Stripe Express account |
One rule catches people out. The role that attaches the data product and publishes the listing must be the role that owns the share or application package, and ownership of a share cannot be transferred. So if one role owns the share and a different role creates the listing, you don't move ownership of the share. Instead, grant MODIFY on the listing to the role that owns the share or package.
Checkpoint 3 of 6· Check yourself
Role DATA_ENG created and owns a share. Role LISTING_MGR created the listing. How do you let the listing use the share?
Share ownership can't be transferred, so the role that owns the share gets MODIFY on the listing.
“grant the MODIFY privilege on the listing to the role that owns the share or application package”Source: docs.snowflake.com
Sources1
3.Creating private and Marketplace listings
You build listings in Snowsight under Marketplace » Provider Studio. For a private listing, choose Create Listing » Specified Consumers and give the listing a title. Then add a data product: if you select database objects, Snowflake creates a secure share for them; you can also pick an existing share. Next, choose the access type and list the consumers' organization and account names. You need each consumer's account identifier. For consumers in other regions, set how often auto-fulfillment replicates the data product and, if needed, which warehouse it uses. Add a description, legal terms and optional extras such as attributes, a data dictionary, business needs and sample queries. Then publish. If you don't publish right away, the listing is saved as a draft.
For a Marketplace listing, choose Create Listing » Snowflake Marketplace, add a subtitle and a provider profile, and pick a product type. A Secure share attaches data. A Native App attaches an application that runs inside the consumer's account. A Connected App connects to the consumer's account to process data. The access type can be Free, Limited trial or Paid. If you choose Paid and later want a different type, you have to delete the draft and start a new one. Marketplace listings are submitted for approval before they are published.
An existing direct share can become a free private listing (or a paid off-platform one) by attaching the share that backs it as the listing's data product. If remote consumers will be served through auto-fulfillment, coordinate with them. Once replication finishes, they get an email. They then drop the database they imported from the direct share, get the listing, and create a database with the same name.
Checkpoint 4 of 6· Put it in order
Put the steps for creating a free private listing in Provider Studio in order
- 1.Set the access type and add the consumer accounts under Who can access
- 2.Enter a title for the listing
- 3.Select Publish
- 4.Select Create Listing » Specified Consumers
- 5.Add the data product (database objects or an existing share)
You pick the listing type first, then name it, then attach the data product. Access and consumers come next, and publishing comes last.
“Select Create Listing » Specified Consumers.”Source: docs.snowflake.com
Sources2
4.Distributing Snowflake Native Apps through listings
Listings can deliver applications as well as data. The Snowflake Native App Framework lets providers share data together with business logic, such as Streamlit apps, stored procedures and functions written in Snowpark, JavaScript and SQL. The framework uses the same provider and consumer roles as Secure Data Sharing.
The provider builds an application package. It contains the data content, application logic, metadata and setup script, along with version and patch information. Every package needs a manifest file, which defines configuration such as where the setup script is, and a setup script, whose SQL runs when the app is installed or upgraded. Once the package is tested, the provider attaches it as the data product of a listing. That can be a Marketplace listing, to reach many consumers, or a private listing, to reach specific accounts in any region the framework supports. App listings can be free or paid.
When a consumer installs the app, Snowflake creates a database object in the consumer's account called the Snowflake Native App and runs the setup script to create the objects the app needs. After installing, the consumer can grant privileges the app requires and turn on logging and event sharing so the provider can troubleshoot. Providers can then release new versions and patches to update the app over time. Consumers can't convert an installed Native App from one listing type to another.
Checkpoint 5 of 6· Match them up
Match each Native App Framework component to its role
Tap a term, then the definition that fits it.
The provider ships the package (with its manifest and setup script) through a listing. Installing it creates the app object in the consumer's account.
“A Snowflake Native App is the database object installed in the consumer account.”Source: docs.snowflake.com
Checkpoint 6 of 6· Exam question
A government open-data agency publishes a demographic dataset on the Snowflake Marketplace and wants every consumer who finds it to get the complete, current dataset immediately with no request approval step and no charge. Which listing model should the agency choose?
Correct answer: A — A free listing, which gives consumers instant access to the full published dataset without any request-approval workflow
- A. Free listings are the model built for instant, full access to a published dataset at no cost and without a manual approval gate, which matches the agency's goal of frictionless open access. Consumers can add the data as soon as they find the listing.
- B. A limited trial listing intentionally caps access to a time window or subset of data so consumers evaluate before committing, which conflicts with the requirement for immediate access to the complete dataset.
- C. A paid listing introduces metered billing for consumers, which directly contradicts the requirement that access be free of charge.
- D. A private listing requires the agency to approve and name each consumer account, which reintroduces the manual gate the agency explicitly wants to avoid for an open dataset.
Exam traps
Each one states something that sounds right. Open it to see what is actually true.
1.Every listing, including a free private one, needs an approved provider profile.Why is that wrong?
A provider profile is required only for paid listings and Marketplace listings. Free private listings don't need one.
Covered in Who can become a listing provider
2.If a different role manages the listing, transfer ownership of the share to that role.Why is that wrong?
Ownership of a share cannot be transferred. Grant MODIFY on the listing to the role that owns the share instead.
Covered in Privileges and the ownership rule
3.A Native App runs in the provider's account and consumers only call it remotely.Why is that wrong?
Installing the app creates it as a database object in the consumer's account, and the setup script runs there.
Covered in Distributing Snowflake Native Apps through listings
Sources
Every claim above is drawn from one of these pages, quoted as it was written on the date shown.
- 1.
“You must not be using a Reader Account.”
↩︎ Who can become a listing provider“To offer paid listings or any listings on the Snowflake Marketplace, you must create a provider profile.”
↩︎ Who can become a listing provider“an organization administrator (ORGADMIN) needs to review and accept the combined Snowflake Provider and Consumer Terms.”
↩︎ Who can become a listing provider“Snowflake Marketplace uses Stripe to process Provider payouts.”
↩︎ Who can become a listing provider“Before creating a paid listing that you want to publish on the Snowflake Marketplace, contact your business development partner at Snowflake.”
↩︎ Who can become a listing provider“the ORGADMIN role must first Delegate privileges to set up auto-fulfillment.”
↩︎ Privileges and the ownership rule“You cannot transfer the OWNERSHIP privilege for a share.”
↩︎ Privileges and the ownership rule“You do not need a provider profile to offer free private listings.”
↩︎ Exam trap 1“You cannot transfer the OWNERSHIP privilege for a share.”
↩︎ Exam trap 2“Trial accounts can share data with specified consumers, but not on the Snowflake Marketplace.”
↩︎ Checkpoint - 2.
“You must know a consumer’s account identifier to share a listing with them.”
↩︎ Creating private and Marketplace listings“Native App: Attach applications that run directly and securely in a consumer’s account.”
↩︎ Creating private and Marketplace listings“you have to delete the current draft and create a new one”
↩︎ Creating private and Marketplace listings“Drop the existing imported database created from the direct share.”
↩︎ Creating private and Marketplace listings“grant the MODIFY privilege on the listing to the role that owns the share or application package”
↩︎ Checkpoint“Select Create Listing » Specified Consumers.”
↩︎ Checkpoint - 3.
“An application package encapsulates the data content, application logic, metadata, and setup script required by an application.”
↩︎ Distributing Snowflake Native Apps through listings“You can distribute and monetize your apps in the Snowflake Marketplace or distribute them to specific consumers using private listings.”
↩︎ Distributing Snowflake Native Apps through listings“An application package requires a manifest file and a setup script.”
↩︎ Distributing Snowflake Native Apps through listings“Contains SQL statements that are run when the consumer installs or upgrades an application”
↩︎ Exam trap 3“A Snowflake Native App is the database object installed in the consumer account.”
↩︎ Checkpoint - 4.
“Consumers can’t convert a Snowflake Native App from one listing type to another”
↩︎ Distributing Snowflake Native Apps through listings