Overview
Veeqo API (1.0.0)
The Veeqo API gives you everything you need to build the world’s most powerful tools for ecommerce retailers.
You can integrate any external application or service with a retailer’s Veeqo account. This allows you to do just about anything you can do in the Veeqo Web App using the programming language of your choice.
Our API is built using Ruby on Rails and based on RESTful principles, using predictable and explorable URLs, HTTP requests and JSON responses.
There are two ways of authenticating your app with Veeqo:
- OAuth2 authentication
- API keys
Veeqo Carrier API
Our Carrier API allows you to build custom integrations with shipping carriers not currently supported in Veeqo. The Carrier API is currently only available to sellers in the UK.
You can view our Carrier API Documentation here.
Developer Central
We’re working hard at Veeqo to make your developing experience when building on top of our API the best it can be. We have therefore created Developer Central which has access to all of the resources you’ll need.
Getting Started
Follow these steps below to get up and running.
-
Get a Veeqo Account
- Register for a Veeqo account
- This will take you through the same steps as a new store owner to register for a free Veeqo account
-
Set up your Authentication
- Follow our API Authentication instructions
-
Explore
- Use our API previewer to see what each endpoint does
- Download some code samples
- Use a tool like Restlet or Postman to send some test requests
-
Learn More
- Check out Developer Central for more useful resources
-
Build and test your app.
- Build the worlds best Veeqo integration
-
Get Help
- Stuck? Please email helpme@support.veeqo.com;
Authentication
Authentication is required for your application to access data in Veeqo. There are currently two ways to authenticate your app:
-
OAuth2
-
API keys
We recommend using OAuth2 if your application is for public use by all Veeqo users and using API keys if your application is considered private and for your use only.
Setting up OAuth Authentication
-
Set up your redirect_uri
- This is the URL that the user will be redirected to after authentication. If you’re new to OAuth, Aaron Parecki has a really great guide for getting started.
-
Send your details to helpme@support.veeqo.com
- Please provide us with:
- The name of your applications
- Your redirect/callback URI
- Email the details to helpme@support.veeqo.com
- Please provide us with:
-
We register your application with OAuth
- Once registered we will provide you with your client_id and client_secret by email
-
Authorizing the user
- Again Aaron Parecki’s guide has a really useful section on setting up user authorization.
- Within your application, you need to redirect the user to the authorize URL on app.veeqo.com. For example:
https://app.veeqo.com/oauth/authorize?client_id=4f8a5d37071f0955e3c8a3dcbf3ff0b53c0699d2085cc6b01707fb3eb9912652&redirect_uri=http%3A%2F%2Fexample.com%2Ftest_oauth_callback&response_type=code&scope=
- The user will then confirm authorization of the app and be redirected back to your application
-
Get authorization code
- The authorization code is returned in the code parameter of the redirect uri e.g. http://example.com/test_oauth_callback?code=acc2658ced4f9eea257c9da72acea1c97f9e1b1db2118b565355532af13591d7
- note: this code lasts only 10 minutes
-
Make a request for the permanent token
- Make a request to https://api.veeqo.com/oauth/token using client id, client secret, temporary code, e.g:
Request URL: /oauth/token
Method: POST
-
Parameters:
- **grant_type**: authorization_code - **redirect_uri**: http://example.com/test_oauth_callback 5 - **client id**: 4f8a5d37071f0955e3c8a3dcbf3ff0b53c0699d2085cc6b01707fb3eb9912652 - **client secret**: dd04814c033fdbc9a01a9b68100d359edaa41d8ad702a03ae221dd456da1d59c - **code**: acc2658ced4f9eea257c9da72acea1c97f9e1b1db2118b565355532af13591d7
Should return a response like so:
{ "access_token": "82d7b651f3634a5243c4155f8832f09b30de0c115280d0c2ef62512e6bc5312e", "token_type": "bearer", "created_at": 1510741588 }
-
Save the access_token value
- Save the returned access_token from the previous request
- Use this for any future requests
-
Make a request
-
Make a request like normal with our bearer token, e.g.
Request URL: /current_user
Method: GET
Headers: Authorization: Bearer 82d7b651f3634a5243c4155f8832f09b30de0c115280d0c2ef62512e6bc5312e
-
Generating your API keys
-
Login into your Veeqo account
-
Navigate to Employees page
-
Click on your user or create a + New Employee If you have multiple users we recommend creating a New Employee for each user as it makes it easier track application activity
-
Click Refresh API Key
-
Your API Key will be generated and stored in Veeqo should you ever need to refer back to it
As always, treat your API Key like any other password and do not share it with others as anyone who has access to your API Key has full API access to your Veeqo account.
Using API Key
Simply include x-api-key
into request header, for example:
curl --request GET \
--url https://api.veeqo.com/orders \
--header 'accept: application/json' \
--header 'x-api-key: YOUR API KEY HERE'
Veeqo Ruby Gem
Our friends over at COAX have built a Ruby Gem to integrate with our API. If you’re building with ruby then this is an invaluable resource. They also have a load of examples on the GitHub for the gem that are definately worth checking out.
Limits
The API has requests rate limits per key/token powered by a Leaky Bucket algorithm. If requests come too frequently, they are queued in a bucket. If the queue reaches the bucket limit, the API responds with HTTP 429 error.
Current limit is 5 requests per second with a bucket size up to 100 requests.
Code Samples
Learn from our examples.
All of our examples live on the VeeqoAPI GitHub page. We’re working hard to add more over the coming months.
Products Catalog
This example, written in PHP, illustrates how to build simple catalog displaying products from Veeqo account
Dashboard
Written in PHP and based on the same CURL script as the Products Catalog, this live example displays a simple dashboard of orders from today and yesterday. Similar to the way the mobile app dashboard works.
The live example can be found here.
Support
If you get stuck at any stage in your project please email helpme@support.veeqo.com;
Feedback
We LOVE ❤️ feedback! It helps us to improve developer experience and make your job easier! If you have any feedback regarding our API, documentation or Developer Central please email helpme@support.veeqo.com
HTTP Codes
Code: 200
Meaning: OK
Description: Success!
Code: 201
Meaning: Created
Description: Success! Resource was successfully created. The resource that was created has been returned in the response body.
Code: 204
Meaning: No Content
Description: It’s gone! Resource was successfully deleted. Response body is empty after a successful DELETE request.
Code: 400
Meaning: Bad Request
Description: There was invalid data posted in the request, i.e. the data isn’t posted in the format we require or you have an attribute missing.
Action Required: Check the request to ensure all information is posted and that it complies with the API documentation for that endpoint.
Code: 401
Meaning: Unauthorized
Description: You could not be authenticated with Veeqo. This can either be due to the API key being invalidated (updated on the account in Veeqo) or the account requiring a payment to be made to Veeqo.
Action Required: Check the account in Veeqo to ensure that API key is still attached, and that there’s no outstanding payments.
Code: 404
Meaning: Not Found
Description: The resource that you attempted to access could not be found. This is likely due to the endpoint not existing, or a particular attribute ID passed not existing.
Action Required: Check that the endpoint you’re attempting to access actually exists, and ensure that all of the IDs you pass in the attributes of the request body can be found in the attached account.
Code: 429
Meaning: Limits Reached
Description: The API request limit has been reached. The current limit is 5 requests per second with a bucket size up to 100 requests (this limit may differ if you have agreed enterprise limits)
Action Required: Handle your requests with the API limit in mind.
Code: 500
Meaning: Internal Server Error
Description: Due to a problem on our side. This could either be due to problems in the request data provided which cause the error, or due to a temporary service problem.
Action Required: Double check your request is correct then try again after a few minutes. If the problem persists then check our status page or contact us.
Code: 503
Meaning: Service Unavailable
Description: Due to a temporary problem on our side.
Action Required: Try again after a few minutes. If the problem persists then check our status page or contact us.
- OpenAPI version: 3.0.0