Power the world’s entrepreneurs

Build for 600,000 businesses that are transforming the world of commerce.

Become part of an incredible growth story

Our developer platform is growing as quickly as our customer base.

Earning potential

$162K

Average annual earnings for the top 25% of our app developers

Valuable clients

$10K

Average earnings from a Shopify custom development project

Graph showing the total amount paid to developers on the Shopify platform from 2013 to 2017. The numbers for each year increase exponentially from $1.7 million in 2013 to $47.2 million in 2017. $100 million is the total amount paid to developers as of April 2018.

App payouts to developers

$100M Label Cumulative payouts to our developers

April 2018

Use our powerful suite of APIs and tools

Shopify’s guides, tutorials, and thorough documentation help you every step of the way.

Admin API

Build apps for the Shopify admin.

Custom storefronts

Develop unique shopping experiences on web, on mobile, and in-game.

Embedded apps

Build more seamless experiences using our extensions and libraries.

Get started with the Shopify Admin API in minutes

50+ endpoints to give you the freedom to build what you want. See examples below.

Table of Contents - API Code Samples

API code languages Navigation

require 'shopify_api'

# Replace the following with your shop URL
shop_url = "https://#{API_KEY}:#{PASSWORD}@#{SHOP_NAME}.myshopify.com/admin"
ShopifyAPI::Base.site = shop_url

shop = ShopifyAPI::Shop.current

# Create a new product
new_product = ShopifyAPI::Product.new
new_product.title = "Burton Custom Freestyle 151"
new_product.product_type = "Snowboard"
new_product.vendor = "Burton"
new_product.save

# Update a product
new_product.title = "Burton Custom Freestyle 151 - Ruby Edition"
new_product.save
const Shopify = require('shopify-api-node')

// Replace the following with your shop credentials
const shopify = new Shopify({
  shopName: 'your-shop-name',
  apiKey: 'your-api-key',
  password: 'your-password'
})

// Create a new product
function create_a_product() {
  return shopify.product.create(
    {
      "title": "Burton Custom Freestlye 151",
      "product_type": "Snowboard",
      "vendor": "Burton"
    }
  )
}

// Update a product
function update_product_after_creation(product_id) {
  params = {
    "title": "Burton Custom Freestyle 151 - Node Edition"
  }
  return shopify.product.update(product_id, params)
}

create_a_product().then(
  response => update_product_after_creation(response.id)
).then(
  response => create_an_order(response.variants[0].id),
  err => console.error(err)
)
import shopify

# Replace the following with your shop URL
shop_url = "https://{API_KEY}:{PASSWORD}@{SHOP_NAME}.myshopify.com/admin"
shopify.ShopifyResource.set_site(shop_url)

# Create a new product
new_product = shopify.Product()
new_product.title = "Burton Custom Freestyle 151"
new_product.product_type = "Snowboard"
new_product.vendor = "Burton"
new_product.save()

# Update a product
new_product.title = "Burton Custom Freestyle 151 - Python Edition"
new_product.save()
# Create a new product
mutation {
  productCreate(
    input: {
      title: "Burton Custom Freestyle 151",
      productType: "Snowboard",
      vendor: "Burton"
    }
  ) {
    product {
      id
    }
    shop {
      id
    }
  }
}

# Update a product
mutation {
  productUpdate(
    input: {
      id: "gid://shopify/Product/629116370966",
      title: "Burton Custom Freestyle 151 - GraphQL Edition"
    }
  ) {
    product {
      id
    }
  }
}

API code languages Navigation

require 'shopify_api'

# Replace the following with your shop URL
shop_url = "https://#{API_KEY}:#{PASSWORD}@#{SHOP_NAME}.myshopify.com/admin"
ShopifyAPI::Base.site = shop_url

shop = ShopifyAPI::Shop.current

# Create a new product
new_product = ShopifyAPI::Product.new
new_product.title = "Burton Custom Freestyle 151"
new_product.product_type = "Snowboard"
new_product.save

# Create a new order
new_order = ShopifyAPI::Order.new
new_order.line_items = [
  ShopifyAPI::LineItem.new(
    :quantity => 1,
    :variant_id => new_product.variants.first.id
  )
]
new_order.save
const Shopify = require('shopify-api-node')

// Replace the following with your shop credentials
const shopify = new Shopify({
  shopName: 'your-shop-name',
  apiKey: 'your-api-key',
  password: 'your-password'
})

// Create a new product
function create_a_product() {
  return shopify.product.create(
    {
      "title": "Burton Custom Freestlye 151",
      "product_type": "Snowboard",
    }
  )
}

// Create a new order
function create_an_order(variant_id) {
  return shopify.order.create(
    {
      "line_items": [
        {
          "quantity": 1,
          "variant_id": variant_id
        }
      ]
    }
  )
}

create_a_product().then(
  response => update_product_after_creation(response.id)
).then(
  response => create_an_order(response.variants[0].id),
  err => console.error(err)
)
import shopify

# Replace the following with your shop URL
shop_url = "https://{API_KEY}:{PASSWORD}@{SHOP_NAME}.myshopify.com/admin"
shopify.ShopifyResource.set_site(shop_url)

# Create a new product
new_product = shopify.Product()
new_product.title = "Burton Custom Freestyle 151"
new_product.product_type = "Snowboard"
new_product.save()

# Create a new order
new_order = shopify.Order()
new_order.line_items = [{
        "quantity": 1,
        "variant_id": new_product.variants[0].id
    }]
new_order.save()
# Create a new order
mutation {
  draftOrderCreate(
    input: {
      lineItems: {
        variantId: "gid://shopify/ProductVariant/40534704150",
        quantity: 1
      }
    }
  ) {
    draftOrder {
      id
    }
  }
}

API code languages Navigation

require 'shopify_api'

# Replace the following with your shop URL
shop_url = "https://#{API_KEY}:#{PASSWORD}@#{SHOP_NAME}.myshopify.com/admin"
ShopifyAPI::Base.site = shop_url

shop = ShopifyAPI::Shop.current

# Create new customer
new_customer = ShopifyAPI::Customer.new
new_customer.email = "sample.coder.ruby@shopify.com"
new_customer.first_name = "Sample"
new_customer.last_name = "Coder"
new_customer.save

# Update customer details
new_customer.first_name = "Supersample Ruby"
new_customer.save
const Shopify = require('shopify-api-node')

// Replace the following with your shop credentials
const shopify = new Shopify({
  shopName: 'your-shop-name',
  apiKey: 'your-api-key',
  password: 'your-password'
})

// Create a new customer
function create_a_customer() {
  return shopify.customer.create(
    {
      "email": "sample.coder.node@shopify.com",
      "first_name": "Sample",
      "last_name": "Coder"
    }
  );
}

// Update a customer
function update_customer_after_creation(customer_id) {
  params = {
    "first_name": "Supersample Node"
  }
  return shopify.customer.update(customer_id, params)
}

create_a_customer().then(
  response => update_customer_after_creation(response.id),
  err => console.error(err)
)
import shopify

# Replace the following with your shop URL
shop_url = "https://{API_KEY}:{PASSWORD}@{SHOP_NAME}.myshopify.com/admin"
shopify.ShopifyResource.set_site(shop_url)

# Create new customer
new_customer = shopify.Customer()
new_customer.email = "sample.coder.python@shopify.com"
new_customer.first_name = "Sample"
new_customer.last_name = "Coder"
new_customer.save()

# Update customer details
new_customer.first_name = "Supersample Python"
new_customer.save()
# Create a new customer
mutation {
  customerCreate(
    input: {
      email: "sample.coder.graphql@shopify.com",
      firstName: "Sample",
      lastName: "Coder"
    }
  ) {
    userErrors {
      field
      message
    }
    customer {
      id
    }
  }
}

# Update customer details
mutation {
  customerUpdate(
    input: {
      id: "gid://shopify/Customer/491279155222",
      firstName: "Supersample GraphQL"
    }
  ) {
    userErrors {
      field
      message
    }
    customer {
      id
    }
  }
}

Learn more about our APIs and tools

Explore docs