? Full API Documentation: https://app.shedsuite.com/api/docs/index.html#/


Overview

The Shed Suite Public API lets you programmatically access your Shed Suite data, including contacts, customer orders, and inventory. All API requests go through:

https://app.shedsuite.com/api/public

Step 1: Get Your API Token

Before you can use any endpoint, you need to create an API token. This is a one-time setup step.

What You'll Need

  • Your Shed Suite username (email) and password
  • A tool to make HTTP requests (we'll show examples using cURL and Claude Code)

Create a Token (cURL)

curl -X POST https://app.shedsuite.com/api/public/tokens/v1 \
  -u "your-email@example.com:your-password" \
  -H "Content-Type: application/json" \
  -d '{
    "tokenName": "My Integration Token",
    "expiresAt": "2027-01-01T00:00:00.000Z",
    "scopes": ["api:read", "api:write"]
  }'

What each field means:

FieldRequired?Description
tokenNameYesA friendly name so you can identify this token later (e.g., "Website Sync")
expiresAtNoWhen the token should stop working (format: YYYY-MM-DDTHH:mm:ss.sssZ (ISO 8601))
scopesYesLimit what the token can access. Available scopes: api:read, api:write. Include both for full access.
userIdNoAssociate the token with a specific user.

Create a Token (Claude Code)

In Claude Code, you can ask Claude to create your API token by providing the cURL command above. Claude will run it and return your token. Alternatively, paste the cURL command directly into your terminal from within Claude Code.

Save Your Token

The response will include your API token string. Copy and save it somewhere secure — you'll use it for every future API request.


Step 2: Use Your Token in Requests

For all subsequent API calls, include your token in the Authorization header as a Bearer token:

Authorization: Bearer YOUR_TOKEN_HERE

Example: Fetch Your Contacts

curl -X GET "https://app.shedsuite.com/api/public/contacts/v1?limit=10&offset=0" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE"

In Claude Code, include the Authorization header in your cURL commands or ask Claude to make the request for you.


Available Endpoints

Tokens (Authentication)

ActionMethodEndpoint
List all tokensGET/tokens/v1
Create a new tokenPOST/tokens/v1
Revoke a tokenDELETE/tokens/v1/{tokenId}

Contacts

ActionMethodEndpointKey Parameters
List all contactsGET/contacts/v1limit (max 100), offset
Get a single contactGET/contacts/v1/{id}
Create a contactPOST/contacts/v1firstName, lastName, email, phone, zipCode

Customer Orders

ActionMethodEndpointKey Parameters
List ordersGET/customer-orders/v1limit (max 100), offset, sortBy, dateFrom, dateTo
Get a single orderGET/customer-orders/v1/{id}

Sorting options for orders: dateOrdered, dateDelivered, dateCancelled, dateFinished, dateProcessed, dateScheduledForDelivery

Date filtering: Use dateField, dateFrom, and dateTo together. Dates can be YYYY-MM-DD or relative expressions like now-30d (last 30 days) or now/M (start of current month).

Inventory

ActionMethodEndpointKey Parameters
List inventory itemsGET/inventory/v1limit (max 100), offset, sortBy, hideDeleted
Get a single itemGET/inventory/v1/{id}

Sorting options for inventory: date_finish, date_removed, date_ordered, date_delivered


Common Examples

Get orders from the last 30 days

curl -X GET "https://app.shedsuite.com/api/public/customer-orders/v1?dateField=dateOrdered&dateFrom=now-30d&dateTo=now&limit=100" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE"

Get all active inventory (excluding deleted)

curl -X GET "https://app.shedsuite.com/api/public/inventory/v1?hideDeleted=true&limit=100&offset=0" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE"

Create a new contact

curl -X POST https://app.shedsuite.com/api/public/contacts/v1 \
  -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "firstName": "Jane",
    "lastName": "Smith",
    "email": "jane@example.com",
    "phone": "555-123-4567",
    "zipCode": "30301"
  }'

Paginate through large result sets

Results are limited to 100 items per request. Use offset to page through:

# Page 1
curl "https://app.shedsuite.com/api/public/contacts/v1?limit=100&offset=0" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE"

# Page 2
curl "https://app.shedsuite.com/api/public/contacts/v1?limit=100&offset=100" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE"

Troubleshooting

Error CodeMeaningWhat to Do
401UnauthorizedYour token is missing, expired, or invalid. Create a new one.
403ForbiddenYour token doesn't have the required scope for this endpoint.
400Bad RequestCheck your request body or query parameters for typos/bad values.
404Not FoundThe ID you requested doesn't exist.
500Internal Server ErrorSomething went wrong on the server. Try again or contact support.

Managing Your Tokens

  • List tokens: GET /tokens/v1 — see all active tokens for your company.
  • Revoke a token: DELETE /tokens/v1/{tokenId} — immediately disables that token. Use this if a token is compromised or no longer needed.

Quick Reference

ItemValue
Base URLhttps://app.shedsuite.com/api/public
Auth methodBearer token in Authorization header
Max per page100
Date formatToken expiry: YYYY-MM-DDTHH:mm:ss.sssZ (ISO 8601). Date filters: YYYY-MM-DD or relative (e.g., now-30d)
Full docshttps://app.shedsuite.com/api/docs/index.html#/