Skip to content
Back to skills

Shopify Api Rest

ASecurity

"MIGRATION SKILL: Shopify REST Admin API — endpoint patterns, authentication, rate limits, and REST-to-GraphQL migration guide. The REST Admin API is deprecated (October 2024). Use this skill only for maintaining legacy integrations or planning migration to GraphQL."

  • 39 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 29, 2026
ai-agentsnodeapi

Works with

  • cursor
  • cli
  • api

Security analysis

A100/100

Scanned May 29, 2026

npx -y skills add OrcaQubits/agentic-commerce-skills-plugins --skill shopify-api-rest --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Shopify Api Rest?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Shopify Api Rest
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/orcaqubits-shopify-api-rest/badge)](https://www.skillsdirectory.com/skills/orcaqubits-shopify-api-rest)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: shopify-api-rest
description: >
  "MIGRATION SKILL: Shopify REST Admin API — endpoint patterns, authentication,
  rate limits, and REST-to-GraphQL migration guide. The REST Admin API is
  deprecated (October 2024). Use this skill only for maintaining legacy
  integrations or planning migration to GraphQL."
---

# Shopify REST Admin API (DEPRECATED)

> **DEPRECATION NOTICE:** The Shopify REST Admin API was deprecated in October 2024. All new development MUST use the GraphQL Admin API. This skill exists for maintaining legacy code and planning migration.

## Before writing code

**Fetch live docs**:
1. Web-search `site:shopify.dev rest admin api deprecation` for deprecation timeline
2. Web-search `site:shopify.dev migrate rest to graphql` for migration guide
3. Fetch `https://shopify.dev/docs/api/admin-rest` for REST reference (if maintaining legacy code)

## REST API Overview (Legacy)

### Endpoints

- Base URL: `https://{store}.myshopify.com/admin/api/{version}/`
- Resources: `products.json`, `orders.json`, `customers.json`, etc.
- CRUD via HTTP methods: GET, POST, PUT, DELETE

### Authentication

- Header: `X-Shopify-Access-Token: {token}`
- Same OAuth tokens work for both REST and GraphQL

### Rate Limits

- Bucket-based: 40 requests per app per store (leaky bucket)
- Headers: `X-Shopify-Shop-Api-Call-Limit: 32/40`
- Plus stores: 80 requests

### Pagination

- Cursor-based via `Link` header (not page numbers)
- `rel="next"` and `rel="previous"` links

## REST-to-GraphQL Migration

### Common Mappings

| REST Endpoint | GraphQL Equivalent |
|---------------|-------------------|
| `GET /products.json` | `query { products(first: 50) { edges { node { ... } } } }` |
| `POST /products.json` | `mutation { productCreate(input: {...}) { ... } }` |
| `PUT /products/{id}.json` | `mutation { productUpdate(input: {...}) { ... } }` |
| `DELETE /products/{id}.json` | `mutation { productDelete(input: {id: "..."}) { ... } }` |
| `GET /orders.json` | `query { orders(first: 50) { edges { node { ... } } } }` |
| `GET /customers.json` | `query { customers(first: 50) { edges { node { ... } } } }` |

### Key Differences

| Aspect | REST | GraphQL |
|--------|------|---------|
| Data shape | Fixed response | Client-defined |
| Rate limiting | Request count (40/s) | Cost-based (1000 points) |
| Pagination | Link headers | Cursor arguments |
| Bulk operations | Not available | `bulkOperationRunQuery` |
| Webhooks | REST endpoint | Same (subscription via GraphQL) |
| ID format | Numeric (`12345`) | GID (`gid://shopify/Product/12345`) |

### ID Conversion

REST uses numeric IDs; GraphQL uses Global IDs (GIDs):
- REST: `12345`
- GraphQL: `gid://shopify/Product/12345`
- Convert: prefix with `gid://shopify/{ResourceType}/`

## Migration Strategy

1. **Audit** existing REST calls — list all endpoints and frequencies
2. **Map** each REST call to its GraphQL equivalent
3. **Migrate incrementally** — replace one endpoint at a time
4. **Leverage bulk operations** — replace paginated REST loops with single bulk queries
5. **Update error handling** — GraphQL returns 200 with `userErrors`, not HTTP status codes
6. **Test thoroughly** — responses have different shapes

## Best Practices

- Do NOT write new code against the REST API
- Prioritize migrating high-frequency REST calls first
- Use bulk operations to replace REST pagination loops
- Update ID handling from numeric to GID format
- Test migration against a development store

Fetch the Shopify REST-to-GraphQL migration guide for exact endpoint mappings and timeline before planning a migration.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…