HTTP/2 302
server: nginx
date: Wed, 03 Sep 2025 02:38:52 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20101001235909
location: https://web.archive.org/web/20101001235909/https://github.com/Shopify/shopify_api/tree/master
server-timing: captures_list;dur=1.433801, exclusion.robots;dur=0.022542, exclusion.robots.policy;dur=0.010137, esindex;dur=0.016421, cdx.remote;dur=35.433929, LoadShardBlock;dur=297.607277, PetaboxLoader3.datanode;dur=107.178628, PetaboxLoader3.resolve;dur=44.329353
x-app-server: wwwb-app210
x-ts: 302
x-tr: 364
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
set-cookie: wb-p-SERVER=wwwb-app210; path=/
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 301
server: nginx
date: Wed, 03 Sep 2025 02:38:52 GMT
content-type: text/html; charset=utf-8
content-length: 103
x-archive-orig-server: nginx/0.7.67
x-archive-orig-date: Fri, 01 Oct 2010 23:59:08 GMT
x-archive-orig-connection: close
x-archive-orig-status: 301 Moved Permanently
location: https://web.archive.org/web/20101001235909/https://github.com/Shopify/shopify_api
x-archive-orig-x-runtime: 6ms
x-archive-orig-content-length: 103
x-archive-orig-cache-control: no-cache
cache-control: max-age=1800
memento-datetime: Fri, 01 Oct 2010 23:59:09 GMT
link:
; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Thu, 14 Jan 2010 07:11:26 GMT", ; rel="prev memento"; datetime="Thu, 14 Jan 2010 07:11:26 GMT", ; rel="memento"; datetime="Fri, 01 Oct 2010 23:59:09 GMT", ; rel="last memento"; datetime="Fri, 01 Oct 2010 23:59:09 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 52_18_20101001211025_crawl103-c/52_18_20101001235648_crawl101.arc.gz
server-timing: captures_list;dur=0.614543, exclusion.robots;dur=0.020485, exclusion.robots.policy;dur=0.009682, esindex;dur=0.010710, cdx.remote;dur=28.444760, LoadShardBlock;dur=155.796524, PetaboxLoader3.datanode;dur=134.351071, PetaboxLoader3.resolve;dur=328.207992, load_resource;dur=357.626773
x-app-server: wwwb-app210
x-ts: 301
x-tr: 569
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 200
server: nginx
date: Wed, 03 Sep 2025 02:38:53 GMT
content-type: text/html; charset=utf-8
x-archive-orig-server: nginx/0.7.67
x-archive-orig-date: Fri, 01 Oct 2010 23:59:08 GMT
x-archive-orig-connection: close
x-archive-orig-status: 200 OK
x-archive-orig-etag: "f34188c18691e91dfe046292ca5694cb"
x-archive-orig-x-runtime: 113ms
x-archive-orig-content-length: 37918
x-archive-orig-cache-control: private, max-age=0, must-revalidate
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: utf-8
memento-datetime: Fri, 01 Oct 2010 23:59:09 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Sun, 27 Dec 2009 04:53:19 GMT", ; rel="prev memento"; datetime="Sat, 12 Jun 2010 19:18:57 GMT", ; rel="memento"; datetime="Fri, 01 Oct 2010 23:59:09 GMT", ; rel="next memento"; datetime="Tue, 06 Sep 2011 00:45:08 GMT", ; rel="last memento"; datetime="Tue, 12 Aug 2025 07:30:25 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 52_18_20101001211025_crawl103-c/52_18_20101001235648_crawl101.arc.gz
server-timing: captures_list;dur=0.495508, exclusion.robots;dur=0.018325, exclusion.robots.policy;dur=0.007905, esindex;dur=0.009965, cdx.remote;dur=60.528710, LoadShardBlock;dur=188.342914, PetaboxLoader3.datanode;dur=100.841925, PetaboxLoader3.resolve;dur=76.953709, load_resource;dur=60.160309
x-app-server: wwwb-app210
x-ts: 200
x-tr: 385
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
content-encoding: gzip
Shopify's shopify_api at master - GitHub
click here to add a description
click here to add a homepage
Fri Sep 24 11:57:03 -0700 2010
README.rdoc Shopify API
The Shopify API gem allows Ruby developers to programmatically access the
admin section of Shopify stores.
The API is implemented as XML over HTTP using all four verbs
(GET/POST/PUT/DELETE). Each resource, like Order, Product, or Collection,
has its own URL and is manipulated in isolation. In other words, we’ve
tried to make the API follow the REST principles as much as possible.
Usage
Requirements
All API usage happens through Shopify applications, created by either shop
owners for their own shops, or by Shopify Partners for use by other shop
owners:
Shop owners can create applications for themselves through their own admin
(under the Preferences > Applications tab).
Shopify Partners create applications through their admin: app.shopify.com/services/partners
For more information and detailed documentation about the API visit api.shopify.com
Getting Started
ShopifyAPI uses ActiveResource to communicate with the REST web service.
ActiveResource has to be configured with a fully authorized URL of a
particular store first. To obtain that URL you can follow these steps:
First create a new application in either the partners admin or your store
admin and write down your API_KEY and SHARED_SECRET.
You will need to supply two parameters to the Session class before you
instantiate it:
ShopifyAPI::Session.setup({:api_key => API_KEY, :secret => SHARED_SECRET})
Create a new Session for a specific shop. That session is not fully valid
yet, but it can be used to create a URL that you will redirect your users
to:
session = ShopifyAPI::Session.new("yourshopname.myshopify.com")
session.valid? # returns false
To access the API shop owners need a "token" from that specific
shop. In order to get this token they need to authorize with that shop
first. The URL to redirect your user to can be generated via:
url = session.create_permission_url
After visiting this URL, the shop redirects the owner to a custom URL of
your application where the "token" gets sent to (it’s param
name is just "t"). Use that token to instantiate a
"valid" session, that is ready to make calls to that particular
shop.
token = params[:t]
session = ShopifyAPI::Session.new("yourshopname.myshopify.com", token)
session.valid? # returns true
Now you can finally get the fully authorized URL for that shop. Use that
URL to configure ActiveResource and you’re set:
ActiveResource::Base.site = session.site
Get data from that shop (returns ActiveResource instances):
shop = ShopifyAPI::Shop.current
latest_orders = ShopifyAPI::Order.find(:all)
Copyright
Copyright © 2009 "JadedPixel inc.". See LICENSE for details.
Your current locale selection: English . Choose another?
Keyboard Shortcuts
Site wide shortcuts
s
Focus site search
?
Bring up this help dialog
Commit list
j
Move selected down
k
Move selected up
t
Open tree
p
Open parent
c or o or enter
Open commit
Pull request list
j
Move selected down
k
Move selected up
o or enter
Open issue
Issues
j
Move selected down
k
Move selected up
x
Toggle select target
o or enter
Open issue
I
Mark selected as read
U
Mark selected as unread
e
Close selected
y
Remove selected from view
c
Create issue
l
Create label
i
Back to inbox
u
Back to issues
/
Focus issues search
Network Graph
← or h
Scroll left
→ or l
Scroll right
↑ or k
Scroll up
↓ or j
Scroll down
t
Toggle visibility of head labels
shift ← or shift h
Scroll all the way left
shift → or shift l
Scroll all the way right
shift ↑ or shift k
Scroll all the way up
shift ↓ or shift j
Scroll all the way down