Built by a Developer, for Developers: Why PSRESTful Is the Fastest Path to PromoStandards Integrations
DEV Community

Built by a Developer, for Developers: Why PSRESTful Is the Fastest Path to PromoStandards Integrations

PSRESTful wasn't designed in a product meeting. It was built by a developer who spent years wiring PromoStandards integrations by hand: crafting SOAP envelopes, hunting down the right namespace for each service version, and parsing megabytes of XML just to answer "how many blue mugs are in stock?" Every feature on the platform exists because that pain was real. This post walks through what "developer-first" actually means in practice: the choices in the API itself, the tools around it, and the open-source pieces you can read and reuse. All of it serves one goal: getting your supplier integration to production in days, not months.

REST/JSON instead of SOAP/XML

PromoStandards is a great idea: one standard instead of dozens of proprietary supplier APIs. But the transport it standardized on is SOAP/XML. In 2026, that means WSDLs, envelopes, namespaces, and hand-rolled XML parsing in ecosystems that stopped shipping good SOAP tooling a decade ago.

PSRESTful puts a clean REST/JSON layer over every PromoStandards service: Product Data, Media Content, Pricing & Configuration (PPC), Inventory, Purchase Orders, Order Status, Shipment Notifications, and Invoices. Every endpoint follows a predictable, versioned URL pattern:

curl -H "x-api-key: YOUR_API_KEY" \
  "https://api.psrestful.com/v2.0.0/suppliers/{SUPPLIER_CODE}/inventory/{PRODUCT_ID}"

You write the code once, and it works across every supplier. The payoff isn't just ergonomics: when we measured the move from XML to JSON, payloads shrank by 35-53%. And because everything is OpenAPI-based, you get an interactive API reference where every endpoint is documented and try-able.

Protobuf, because JSON is sometimes still too heavy

For most integrations JSON is plenty. But if you're syncing inventory and pricing across hundreds of suppliers, Product Pricing & Configuration responses can run into hundreds of kilobytes per product, and you're making thousands of calls per hour. That's why PSRESTful also serves Protocol Buffers, a binary format that is 80%+ smaller than the original XML and dramatically faster to parse. No other platform in the promotional products industry offers this.

Switching is one header:

curl -H "Accept: application/x-protobuf" \
  -H "x-api-key: YOUR_API_KEY" \
  "https://api.psrestful.com/v2.0.0/suppliers/{SUPPLIER_CODE}/inventory/{PRODUCT_ID}"

Protobuf responses are available on the heaviest endpoints: Product Data, Inventory, Media Content, and all five PPC resources (pricing-and-configuration, available charges, available locations, decoration colors, and FOB points). The .proto schemas are published in our open-source psdomain repository, so you can generate typed clients in Python, JavaScript, Java, C#, Go, and more. And even if you stay on JSON, responses are Brotli-compressed by default (with automatic gzip fallback), so you're never paying for bytes you don't need.

Extra APIs: filtering, pagination, and sorting that PromoStandards never had

PromoStandards services are lookup-oriented: give me this product, this inventory. What they don't give you is a way to ask questions across a catalog. Our Extra APIs (/extra/v2/) add the query layer developers expect from any modern API:

curl -H "x-api-key: YOUR_API_KEY" \
  "https://api.psrestful.com/extra/v2/products?brand=Bella%2BCanvas&is_closeout=false&list_price__range=5,20&ordering=list_price&page=1&page_size=50"
  • Filtering: by supplier, brand, category, status, country of origin, lead time, price range, rush service, closeout flag, and more. A search parameter matches product names, product IDs, and even variant SKUs and GTINs.
  • Pagination: standard page / page_size parameters with count, total_pages, next, and previous in every response envelope.
  • Sorting: a familiar ordering parameter with multi-field support: ordering=name,-lead_time.

If you've used Django REST Framework or any well-designed REST API, this will feel like home. That's exactly the point.

One call instead of four: the expand parameter

A product detail page typically needs the product, its images, its inventory, and its pricing. Against raw PromoStandards that's four different SOAP services, four request formats, four response shapes to parse. With PSRESTful it's one request:

curl -H "x-api-key: YOUR_API_KEY" \
  "https://api.psrestful.com/extra/v2/products/{EXTRA_ID}?expand=medias&expand=inventory&expand=combined_ppc"

The expand parameter fans out to the underlying services on our side and returns everything in a single JSON document. It's also smart about reality: if a supplier doesn't implement a given service, that expansion is skipped instead of failing your whole request. That small detail saves you a lot of defensive code.

Data Explorer: see the data before you write a line of code

The single biggest time sink in PromoStandards work isn't writing code; it's discovering how each supplier actually implemented the standard. Which versions they run, what their part IDs look like, where they put decoration data. The Data Explorer answers those questions from your browser. Pick a supplier, enter a product ID, and browse their live Product Data, Media Content, Inventory, and PPC responses, parsed into clean JSON alongside the HTTP status, response time, and the PromoStandards version that answered.

You can start immediately with the shared read-only credentials PSRESTful provides, before you have a single supplier account of your own. We think of it as the missing companion to API documentation: ours, and honestly, PromoStandards' own. Docs tell you what a response should look like; the Data Explorer shows you what a specific supplier's response does look like. That difference is where integration bugs live.

Web Service Validator: when you need to see the raw SOAP

Sometimes you need to go one level deeper and inspect what a supplier's SOAP endpoint actually returns on the wire. Generic tools like SoapUI or Postman can send the request, but they don't understand PromoStandards: you still have to craft the envelope by hand, look up the right namespaces and versions, and squint at verbose XML. The Web Service Validator does understand it.

Pick a supplier and a service, and it builds the correct SOAP envelope for you, with the right namespaces, the right version, and your stored credentials already filled in. The XML stays editable, so you can tweak a request and resend it. Then it shows the response in five formats: raw XML, typed JSON (parsed through the same models that power our REST API), Protobuf, a human-readable table view, and a Stats view that compares the XML, JSON, and Protobuf payload sizes side by side. Add a production/staging toggle, response-time and payload-size tracking, and shareable request URLs, and debugging a supplier issue stops being an afternoon project. The full write-up has a demo.

Pricing Calculator: decoding the hardest service in the standard

Product Pricing & Configuration is the most complex service in PromoStandards. Pricing is additive: base price by part and quantity break, plus one-time setup charges, plus per-unit run charges, all potentially varying by FOB point. Getting a decorated net cost right means combining all of it correctly.

The Pricing Calculator handles that complexity visually. Pick a product, choose parts, decorations, and quantities across multiple line items, and get an instant, itemized breakdown. For developers it's a reference implementation you can check your own math against: test your PPC algorithms, debug pricing discrepancies, and understand the additive model before you build your own calculator. It can even generate the payload structure for a Purchase Order submission.

Security that survives a security review

Speed to production matters, but so does what happens after. PSRESTful supports both API keys and OAuth2 client-credentials authentication: short-lived bearer tokens, per-integration Developer Apps, and one-click secret rotation. For ERP syncs, storefront jobs, and anything that submits purchase orders, we've written up why we recommend OAuth2 over API keys.

Docs, Postman, and open source

Developer-first also means meeting you in the tools you already use:

  • Documentation: guides for authentication, every service, and platform integrations.
  • Interactive API reference: OpenAPI, always in sync with the API.
  • Postman collection: published and ready to fork, so your first successful call happens before you write any code.
  • psdomain: our open-source Python domain model for PromoStandards, with Pydantic v2 models and Protobuf definitions covering Product Data, Inventory, PPC, Media Content, Order Status, Shipment Notifications, Purchase Orders, and Invoices. It's the exact model layer that powers PSRESTful, and you can read it, learn from it, and build with it.
  • psrestful-examples: open-source integration examples to start from.

What this adds up to: time to production

Here's the honest pitch. You could build direct PromoStandards integrations yourself; many teams have. It means SOAP tooling, per-supplier quirks, version negotiation, XML parsing, and ongoing maintenance every time a supplier changes something. That's months of specialized work before the first product shows up in your system.

Or you sign up for a free PSRESTful account, explore real supplier data in the Data Explorer the same afternoon, fork the Postman collection, and point your code at one clean REST API that already normalizes every supplier behind it.

And you don't have to evaluate any of this on a crippled tier. Every new account starts with a 14-day free trial that includes 1,000 API calls per day and nearly everything our Premium and Business plans offer, including the Data Explorer, Web Service Validator, and Pricing Calculator. That's enough headroom to build and test a real integration, not a toy.

Sign up free. No credit card, the trial starts immediately, and shared read-only credentials let you query supplier data right away. Add your own supplier credentials to unlock transactional services like Purchase Orders, Order Status, and Invoices. Generate API keys (or create an OAuth2 Developer App). Integrate and go live.

PSRESTful exists because a developer got tired of solving the same problems over and over, and decided no one else should have to. If you're building on PromoStandards, start free at psrestful.com or talk to us about your integration. We speak developer.

Comments

No comments yet. Start the discussion.