ShelfDocs
SHELF DOCUMENTATION

Connect staging.
Send one request.

Shelf gives your application a stable, resettable version of the third-party systems it already integrates with.

FIVE-MINUTE QUICKSTART

Your first request

  1. 1
    Create a sandbox

    Sign in, choose Create sandbox, and enable the systems your staging application uses.

  2. 2
    Open a system

    Select the system from the sandbox. Shelf shows the exact endpoint, authentication contract, scopes, account context, and callback behavior.

  3. 3
    Copy configuration

    Use Copy configuration and paste the values into your staging environment. Secrets stay hidden on screen but are included in the copied configuration.

  4. 4
    Send a real request

    Run your application normally. Shelf detects the first successful request and records its sanitized request and response in Activity.

  5. 5
    Change data, reset, rerun

    Create the edge case in Test data, rerun the test, then reset to the original synthetic world without changing endpoints or credentials.

Generic Shelf-key request
curl "$SYSTEM_BASE_URL/resource" \
+  -H "Authorization: Bearer $SHELF_API_KEY"
AUTHENTICATION

Keep your existing auth flow

For OAuth providers, register the callback your staging app already uses. Replace the vendor authorization URL, token URL, client ID, client secret, and API base URL with the generated Shelf values. Shelf preserves state validation, exact callback matching, scopes, single-use codes, expiration, refresh, and revocation.

Do not commit sandbox secrets.Treat Shelf credentials exactly like vendor test credentials. Rotate or revoke them when access changes.
WEBHOOKS

Register one HTTPS receiver

Add your staging webhook URL from the selected system workspace. Mutations generate provider-shaped events for systems whose contract lists native or compatible webhooks. Shelf records delivery status, attempts, response codes, and receiver responses in Activity.

WORKS WITH SHELF

Exact supported operations

The product shows this same contract beside every generated connection. Requests outside the listed operations return an explicit unsupported-operation response.

HubSpotOAuth 2.0

CRM contacts, companies, deals, search, batches, associations

JobberOAuth 2.0 + PKCE

Account, clients, jobs, visits, invoices, GraphQL pagination

QuickBooksOAuth 2.0

Customers, vendors, items, invoices, payments, queries

XeroOAuth 2.0 + PKCE

Organisation, contacts, accounts, invoices, payments

GustoOAuth 2.0

Company, employees, jobs, processed payrolls

StripeTest API key

Customers and payment intents

TwilioHTTP Basic

Calls list and creation

SlackOAuth 2.0

auth.test, conversations, channel messages

GitHubOAuth + PKCE

Authenticated user and repositories

GoogleOAuth + PKCE

Userinfo and Drive file metadata

TROUBLESHOOTING

Errors should tell you what to fix

401

Invalid sandbox credential
Copy the current configuration or rotate the credential.

403

Missing required scope
Request a scope listed in the system contract.

404

System or resource not found
Confirm the system is enabled and the provider-shaped ID exists.

422

Unsupported operation
The endpoint is outside the exact contract shown in Shelf.

429

Request limit reached
Wait for the retry window specified by the response.

RESET

Return to one known state

Reset deletes mutations and restores the sandbox's pinned fixture version. Endpoints, credentials, callbacks, compatibility contracts, and historical Activity remain stable so the same test can run again.