CertSafari
    Snowflake SnowPro Core Certification (COF-C03)· Lessons

    Domain 5 · Lesson 19/19

    Publishing Snowflake Listings and Native Apps as a Provider

    Share data using the Snowflake Marketplace and listings

    10 min read
    3.33% of exam
    4 sources
    Published 5 Oct 2026
    Docs as of 4 Oct 2026

    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.

    Extra requirements by listing type
    Listing typeProvider profileProvider and Consumer TermsStripe payout setup
    Free private listingNot requiredNot required if the Customer-Controlled Data Sharing Functionality Terms are acceptedNot required
    Any Snowflake Marketplace listingRequiredRequiredOnly if paid
    Paid listing (private or Marketplace)RequiredRequiredRequired

    Checkpoint 1 of 6· Check yourself

    A team on a Snowflake trial account wants to share a dataset. What can they do?

    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?

    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:

    Privileges required for listing tasks
    TaskRequired roles and privileges
    Create a data listingGlobal CREATE LISTING; CREATE SHARE; OWNERSHIP (or sufficient grants) on the database, schemas, and objects being shared
    Create a Native App listingGlobal CREATE LISTING; OWNERSHIP on the application package
    Modify or configure a listingOWNERSHIP on the listing, or MODIFY on the listing
    Publish a listingOWNERSHIP on the listing; the publishing role must own the attached share or application package; an approved provider profile
    Publish a paid listingThe 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?

    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. 1.Set the access type and add the consumer accounts under Who can access
    2. 2.Enter a title for the listing
    3. 3.Select Publish
    4. 4.Select Create Listing » Specified Consumers
    5. 5.Add the data product (database objects or an existing share)

    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.

    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?

    Sources34

    Exam traps

    Each one states something that sounds right. Open it to see what is actually true.

    1. 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. 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. 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. 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. 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. 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. 4.
      “Consumers can’t convert a Snowflake Native App from one listing type to another”
      ↩︎ Distributing Snowflake Native Apps through listings

    Ready to test yourself?

    Practise the 13 questions on this subdomain.

    Spotted a mistake, or was something unclear? Tell us.