4.1.2 • Public • Published


    📖 View Docs

    npm version CircleCI

    Cosmic JavaScript Client

    This is the official JavaScript client for Cosmic headless CMS.

    What is Cosmic?

    Cosmic is a headless CMS, meaning we provide a web dashboard to manage content and an API toolkit to deliver content to any website or app.

    Why use a Headless CMS?

    Teams use Cosmic instead of a legacy installed CMS to help them save time and trouble on CMS infrastructure maintenance. They use our service (either with a paid plan, or generous free plan) and can focus on application business logic and content development instead of CMS infrastructure.

    How to use this NPM module

    Use this NPM module to connect to your Cosmic Buckets and deliver content to any JavaScript enabled website or app. Advanced features are available including logging into your Cosmic account, managing Buckets, CRUD data management, file uploads, and user management. Use it in the browser or in server-side environments like Node.js.

    Getting started

    Go to, create an account and set up a Bucket.


    npm install cosmicjs

    Or include in an HTML file

    <script src=""></script>
    // Exposes the global variable Cosmic
    // Never expose your private keys or credentials in any public website's client-side code

    Basic Usage

    Connect to Bucket [View Docs]

    Use the Cosmic.bucket method to connect to your Bucket. Get your Bucket slug located in Your Bucket > Basic Settings > API Access in your Cosmic Dashboard.

    // Use the Cosmic.bucket method to connect to your Bucket.
    const Cosmic = require('cosmicjs')()
    const bucket = Cosmic.bucket({
      slug: 'your-bucket-slug',
      read_key: 'your-bucket-read-key',
      write_key: 'your-bucket-write-key' // Include only if doing write operations.

    Get Objects by Type [View Docs]

    Get Objects from an Object Type. Uses getObjects method with additional type param. Additional options noted below. See docs for more options including powerful queries and logic.

    const params = {
      query: {
        type: 'posts',
        locale: 'en' // optional, if localization set on Objects
      limit: 5,
      props: 'id,slug,title,content', // get only what you need
      sort: '-created_at' // optional, defaults to order in dashboard
    bucket.getObjects(params).then(data => {
    }).catch(err => {

    Get Single Object [View Docs]

    Returns a single Object from your Bucket.

    By Id

      id: '6038150ead9d8a0ee8ebe290', // Object ID
      props: 'slug,title,content' // get only what you need
    }).then(data => {
    }).catch(err => {

    By Slug

    Use the getObjects method and query param.

      query: {
        type: 'pages',
        slug: 'home', // slugs are unique per locale
        locale: 'en'  // optional, if localization set on Objects
      props: 'slug,title,content' // get only what you need
    }).then(data => {
    }).catch(err => {

    Further Documentation

    See the API reference and full documentation for more requests and capabilities.


    This project is published under the MIT license.


    npm i cosmicjs

    DownloadsWeekly Downloads






    Unpacked Size

    358 kB

    Total Files


    Last publish


    • tonyspiro
    • jazibsawar