Getting started

First things first, you’ll need to request an API key so we can understand what you want to build and ensure we can make it happen.

Authorization

Authorization with 99designs requires the following HTTP headers are forwarded on every request: Api-Key-Id and Api-Key-Secret. The values for theses headers are provided by 99designs.

curl -H "Api-Key-Id:xxx" -H "Api-Key-Secret:xxx" https://api.99designs.com/resources/v1/designers

Orders

The following API calls are for unauthenticated users and therefore will require that the end user come to 99designs to create an account (or log into an existing one). Each will provide a response with the appropriate URL to allow the end user to do so.

Creates an order

The orders API accepts a product version and brief data in order to create a purchasable product for clients.
Example request:
curl -X POST https://api.99designs.com/resources/v1/orders -H "Content-Type:application/json" -d '{
"productId": "logo-essential-v1",
"brief": {
"title": "My test project",
"description": "This is a description",
"category": "logo-design",
"timeline": "ONE_MONTH",
"approval": "YES",
"businessName": "Test business"
}
}'
Body parameters:
productId
string

Product name & version of the intended product we want to create

e.g. logo-essential-v1

brief

Brief data required to create an order of this product version. Data will be validated against this product version's schema.

e.g. {"title":"My test project","description":"This is a description","category":"logo-design","timeline":"ONE_MONTH","approval":"YES","businessName":"Test business"}

Example response(s):
201Purchasable product instance created for caller
{
"orderItems": [
{
"briefId": "abc123",
"returnUrls": {
"briefStart": "99designs.com/briefs/abc123/1",
"briefEnd": "99designs.com/briefs/abc123/4",
"review": "99designs.com/briefs/abc123/5",
"postReview": "99designs.com/briefs/abc123/6"
}
}
]
}
400Validation error(s)
{
"errors": [
{
"path": "/orders",
"message": "Invalid timeframe"
}
]
}