Spreadshirt API v1 Explained

In this blog post, I will give you a short overview on the features provided by API v1, the technology behind API v1, the different parts of API v1 and the relationship to existing APIs.

API v1 is one part of our strategy to provide Customized Apparel as a Service (CAaaS) that I described in my previous blog post “Customized Apparel as a Service (CAaaS) at Spreadshirt”. Please note, that API v1 is right now Alpha, that means URL structures and XML payload might still change during the next releases. However, API v1 should be stable enough to allow you to build your first applications based on it. We will also keep you up to date on possible changes and new releases on this blog.

API Features

Today, API v1 provides the following features:

  • Retrieve images for designs, products, product types, print types, etc.,
  • Retrieve data for designs, products, articles, product types, print types, etc.,
  • Create baskets and forward to Spreadshirt HTML checkout and
  • Store and retrieve widget configurations.

For the next releases, we plan to provide the following features:

  • Design upload and product creation,
  • Design and article search for marketplace and
  • Better basket integration.

API Technology

API v1 is based on the following technology stack:

  • REST: API v1 is provided as a pure REST (Representational State Transfer) API via HTTP, which means that we use for example HTTP methods, HTTP status codes and URL structures correctly to allow you to retrieve, create, update and delete data.
  • XML, XSD: For exchanging data the API uses XML as data exchanged format. The allowed lists and entities are described using XSD (XML Schema).
  • WADL: Our API is described using WADL (Web Application Description Language). Using WADL we describe which URLs the API provides, which HTTP methods can be used per URL, which HTTP status codes can be expected and what the input and output payload is. WADL can be used like WSDL to generate client code for all kinds of programming languages, such as Java.
  • SVG: We make use of SVG (Scalable Vector Graphics) to describe product types and products, e.g. for describing print areas or design positioning and transformations.

API Parts

API v1 consists right now of three parts as you can see in the picture above:

  • Data API: Our data API allows you to retrieve, create, update and delete all kind of Spreadshirt shop and user data, e.g retrieve designs, articles, products or create and retrieve baskets. The data API is available on http://api.spreadshirt.net/api/v1/metaData/api.html.
  • Image API: Our image API allows you to retrieve all kinds of images and create, update and delete specific ones, e.g. retrieve design, product or product type images. The image API is available on http://image.spreadshirt.net/image-server/v1/metaData/image-service.html.
  • Configuration Repository: Our configuration repository allows you to store and retrieve all kinds of configurations for social network widgets, such as myspace or facebook.

Existing APIs

API v1 will replace on the long term all APIs that exist right now, be it API v0 (which is used by our T-Shirt-Designer), our old SOAP API (which is used for a couple of integrations and widgets) or partner specific APIs. It should also used by all plugin writers, system integrators and widget developers in the future, that use legacy APIs or RSS feeds in their applications right now.

Martin Breest
Platform Evangelist