NAV Navbar
Logo
csharp

Introduction

API Endpoint:

https://api.godatafeed.com

Welcome to the GoDataFeed API! You can use our API to access Feed & Order endpoints.

We are currently implementing our code examples in various programming languages. You can view examples in the dark area to the right, and you can switch the programming language of the examples with the tabs in the top right.

All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.

API Call Limits

The GoDataFeed API call uses the “leaky bucket” algorithm for call throttling. This allows you to make an unlimited number of calls over time, as long as you don’t exceed the bucket size. The bucket size defaults to 50 calls, with a leak rate of 2 calls per second. Therefore, you can make 2 calls per second with occasional burst of 50 calls at once. If you overflow the bucket, you’ll get a 429 response.

GoDataFeed expects for the API Token to be included in all API requests to the server in the URL that looks like the following:

V1/{Token}/resource

Authorization

GoDataFeed uses Tokens to allow access to the API. In order to obtain authorization to use the GoDataFeed API, you need to first setup a Consumer Key in the GoDataFeed Control Panel. The Consumer Key is used to generate Access Tokens that are then used in all subsequent API calls.

Access Token Lifespan

For additional security, Access Tokens can be configured to expire after a pre-determined duration from the time they are generated, this is referred to as the Access Token Lifespan. Setting the Access Token Lifespan is done through the GoDataFeed Control Panel with the following options: “Never Expires”, “7 Days”, “14 Days” and “30 Days”.
It’s important to note that the developer of the consuming application has the option of generating access tokens as frequently as needed (once an hour, once a day, etc.); the more frequent a token is refreshed the more secure the consuming application will be.

Example Request:

using RestSharp;

var client = new RestClient("https://api.godatafeed.com/v1/Authorization");
var request = new RestRequest(Method.PUT);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{ \r\n  \"ConsumerKey\":\"{token}\" \r\n}", ParameterType.RequestBody);

IRestResponse response = client.Execute(request);

Example Response:

{
    "Success": true,
    "Message": "",
    "Token": "token"
}

https://api.godatafeed.com/v1/Authorization

Orders

Error Code Meaning
400 Only ‘CANCELLED’ or ‘SHIPPED’ status updates are allowed.

Retrieve Order Count

Example Request:

using RestSharp;

var client = new RestClient("https://api.godatafeed.com/v1/{token}/Orders/count?fromDate=2017-01-01T00%3A00%3A00&toDate=2017-01-01T23%3A59%3A59&status=NEW");
var request = new RestRequest(Method.GET);
request.AddHeader("content-type", "application/json");
IRestResponse response = client.Execute(request);

Example Response:

{
  "Success": true,
  "Message": "",
  "Count": 118
}

This endpoint retrieves the count of all orders.

HTTP Request

GET https://api.godatafeed.com/api/v1/orders/count

Query Parameters

Parameter Required Description
fromDate true The starting date for the request
toDate true The end date for the request
status false Accepted values: NEW, PROCESSING, SHIPPED and CANCELED

Retrieve All Orders

Example Request:

using RestSharp;

var client = new RestClient("https://api.godatafeed.com/v1/{token}/Orders?page=1&pageSize=1&fromDate=2017-01-01T00%3A00%3A00&toDate=2017-01-01T23%3A59%3A59&status=NEW");
var request = new RestRequest(Method.GET);
request.AddHeader("content-type", "application/json");
IRestResponse response = client.Execute(request);

Example Response:

{
    "Success": true,
    "Message": "",
    "Orders": [
        {
            "OrderId": "tHbuSCBLMHNXP0VIYiycumodmWyfG6pj",
            "BuyerEmailAddress": "custom@er.com",
            "BuyerPhoneNumber": "1234567890",
            "DateCreatedInDestination": "2017-01-01T01:44:59.0753932Z",
            "DateCreatedInOrderSource": "2017-01-01T00:44:32Z",
            "DateShipped": "2017-01-02T16:28:00Z",
            "GrandTotal": 12.98,
            "OrderDestinationOrderNumber": "O12345",
            "OrderSource": "Amazon",
            "OrderSourceOrderNumber": "123-1234567-1234567",
            "PaymentTransactionId": null,
            "PaymentType": null,
            "ShipmentTrackingNumber": "12345678901234567890123456",
            "OrderItems": [
                {
                    "OrderItemId": "1uTXxLgsfP6kmKpkDGqQhSjkcPJZfsel",
                    "Sku": "ABC123",
                    "Name": "My Great Product",
                    "Quantity": 1,
                    "UnitPrice": 9.99,
                    "SaleTaxCost": 0,
                    "Discount": "0.00"
                }
            ],
            "BuyerUserId": null,
            "City": "Miami",
            "Country": "US",
            "FirstName": "Customer",
            "GiftWrapTotal": 0,
            "GiftWrapTaxTotal": 0,
            "LastName": "Customers",
            "PostalCode": "33172",
            "ShippingServiceName": "Standard Ground",
            "ShippingServiceValue": "UPS",
            "ShippingTotal": 2.99,
            "ShippingTaxTotal": 0,
            "ShipToCompanyName": null,
            "StateOrProvince": "FL",
            "Street1": "123 Fake Lane",
            "Street2": "",
            "SubTotal": 9.99,
            "SyncUserErrorMessage": "",
            "ShippingMethod": "MFNStandard",
            "DestinationShippingCarrier": "UPS",
            "OrderStatus": "Shipped",
            "SourceOrderStatus": "Shipped",
            "SyncStatus": "Enabled",
            "OrderSourceCustomerOrderNumber": null,
            "IsAmazonPrime": false
        }
    ]
}

This endpoint retrieves all orders.

HTTP Request

GET https://api.godatafeed.com/api/v1/orders

Query Parameters

Parameter Required Description
page true The page number to return
pageSize true The number of orders per page to return
fromDate true The starting date for the request
toDate true The end date for the request
status false Accepted values: NEW, PROCESSING, SHIPPED and CANCELED

Retrieve a Specific Order

Example Request:

using RestSharp;

var client = new RestClient("https://api.godatafeed.com/v1/{token}/Orders/{orderid}");
var request = new RestRequest(Method.GET);
request.AddHeader("content-type", "application/json");
IRestResponse response = client.Execute(request);

Example Response:

{
    "Success": true,
    "Message": "",
    "Orders": [
        {
            "OrderId": "tHbuSCBAFAGSDVIYiycumodmWyfG6pj",
            "BuyerEmailAddress": "custom@er.com",
            "BuyerPhoneNumber": "1234567890",
            "DateCreatedInDestination": "2017-01-01T01:44:59.0753932Z",
            "DateCreatedInOrderSource": "2017-01-01T00:44:32Z",
            "DateShipped": "2017-01-02T16:28:00Z",
            "GrandTotal": 12.98,
            "OrderDestinationOrderNumber": "O12345",
            "OrderSource": "Amazon",
            "OrderSourceOrderNumber": "123-1234567-1234567",
            "PaymentTransactionId": null,
            "PaymentType": null,
            "ShipmentTrackingNumber": "12345678901234567890123456",
            "OrderItems": [
                {
                    "OrderItemId": "1uTXxLgsfP6kmKpkDGqQhSjkcPJZfsel",
                    "Sku": "ABC123",
                    "Name": "My Great Product",
                    "Quantity": 1,
                    "UnitPrice": 9.99,
                    "SaleTaxCost": 0,
                    "Discount": "0.00"
                }
            ],
            "BuyerUserId": null,
            "City": "Miami",
            "Country": "US",
            "FirstName": "Customer",
            "GiftWrapTotal": 0,
            "GiftWrapTaxTotal": 0,
            "LastName": "Customers",
            "PostalCode": "33172",
            "ShippingServiceName": "Standard Ground",
            "ShippingServiceValue": "UPS",
            "ShippingTotal": 2.99,
            "ShippingTaxTotal": 0,
            "ShipToCompanyName": null,
            "StateOrProvince": "FL",
            "Street1": "123 Fake Lane",
            "Street2": "",
            "SubTotal": 9.99,
            "SyncUserErrorMessage": "",
            "ShippingMethod": "MFNStandard",
            "DestinationShippingCarrier": "UPS",
            "OrderStatus": "Shipped",
            "SourceOrderStatus": "Shipped",
            "SyncStatus": "Enabled",
            "OrderSourceCustomerOrderNumber": null,
            "IsAmazonPrime": false
        }
    ]
}

This endpoint retrieves a specific order.

HTTP Request

GET https://api.godatafeed.com/v1/{token}/Orders/{orderid}

URL Parameters

Parameter Description
Token The API Token
orderid The unique orderid

Update an Order

Example Request:

using RestSharp;

var client = new RestClient("https://api.godatafeed.com/v1/{token}/Orders/{orderid}/UpdateStatus");
var request = new RestRequest(Method.PUT);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{ \r\n  \"OrderStatus\":\"Shipped\",\r\n \"ShipmentTrackingNumber\": \"Tracking123\", \r\n \"DateShipped\": \"2017-01-03\"}", ParameterType.RequestBody);

IRestResponse response = client.Execute(request);

Example Response:

{
  "Success": true,
  "Message": ""
}

This endpoint updates the status of a specific order.

HTTP Request

PUT https://api.godatafeed.com/v1/{token}/Orders/{orderid}/UpdateStatus

PUT Parameters

Parameter Required Description
OrderStatus true Accepted values: SHIPPED and CANCELED/CANCELLED
ShipmentTrackingNumber false Tracking number for shipment
Date Shipped false Date of the shipment
DestinationShippingCarrier false Carrier name used for shipment which overwrites OrderSync source Settings - please refer to the accepted values provided by the source marketplace

Acknowledge an Order

Example Request:

using RestSharp;

var client = new RestClient("https://api.godatafeed.com/v1/{token}/Orders/{orderid}/AcknowledgeOrder?orderDestinationOrderNumber='{your_store_order_number}'");
var request = new RestRequest(Method.PUT);
request.AddHeader("content-type", "application/json");

IRestResponse response = client.Execute(request);

Example Response:

{
  "Success": true,
  "Message": ""
}

This endpoint acknowledges an order.

HTTP Request

PUT https://api.godatafeed.com/v1/{token}/Orders/{orderid}/AcknowledgeOrder?orderDestinationOrderNumber='{your_store_order_number}

Query Parameters

Parameter Required Description
orderDestinationOrderNumber true Store order number

Insert an Order

Example Request:

using RestSharp;

var client = new RestClient("https://api.godatafeed.com/v1/{token}/Orders/InsertOrder");
var request = new RestRequest(Method.PUT);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\"OrderId\":\"\",\"BuyerEmailAddress\":\"buyeremail@marketplace.amazon.com\",\"BuyerPhoneNumber\":\"1234567890\",\"DateShipped\":null,\"OrderSource\":\"Amazon\",\"OrderSourceOrderNumber\":\"AMZ000003\",\"OrderStatus\":\" \",\"DateCreatedInOrderSource\":\"2016-05-31T17:02:07Z\",\"GrandTotal\":100,\"ShipmentTrackingNumber\":null,\"OrderDestinationOrderNumber\":null,\"DateCreatedInDestination\":null,\"OrderItems\":[{\"OrderItemId\":\"\",\"Sku\":\"SKU01\",\"Name\":\"sku description\",\"Quantity\":4,\"UnitPrice\":25}],\"ShipToCompanyName\":\"\",\"FirstName\":\"Sam\",\"LastName\":\"Matthews\",\"Street1\":\"123 city garden lane\",\"Street2\":\" \",\"City\":\"Providence\",\"StateOrProvince\":\"MA\",\"Country\":\"US\",\"PostalCode\":\"02901\",\"ShippingServiceName\":\"First Class Email\",\"ShippingServiceValue\":\"First Class Email\",\"SubTotal\":100.95,\"ShippingTotal\":4.95,\"ShippingTaxTotal\":0.6,\"SyncUserErrorMessage\":null,\"GiftWrapTotal\":4.99,\"GiftWrapTaxTotal\":2.99,\"BuyerUserId\":null,\"PaymentTransactionId\":\"1022222-1454538-0354615\"}");

IRestResponse response = client.Execute(request);

Example Response:

{
  "Success": true,
  "Message": ""
}

This endpoint inserts an order.

HTTP Request

PUT https://api.godatafeed.com/v1/{token}/Orders/InsertOrder

Put Parameters

Parameter Required Description
BuyerEmailAddress true Email address (can be masked for GDPR)
BuyerPhoneNumber true Buyer phone (can be masked for GDPR)
OrderSource true Source i.e. eBay, Amazon
OrderSourceOrderNumber true Marketplace Order Number
OrderDestinationOrderNumber false Order number from the merchant platform
OrderStatus false Status of the order, Shipped, Cancelled
DateCreatedInOrderSource true Date of order in marketplace
ShipmentTrackingNumber false Tracking number
ShipToCompanyName true Ship to company name
FirstName true First name
LastName true Last name
Street1 true Street
Street2 false Street 2
City true City
StateOrProvince true State or Province
Country true Country
PostalCode true Postal code (zip)
ShippingMethod true Shipping Method i.e. Two Day
GrandTotal true Order grand total
SubTotal true Order sub total
ShippingTotal false Shipping total
ShippingTaxTotal false Shipping total taxes
GiftWrapTotal false Gift wrap total
GiftWrapTaxTotal false Gift wrap total taxes
PaymentTransactionId false External Payment Transaction Id
OrderItems (see below) true Array of Ordered Items
OrderItems - Sku true Product Sku
OrderItems - Name true Product Name
OrderItems - Quantity true Quantity sold of a sku
OrderItems - UnitPrice true Price per sku

Feeds

Retrieve Feed Count

Example Request:

using RestSharp;

var client = new RestClient("https://api.godatafeed.com/v1/{token}/feeds/count");
var request = new RestRequest(Method.GET);
request.AddHeader("content-type", "application/json");
IRestResponse response = client.Execute(request);

Example Response:

{
  "Success": true,
  "Message": "",
  "Count": 10
}

This endpoint retrieves count of feeds.

HTTP Request

GET https://api.godatafeed.com/api/v1/feeds/count

Query Parameters

Parameter Required Description
filterQuery false Search for a feed by name

Retrieve a Specific Feed

Example Request:

using RestSharp;

var client = new RestClient("https://api.godatafeed.com/v1/{token}/feeds/{feedId}");
var request = new RestRequest(Method.GET);
request.AddHeader("content-type", "application/json");
IRestResponse response = client.Execute(request);

Example Response:

{
    "Success": true,
    "Message": "",
    "Feeds": [
        {
            "FeedId": "eWplRm5yc1VvN2FtNW5jUWFOVWJuUT09",
            "Name": "Amazon US - Clothing, Accessories & Luggage",
            "Status": "Completed",
            "FileName": "Clothing-feed.txt",
            "DateLastCompiled": "2017-11-17T08:51:06.25Z",
            "DateLastSubmitted": "2017-11-17T08:51:09.907Z",
            "DateLastPulled": null,
            "CompilationTotalCount": 10000,
            "CompilationValidCount": 10000,
            "CompilationWarningCount": 3,
            "CompilationErrorCount": 0,
            "Score": 0
        }
    ]
}

This endpoint retrieves a specific feed.

HTTP Request

GET https://api.godatafeed.com/v1/{token}/feeds/{feedId}

URL Parameters

Parameter Description
Token The API Token
feedId The unique feedId

Retrieve List of Feeds

Example Request:

using RestSharp;

var client = new RestClient("https://api.godatafeed.com/v1/{token}/feeds?page=1&pageSize=100");
var request = new RestRequest(Method.GET);
request.AddHeader("content-type", "application/json");
IRestResponse response = client.Execute(request);

Example Response:

{
    "Success": true,
    "Message": "",
    "Feeds": [
        {
            "FeedId": "dff53c781388432c9a59d8baf7e14a39",
            "Name": "Amazon US - Clothing, Accessories & Luggage",
            "Status": "Completed",
            "FileName": "Clothing-feed.txt",
            "DateLastCompiled": "2017-11-17T08:51:06.25Z",
            "DateLastSubmitted": "2017-11-17T08:51:09.907Z",
            "DateLastPulled": null,
            "CompilationTotalCount": 5546,
            "CompilationValidCount": 3496,
            "CompilationWarningCount": 2050,
            "CompilationErrorCount": 0,
            "Score": 0
        },
        ...
        {
            "FeedId": "8ef89df69a0347648b32d9ba52839a24",
            "Name": "Amazon US - Shoes, Eyewear, Handbags & Wallets",
            "Status": "Completed",
            "FileName": "product-feed.txt",
            "DateLastCompiled": "2017-11-17T12:44:24.823Z",
            "DateLastSubmitted": "2017-11-17T12:59:27.893Z",
            "DateLastPulled": null,
            "CompilationTotalCount": 2700,
            "CompilationValidCount": 2425,
            "CompilationWarningCount": 275,
            "CompilationErrorCount": 0,
            "Score": 0
        }
    ]
}

This endpoint retrieves a specific feed.

HTTP Request

GET https://api.godatafeed.com/v1/{token}/feeds/

URL Parameters

Parameter Required Description
Token true The API Token
page true The page number to return
pageSize true The number of feeds per page to return
filterQuery true Filter the results by the feed name

Download a Specific Feed

Example Request:

using RestSharp;

var client = new RestClient("https://api.godatafeed.com/v1/{token}/feeds/{feedId}/download");
var request = new RestRequest(Method.GET);
request.AddHeader("content-type", "application/json");
IRestResponse response = client.Execute(request);

Example Response:

The feed file containing compiled product data.  The format is either CSV or tab delimited text.  The file format is determined in the feed setup.

This endpoint downloads a specific feed.

HTTP Request

GET https://api.godatafeed.com/v1/{token}/feeds/{feedid}/download

Errors

The GoDataFeed API uses the following error codes:

Error Code Meaning
400 Bad Request – Your request is invalid.
401 Unauthorized – Your API key is not authorized.
403 Forbidden – The endpoint requested is hidden for administrators only.
404 Not Found – The specified endpoint could not be found.
405 Method Not Allowed – You tried to access an endpoint with an invalid method.
406 Not Acceptable – You requested a format that isn’t json.
410 Gone – The endpoint requested has been removed from our servers.
429 Too Many Requests – Slow down!
500 Internal Server Error – We had a problem with our server. Try again later.
503 Service Unavailable – We’re temporarily offline for maintenance. Please try again later.