Notes
Protocol
HTTPS
, and HTTP
for QA.
Encoding
UTF-8
encoded.
Authentication
The ERP System details are set up within the Canopy environment by a Canopy Administrator, and include:
System Account Key | A UUID representing the communicating system. |
Secret Keys | Any number of secret keys to calculate a Message Authentication Code. |
De-duplification | Determines whether the responses provided are de-duplified. |
Request Limit | The number of requests per month an account may make. |
Email Notification | Any email addresses to be notified when certain triggers occur, such as the account request limit being reached. |
By default the Canopy REST API uses the HMAC SHA-256 hash function, although we are able to alter the hash function per System Account if needed.
Every request is authenticated in using the following request parameters:
account | The UUID representing the System Account. |
timestamp | A timestamp string formatted in ISO Date format representing the time the request was generated. This time is tested against the current time on the server, and must be within a time window of five minutes to guarantee no reuse of signatures.
See the following for the ISO Date format: http://www.w3.org/TR/xmlschema-2/#dateTime http://www.iso.org/iso/catalogue_detail?csnumber=40874 |
signature | A one-time generated authentication code, generated by combining your account and timestamp as the “message”, and generating the “digest” or signature from the cryptographic hash function, HMAC SHA-256 in BASE64 encoding. |
Notifications
70% | 70 percent of the monthly limit has been reached. |
90% | 90 percent of the monthly limit has been reached. |
100% | 100 percent of the monthly limit has been reached. |
Testing Environment
The testing environment URL is :See your Canopy representative to organise a test account.
Formatting
All dates are expected to be in the ISO Date Format, specified here:http://www.w3.org/TR/xmlschema-2/#dateTime
http://www.w3.org/TR/NOTE-datetime
http://www.iso.org/iso/catalogue_detail?csnumber=40874
Example:
Error Handling
All responses from Canopy will use standard HTTP codes. As such the following errors will be possible:400 | Bad Request |
401 | Unauthorized Request |
402 | Payment Required |
403 | Request Forbidden |
404 | Object Not Found |
405 | Request Not Acceptable |
500 | Internal Server Error |
URI Route Handling
All requests must specify the Business Object type in the URI using the following pattern:[Business Object Name]
/[Identifier]
.[Extension]
.
Where:
Business Object Name |
The name of the Business Object.
e.g. “Product”, “Media”, etc. See the Request methods below for the complete list of interfaces. |
Identifier | The unique identifier of the Business Object, most commonly the UUID value of that object which is determined by Canopy.
For LIST and SEARCH requests, this “request part” must be absent. See the Request methods below for the complete list of interfaces. |
Extension | The format the request body is using, and the format the request would like to receive as a response.
e.g. “xml”, “json”, “sc”, etc See the Extension Types below for the complete list of interfaces. |
All requests utilise HTTP Request Method types to specify the action to be taken with the Business Object:
OPTIONS | Default action implementing Access Control Policies. |
POST | Create a new Business Object |
PUT | Update an existing Business Object |
DELETE | Archive an existing Business Object |
GET | Retrieve an existing Business Object or list of Business Objects |
Extension Types
All requests may specify the extension type - the format the request body is using, and the format the request would like to receive as a response. The default extension type isxml
.
xml | XML
http://www.w3.org/XML/ |
json | JSON
http://www.json.com/ http://tools.ietf.org/html/rfc4627 |
plist | Apple Property List
https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/plist.5.html |
sc | SproutCore
http://sproutcore.com/ |
Available Actions
The following table specifies the available actions for each Business Object:Search (includes sort, search, batch) |
Retrieve | Create | Update | Archive | |
---|---|---|---|---|---|
Brand | ![]() |
![]() |
![]() |
![]() |
![]() |
Range | ![]() |
![]() |
![]() |
![]() |
![]() |
Product | ![]() |
![]() |
![]() |
![]() |
![]() |
Media | ![]() |
![]() |
![]() |
![]() |
![]() |
Offer | ![]() |
![]() |
![]() |
![]() |
![]() |
Recipe | ![]() |
![]() |
![]() |
![]() |
![]() |
Swatch | ![]() |
![]() |
![]() |
![]() |
![]() |
Campaign | ![]() |
![]() |
![]() |
![]() |
![]() |
Jobs | ![]() |
![]() |
![]() |
![]() |
![]() |
Notes
As all REST API request must include theaccount
,timestamp
, and signature
parameters in accordance with
the authentication requirements of the service, these parameters have been omitted from the Example Requests below for simplicity.
Schema Request
All the below endpoints support schema requests. By addingschema=true
to the url, the api application will respond with the schema in the format requested.
For example the following URL will repond with the below result:
Result Schema
API Reference
Brand Index / Search
This is an Index or Search of the Brand library, with optional batched results, optional search qualification, optional sort orderings.
Details
URL Structure | https://api.canopyapp.net/api/erp/Brand.<format> ?batchSize=<batchSize> &batch=<batch> &qualifier=<qualifier> &sort=<sort> |
Version | 1.0 |
Method | GET |
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
batchSize optional |
Number of Brands in each batch |
batch optional |
The batch to include in the response |
qualifier optional |
A simple qualification on the Brand objects |
sort optional |
A comma delimited list of sort criteria - left hand side is the Brand attribute, right hand side the sort direction. |
Example Request
GET | https://api.canopyapp.net/api/erp/Brand.json |
Request | [Empty Request Body] |
Response | [ { "id": "b79f562d-80a4-4620-b75a-2df5b75422af", "type": "Brand", "canopyPublic": null, "descr": "In ancient Greek mythology, ambrosia (Greek: ἀμβροσία)...", "isGenericBrand": null, "name": "Ambosia", "privateLabel": null, "uuid": "b79f562d-80a4-4620-b75a-2df5b75422af", "productRanges": [ { "id": "8567d3ad-080a-4743-b762-0620313103dc", "type": "ProductRange", "department": null, "descr": "", "name": "Ambrosia Puds", "uuid": "8567d3ad-080a-4743-b762-0620313103dc" } ] }, { "id": "7fe1e0c9-fece-4b96-b648-0337c5fbb447", "type": "Brand", "canopyPublic": null, "descr": "Arnott's 123", "isGenericBrand": null, "name": "Arnott's", "privateLabel": null, "uuid": "7fe1e0c9-fece-4b96-b648-0337c5fbb447", "productRanges": [ { "id": "3b6a829a-e395-4b4a-bdf9-9ea9410b12da", "type": "ProductRange", "department": null, "descr": "", "name": "Assorted Biscuits", "uuid": "3b6a829a-e395-4b4a-bdf9-9ea9410b12da" }, { "id": "3d008ac6-facf-430b-98df-78fcd6591b2c", "type": "ProductRange", "department": "Bakery", "descr": null, "name": "Cream Biscuits", "uuid": "3d008ac6-facf-430b-98df-78fcd6591b2c" } ] }, { "id": "4be37da3-6bf1-456a-a66f-907a8215f0ab", "type": "Brand", "canopyPublic": null, "descr": "asdfsadf", "isGenericBrand": null, "name": "Berri", "privateLabel": null, "uuid": "4be37da3-6bf1-456a-a66f-907a8215f0ab", "productRanges": [ { "id": "e07d0b1e-019b-4f30-8103-f53836990044", "type": "ProductRange", "department": null, "descr": "", "name": "2.4 Litre Fruit Juice", "uuid": "e07d0b1e-019b-4f30-8103-f53836990044" } ] } ] |
Brand Index / Search Schema
{ "name": "Brand", "properties": { "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "descr": { "optional": true, "type": "string" }, "productRanges": { "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "descr": { "optional": true, "type": "string" }, "department": { "optional": true, "type": "string", "maxLength": 100 }, "uuid": { "optional": true, "type": "string", "maxLength": 100 } }, "canopyPublic": { "optional": true, "type": "string", "maxLength": 1 }, "isGenericBrand": { "optional": true, "type": "string", "maxLength": 1 }, "uuid": { "optional": true, "type": "string", "maxLength": 100 }, "privateLabel": { "optional": true, "type": "string", "maxLength": 1 } } }
Brand Retrieve
Retrieve an existing Brand in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/Brand/identifier .format |
Version | 1.0 |
Method | POST |
Request Body | Empty |
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
GET | https://api.canopyapp.net/api/erp/Brand/b79f562d-80a4-4620-b75a-2df5b75422af.json |
Request | [Empty Request Body] |
Response | { "id": "b79f562d-80a4-4620-b75a-2df5b75422af", "type": "Brand", "canopyPublic": null, "descr": "In ancient Greek mythology, ambrosia (Greek: ἀμβροσία)...", "isGenericBrand": null, "name": "Ambosia", "privateLabel": null, "uuid": "b79f562d-80a4-4620-b75a-2df5b75422af", "productRanges": [ { "id": "8567d3ad-080a-4743-b762-0620313103dc", "type": "ProductRange", "department": null, "descr": "", "name": "Ambrosia Puds", "uuid": "8567d3ad-080a-4743-b762-0620313103dc" } ] } |
Brand Retrieve Schema
{ "name": "Brand", "properties": { "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "descr": { "optional": true, "type": "string" }, "productRanges": { "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "descr": { "optional": true, "type": "string" }, "department": { "optional": true, "type": "string", "maxLength": 100 }, "uuid": { "optional": true, "type": "string", "maxLength": 100 } }, "canopyPublic": { "optional": true, "type": "string", "maxLength": 1 }, "isGenericBrand": { "optional": true, "type": "string", "maxLength": 1 }, "uuid": { "optional": true, "type": "string", "maxLength": 100 }, "privateLabel": { "optional": true, "type": "string", "maxLength": 1 } } }
Brand Create
Create a new Brand in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/Brand/Identifier .format |
Version | 1.0 |
Method | POST |
Request Body |
A graph of the Brand to be created in the format given. Attributes and to-one relationships must match the schema below.
|
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
POST | https://api.canopyapp.net/api/erp/Brand.json |
Request | { "type": "Brand", "canopyPublic": null, "descr": "Brand X Description", "id": null, "isGenericBrand": "Y", "name": "Brand X", "privateLabel": null, "uuid": null } |
Response | { "id": "fd10c84f-8cd2-4c01-9571-8274edb246cd", "type": "Brand", "canopyPublic": null, "descr": "Brand X Description", "isGenericBrand": "Y", "name": "Brand X", "privateLabel": null, "uuid": "fd10c84f-8cd2-4c01-9571-8274edb246cd" } |
Brand Create Schema
{ "name": "Brand", "properties": { "descr": { "optional": true, "type": "string" }, "privateLabel": { "optional": true, "type": "string", "maxLength": 1 }, "isGenericBrand": { "optional": true, "type": "string", "maxLength": 1 }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 } } }
Brand Update
Update an existing Brand in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/Brand/Identifier .format |
Version | 1.0 |
Method | PUT |
Request Body |
A graph of the Brand to be updated in the format given. Attributes and to-one relationships must match the schema below.
|
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
PUT | https://api.canopyapp.net/api/erp/Brand/fd10c84f-8cd2-4c01-9571-8274edb246cd.json |
Request | { "id": "fd10c84f-8cd2-4c01-9571-8274edb246cd", "type": "Brand", "canopyPublic": null, "descr": "Brand X New Description", "isGenericBrand": "N", "name": "Brand X", "privateLabel": null, "uuid": "fd10c84f-8cd2-4c01-9571-8274edb246cd" } |
Response | { "id": "fd10c84f-8cd2-4c01-9571-8274edb246cd", "type": "Brand", "canopyPublic": null, "descr": "Brand X New Description", "isGenericBrand": null, "name": "Brand X", "privateLabel": "N", "uuid": "fd10c84f-8cd2-4c01-9571-8274edb246cd" } |
Brand Update Schema
{ "name": "Brand", "properties": { "canopyPublic": { "optional": true, "type": "string", "maxLength": 1 }, "descr": { "optional": true, "type": "string" }, "isGenericBrand": { "optional": true, "type": "string", "maxLength": 1 }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "privateLabel": { "optional": true, "type": "string", "maxLength": 1 } } }
Example Request
GET | https://api.canopyapp.net/api/erp/Range/c6ce6248-7001-4855-ad02-3b91ff6aaf6e.json |
Request | [Empty Request Body] |
Response | { "id": "c6ce6248-7001-4855-ad02-3b91ff6aaf6e", "type": "ProductRange", "canopyPublic": null, "dateCreated": "2011-10-31T09:56:11.389Z", "department": null, "descr": "", "name": "Australian Pork", "story": null, "urlName": null, "uuid": "c6ce6248-7001-4855-ad02-3b91ff6aaf6e", "products": [ { "id": "555eaa92-3110-490d-9ee7-6ccb0afd95d8", "type": "Product", "code": "CT00000042_A", "descr": "Australian Pork Easy Carve Leg Roast.", "gtin": "93123450000042", "uuid": "555eaa92-3110-490d-9ee7-6ccb0afd95d8" } ] } |
Company Index
This is an Index of the current user's Company, returns the company details, supplier accesses, corporate accesses, business units, selected job types and sub-job types.
Details
URL Structure | https://api.canopyapp.net/api/erp/Company.<format> |
Version | 1.0 |
Method | GET |
Parameters
account required |
The System Account Code |
Example Request
GET | https://api.canopyapp.net/api/erp/Company.json |
Request | [Empty Request Body] |
Response | [ { "id": 3, "type": "Company", "businessId": "99 999 999 999", "businessName": "Test Company Pty Ltd", "name": "Test Company", "corporateAccesses": [], "supplierAccesses": [ { "id": 14, "type": "CompanySupplierAccess", "supplier": { "id": 29, "type": "Company", "name": "Test Supplier" } } ], "businessUnits": [ { "id": 39, "type": "Company", "name": "IT" }, { "id": 50, "type": "Company", "name": "Corporate" } ], "selectedDocumentTypes": [ { "id": 1, "type": "DocumentType", "name": "Catalogue", "documentSubTypes": [ { "id": 207, "type": "DocumentSubType", "name": " Monthlies", "documentType": { "id": 1, "type": "DocumentType" } } ] }, { "id": 5, "type": "DocumentType", "name": "POS", "documentSubTypes": [ { "id": 271, "type": "DocumentSubType", "name": "A3 Inserts", "documentType": { "id": 5, "type": "DocumentType" } }, { "id": 273, "type": "DocumentSubType", "name": "A4 Inserts", "documentType": { "id": 5, "type": "DocumentType" } } ] }, { "id": 4, "type": "DocumentType", "name": "Press" } ] } ] |
Range Index / Search
This is an Index or Search of the Range library, with optional batched results, optional search qualification, optional sort orderings.
Details
URL Structure | https://api.canopyapp.net/api/erp/Range.<format> ?batchSize=<batchSize> &batch=<batch> &qualifier=<qualifier> &sort=<sort> |
Version | 1.0 |
Method | GET |
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
batchSize optional |
Number of Ranges in each batch |
batch optional |
The batch to include in the response |
qualifier optional |
A simple qualification on the Range objects |
sort optional |
A comma delimited list of sort criteria - left hand side is the Range attribute, right hand side the sort direction. |
Example Request
GET | https://api.canopyapp.net/api/erp/Range.json |
Request | [Empty Request Body] |
Response | [ { "id": "bc334d30-ba4f-4c70-96a8-4c3f2ba31097", "type": "ProductRange", "canopyPublic": null, "dateCreated": "2011-10-31T09:56:10.777Z", "department": "Deli", "descr": null, "name": "100 Pack Tea Bags", "story": null, "urlName": null, "uuid": "bc334d30-ba4f-4c70-96a8-4c3f2ba31097", "products": [ { "id": "dd6a83c3-8cc8-4dc3-9884-a7ee0ec17260", "type": "Product", "code": "42607439", "descr": "Twinings English Breakfast Tea Bags 10 Pack", "gtin": "86359591", "uuid": "dd6a83c3-8cc8-4dc3-9884-a7ee0ec17260" }, { "id": "f107fcf3-2b7b-445b-bcba-122e97a0db01", "type": "Product", "code": "66447695", "descr": "Twinings English Breakfast Tea Bags 25 Pack", "gtin": "91107197", "uuid": "f107fcf3-2b7b-445b-bcba-122e97a0db01" }, { "id": "d20e15b1-3e5d-4030-a41f-b169751136e7", "type": "Product", "code": "63568654", "descr": "Twinings English Breakfast Tea Bags 50 Pack", "gtin": "99890825", "uuid": "d20e15b1-3e5d-4030-a41f-b169751136e7" }, { "id": "8c51e546-1c6c-454a-bdba-561898d76b08", "type": "Product", "code": "CT00000034", "descr": "Twinings English Breakfast Tea Bags 100 Pack", "gtin": "93123450000034", "uuid": "8c51e546-1c6c-454a-bdba-561898d76b08" } ] }, { "id": "e07d0b1e-019b-4f30-8103-f53836990044", "type": "ProductRange", "canopyPublic": null, "dateCreated": "2011-10-31T09:56:10.494Z", "department": null, "descr": "", "name": "2.2 Litre Fruit Juice", "story": null, "urlName": null, "uuid": "e07d0b1e-019b-4f30-8103-f53836990044", "products": [ { "id": "5cb44884-404c-4431-8255-7158ddaa9af0", "type": "Product", "code": "CT00000030", "descr": "Apple Juice 2.4 Litre", "gtin": "93123450000030", "uuid": "5cb44884-404c-4431-8255-7158ddaa9af0" } ] } ] |
Range Index / Search Schema
{ "name": "ProductRange", "properties": { "descr": { "optional": true, "type": "string" }, "department": { "optional": true, "type": "string", "maxLength": 100 }, "products": { "descr": { "optional": true, "type": "string" }, "gtin": { "optional": true, "type": "string", "maxLength": 100 }, "uuid": { "optional": true, "type": "string", "maxLength": 100 }, "code": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 } }, "story": { "optional": true, "type": "string" }, "dateCreated": { "optional": false, "type": "string", "format": "date-time" }, "canopyPublic": { "optional": true, "type": "string", "maxLength": 1 }, "urlName": { "optional": true, "type": "string", "maxLength": 100 }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "uuid": { "optional": true, "type": "string", "maxLength": 100 } } }
Range Retrieve
Retrieve an existing Range in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/Range/identifier .format |
Version | 1.0 |
Method | POST |
Request Body | Empty |
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
GET | https://api.canopyapp.net/api/erp/Range/c6ce6248-7001-4855-ad02-3b91ff6aaf6e.json |
Request | [Empty Request Body] |
Response | { "id": "c6ce6248-7001-4855-ad02-3b91ff6aaf6e", "type": "ProductRange", "canopyPublic": null, "dateCreated": "2011-10-31T09:56:11.389Z", "department": null, "descr": "", "name": "Australian Pork", "story": null, "urlName": null, "uuid": "c6ce6248-7001-4855-ad02-3b91ff6aaf6e", "products": [ { "id": "555eaa92-3110-490d-9ee7-6ccb0afd95d8", "type": "Product", "code": "CT00000042_A", "descr": "Australian Pork Easy Carve Leg Roast.", "gtin": "93123450000042", "uuid": "555eaa92-3110-490d-9ee7-6ccb0afd95d8" } ] } |
Range Retrieve Schema
{ "name": "ProductRange", "properties": { "descr": { "optional": true, "type": "string" }, "department": { "optional": true, "type": "string", "maxLength": 100 }, "products": { "descr": { "optional": true, "type": "string" }, "gtin": { "optional": true, "type": "string", "maxLength": 100 }, "uuid": { "optional": true, "type": "string", "maxLength": 100 }, "code": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 } }, "story": { "optional": true, "type": "string" }, "dateCreated": { "optional": false, "type": "string", "format": "date-time" }, "canopyPublic": { "optional": true, "type": "string", "maxLength": 1 }, "urlName": { "optional": true, "type": "string", "maxLength": 100 }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "uuid": { "optional": true, "type": "string", "maxLength": 100 } } }
Range Create
Create a new Range in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/Range/Identifier .format |
Version | 1.0 |
Method | POST |
Request Body |
A graph of the Range to be created in the format given. Attributes and to-one relationships must match the schema below.
The Brand schema reference is required.
|
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
POST | https://api.canopyapp.net/api/erp/Range.json |
Request | { "type": "Range", "department": "Deaprtment A", "descr": "Range G Description", "id": null, "name": "Range G", "story": null, "urlName": null, "uuid": null, "brand": { "id": "fd10c84f-8cd2-4c01-9571-8274edb246cd", "type": "Brand" }, "dateCreated": null } |
Response | { "id": "1ba041ba-24d1-40f8-bd94-6eb031785e8b", "type": "ProductRange", "canopyPublic": null, "dateCreated": "2011-10-31T09:56:10.087Z", "department": null, "descr": "Range G Description", "name": "Range G", "story": null, "urlName": null, "uuid": "1ba041ba-24d1-40f8-bd94-6eb031785e8b", "products": [ ] } |
Range Create Schema
{ "name": "ProductRange", "properties": { "descr": { "optional": true, "type": "string" }, "department": { "optional": true, "type": "string", "maxLength": 100 }, "story": { "optional": true, "type": "string" }, "brand": { "nil": "true" }, "canopyPublic": { "optional": true, "type": "string", "maxLength": 1 }, "urlName": { "optional": true, "type": "string", "maxLength": 100 }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 } } }
Range Update
Update an existing Range in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/Range/Identifier .format |
Version | 1.0 |
Method | PUT |
Request Body |
A graph of the Range to be updated in the format given. Attributes and to-one relationships must match the schema below.
|
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
PUT | https://api.canopyapp.net/api/erp/Range/5c716caf-8519-4c50-a367-2cb1beab7b84.json |
Request | { "id": "5c716caf-8519-4c50-a367-2cb1beab7b84", "type": "Range", "department": "Department K", "descr": "Range H New Description", "name": "Range H", "story": null, "urlName": "http://my-range-uri.html", "uuid": "5c716caf-8519-4c50-a367-2cb1beab7b84", "brand": null, "dateCreated": { "type": "DateTime" } } |
Response | { "id": "5c716caf-8519-4c50-a367-2cb1beab7b84", "type": "ProductRange", "canopyPublic": null, "dateCreated": "2011-10-31T09:56:10.087Z", "department": "Department K", "descr": "Range H New Description", "name": "Range H", "story": null, "urlName": "http://my-range-uri.html", "uuid": "5c716caf-8519-4c50-a367-2cb1beab7b84", "products": [ ] } |
Range Update Schema
{ "name": "ProductRange", "properties": { "descr": { "optional": true, "type": "string" }, "department": { "optional": true, "type": "string", "maxLength": 100 }, "story": { "optional": true, "type": "string" }, "canopyPublic": { "optional": true, "type": "string", "maxLength": 1 }, "urlName": { "optional": true, "type": "string", "maxLength": 100 }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 } } }
Product Index / Search
This is an Index or Search of the Product library, with optional batched results, optional search qualification, optional sort orderings.
Details
URL Structure | https://api.canopyapp.net/api/erp/Product.<format> ?batchSize=<batchSize> &batch=<batch> &qualifier=<qualifier> &sort=<sort> |
Version | 1.0 |
Method | GET |
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
batchSize optional |
Number of Products in each batch |
batch optional |
The batch to include in the response |
qualifier optional |
A simple qualification on the Product objects |
sort optional |
A comma delimited list of sort criteria - left hand side is the Product attribute, right hand side the sort direction. |
Example Request
GET | https://api.canopyapp.net/api/erp/Product.json |
Request | [Empty Request Body] |
Response | [ { "id": "cbe1c0ab-ab79-44f1-ba42-c076af5649d8", "type": "Product", "code": "0987456", "colour": "slate", "descr": "Product 101", "dimension": null, "gtin": "9300601376131", "size": "1 Litre", "uuid": "cbe1c0ab-ab79-44f1-ba42-c076af5649d8", "volume": null, "weight": null, "status": { "id": 1, "type": "Status", "name": "active" }, "dateCreatedDisplay": "2011-08-31T16:25:47.630Z", "dateLastModifiedDisplay": "2013-08-02T00:34:31.371Z" }, { "id": "1ec50232-1eb1-48b1-8272-a66d05c22dec", "type": "Product", "code": "13414532453a", "colour": "grey", "descr": "Product 101", "dimension": null, "gtin": "9300644043632", "size": "1 Litre", "uuid": "1ec50232-1eb1-48b1-8272-a66d05c22dec", "volume": null, "weight": null, "status": { "id": 1, "type": "Status", "name": "active" }, "dateCreatedDisplay": "2012-09-13T05:46:12.159Z", "dateLastModifiedDisplay": "2013-07-26T04:56:30.809Z" } ] |
Product Index / Search Schema
{ "name": "Product", "properties": { "descr": { "optional": true, "type": "string" }, "size": { "optional": true, "type": "string", "maxLength": 100 }, "gtin": { "optional": true, "type": "string", "maxLength": 100 }, "uuid": { "optional": true, "type": "string", "maxLength": 100 }, "dimension": { "optional": true, "type": "string", "maxLength": 100 }, "weight": { "optional": true, "type": "string", "maxLength": 100 }, "volume": { "optional": true, "type": "string", "maxLength": 100 }, "status": { "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 10 } }, "colour": { "optional": true, "type": "string", "maxLength": 100 }, "code": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 } } }
Product Retrieve
Retrieve an existing Product in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/Product/identifier .format |
Version | 1.0 |
Method | POST |
Request Body | Empty |
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
GET | https://api.canopyapp.net/api/erp/Product/1234-5678-9012-3456.json |
Request | [Empty Request Body] |
Response | { "id": "1ec50232-1eb1-48b1-8272-a66d05c22dec", "type": "Product", "canopyPublic": "Y", "code": "13414532453a", "colour": "reddish", "descr": "Chicken Stock", "dimension": null, "eolDate": "2017-12-24T00:00:00.000Z", "exposureDate": "2013-01-31T00:00:00.000Z", "gtin": "9300644043632", "legalCode": "9300644043632", "legalCodeName": "APN", "rrp": null, "size": "1 Litre", "story": null, "style": "Salt Reduced", "themeTags": "autumn 2013, summer 2013", "uuid": "1ec50232-1eb1-48b1-8272-a66d05c22dec", "volume": null, "weight": null, "heroMedia": { "id": "c960a5ba-cce3-40e0-8785-36ec6738713f", "type": "Media", "originalFilename": "987629-3D.tif", "uuid": "c960a5ba-cce3-40e0-8785-36ec6738713f", "thumb": "http://s3-ap-southeast-1.amazonaws.com:80/net-canopyapp/6095.png?Signature=mbktmrWwF5QXBYzzhtpAcIffw6o%3D&Expires=1375740841&AWSAccessKeyId=AKIAJ5UII987345GBAQ" }, "status": { "id": 1, "type": "Status", "name": "active" }, "dateCreatedDisplay": "2012-09-13T05:46:12.159Z", "dateLastModifiedDisplay": "2013-07-26T04:56:30.809Z" } |
Product Retrieve Schema
{ "name": "Product", "properties": { "descr": { "optional": true, "type": "string" }, "size": { "optional": true, "type": "string", "maxLength": 100 }, "themeTags": { "optional": true, "type": "string" }, "dimension": { "optional": true, "type": "string", "maxLength": 100 }, "canopyPublic": { "optional": true, "type": "string", "maxLength": 1 }, "legalCode": { "optional": true, "type": "string", "maxLength": 100 }, "heroMedia": { "originalFilename": { "optional": true, "type": "string", "maxLength": 100 }, "uuid": { "optional": true, "type": "string", "maxLength": 100 } }, "colour": { "optional": true, "type": "string", "maxLength": 100 }, "code": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "uuid": { "optional": true, "type": "string", "maxLength": 100 }, "rrp": { "optional": true, "type": "string", "maxLength": 100 }, "legalCodeName": { "optional": true, "type": "string", "maxLength": 100 }, "status": { "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 10 } }, "story": { "optional": true, "type": "string" }, "eolDate": { "optional": true, "type": "string", "format": "date-time" }, "weight": { "optional": true, "type": "string", "maxLength": 100 }, "volume": { "optional": true, "type": "string", "maxLength": 100 }, "gtin": { "optional": true, "type": "string", "maxLength": 100 }, "exposureDate": { "optional": true, "type": "string", "format": "date-time" }, "style": { "optional": true, "type": "string", "maxLength": 100 } } }
Product Create
Create a new Product in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/Product/Identifier .format |
Version | 1.0 |
Method | POST |
Request Body |
A graph of the Product to be created in the format given. Attributes and to-one relationships must match the schema below.
|
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
POST | https://api.canopyapp.net/api/erp/Product.json |
Request | { "type": null, "canopyPublic": null, "code": "42607439", "colour": "aqua", "dateLastModifiedDisplay": null, "descr": "Product D descr", "dimension": "379 x 572 x 328", "eolDate": "2015-08-02T10:34:31.472+10:00", "exposureDate": "2013-08-02T10:34:31.472+10:00", "gtin": "86359591", "id": null, "legalCode": null, "legalCodeName": null, "rrp": "$8575", "size": "269 ml", "status": null, "story": "Product Story has no maximum length", "style": "cool waters", "themeTags": "tag a, tag b, tag c", "uuid": null, "volume": "7951 ml", "weight": "3355 g", "dateCreatedDisplay": null, "productRange": { "id": "bc334d30-ba4f-4c70-96a8-4c3f2ba31097", "type": "Range" } } |
Response | { "id": "dd6a83c3-8cc8-4dc3-9884-a7ee0ec17260", "type": "Product", "canopyPublic": "N", "code": "42607439", "colour": "aqua", "descr": "Product D descr", "dimension": "379 x 572 x 328", "eolDate": "2013-08-02T00:34:31.551Z", "exposureDate": "2013-08-02T00:34:31.551Z", "gtin": "86359591", "legalCode": null, "legalCodeName": null, "rrp": "$8575", "size": "269 ml", "story": "Product Story has no maximum length", "style": "cool waters", "themeTags": "tag a, tag b, tag c", "uuid": "dd6a83c3-8cc8-4dc3-9884-a7ee0ec17260", "volume": "7951 ml", "weight": "3355 g", "status": { "id": 1, "type": "Status", "name": "active" }, "dateCreatedDisplay": "2013-08-02T00:34:31.539Z", "dateLastModifiedDisplay": "2013-08-02T00:34:31.540Z" } |
Product Create Schema
{ "name": "Product", "properties": { "descr": { "optional": true, "type": "string" }, "size": { "optional": true, "type": "string", "maxLength": 100 }, "themeTags": { "optional": true, "type": "string" }, "dimension": { "optional": true, "type": "string", "maxLength": 100 }, "colour": { "optional": true, "type": "string", "maxLength": 100 }, "code": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "productRange": { "nil": "true" }, "rrp": { "optional": true, "type": "string", "maxLength": 100 }, "style": { "optional": true, "type": "string", "maxLength": 100 }, "gtin": { "optional": true, "type": "string", "maxLength": 100 }, "story": { "optional": true, "type": "string" }, "eolDate": { "optional": true, "type": "string", "format": "date-time" }, "weight": { "optional": true, "type": "string", "maxLength": 100 }, "volume": { "optional": true, "type": "string", "maxLength": 100 }, "exposureDate": { "optional": true, "type": "string", "format": "date-time" } } }
Product Update
Update an existing Product in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/Product/Identifier .format |
Version | 1.0 |
Method | PUT |
Request Body |
A graph of the Product to be updated in the format given. Attributes and to-one relationships must match the schema below.
|
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
PUT | https://api.canopyapp.net/api/erp/Product/cbe1c0ab-ab79-44f1-ba42-c076af5649d8.json |
Request | { "id": "cbe1c0ab-ab79-44f1-ba42-c076af5649d8", "type": null, "canopyPublic": "Y", "code": "0987456", "colour": null, "dateLastModifiedDisplay": "2013-08-01T23:42:17.489Z", "descr": "Beef Stock 1 Litre", "dimension": null, "eolDate": null, "exposureDate": null, "gtin": "9300601376131", "legalCode": null, "legalCodeName": null, "rrp": null, "size": "1 Litre", "status": null, "story": null, "style": null, "themeTags": null, "uuid": "cbe1c0ab-ab79-44f1-ba42-c076af5649d8", "volume": null, "weight": null, "dateCreatedDisplay": { "type": "DateTime" }, "productRange": null } |
Response | { "id": "cbe1c0ab-ab79-44f1-ba42-c076af5649d8", "type": "Product", "canopyPublic": "Y", "code": "0987456", "colour": null, "descr": "Beef Stock 1 Litre", "dimension": null, "eolDate": null, "exposureDate": null, "gtin": "9300601376131", "legalCode": "9300601376131", "legalCodeName": "APN", "rrp": null, "size": "1 Litre", "story": null, "style": null, "themeTags": null, "uuid": "cbe1c0ab-ab79-44f1-ba42-c076af5649d8", "volume": null, "weight": null, "status": { "id": 1, "type": "Status", "name": "active" }, "dateCreatedDisplay": "2011-08-31T16:25:47.630Z", "dateLastModifiedDisplay": "2013-08-02T00:34:31.371Z" } |
Product Update Schema
{ "name": "Product", "properties": { "descr": { "optional": true, "type": "string" }, "size": { "optional": true, "type": "string", "maxLength": 100 }, "themeTags": { "optional": true, "type": "string" }, "dimension": { "optional": true, "type": "string", "maxLength": 100 }, "colour": { "optional": true, "type": "string", "maxLength": 100 }, "code": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "rrp": { "optional": true, "type": "string", "maxLength": 100 }, "style": { "optional": true, "type": "string", "maxLength": 100 }, "gtin": { "optional": true, "type": "string", "maxLength": 100 }, "story": { "optional": true, "type": "string" }, "eolDate": { "optional": true, "type": "string", "format": "date-time" }, "weight": { "optional": true, "type": "string", "maxLength": 100 }, "volume": { "optional": true, "type": "string", "maxLength": 100 }, "exposureDate": { "optional": true, "type": "string", "format": "date-time" } } }
Product Archive
Archive an existing Product in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/Product/Identifier .format |
Version | 1.0 |
Method | DELETE |
Request Body |
A graph of the Product to be archived in the format given. Attributes and to-one relationships must match the schema below.
|
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
DELETE | https://api.canopyapp.net/api/erp/Product/dd6a83c3-8cc8-4dc3-9884-a7ee0ec17260.json |
Request | [Empty Request Body] |
Response | { "id": "dd6a83c3-8cc8-4dc3-9884-a7ee0ec17260", "type": "Product", "code": "42607439", "colour": "aqua", "descr": "Product description", "dimension": "379 x 572 x 328", "eolDate": "2013-08-02T00:34:31.551Z", "exposureDate": "2013-08-02T00:34:31.551Z", "gtin": "86359591", "legalCode": null, "legalCodeName": null, "rrp": "$8575", "size": "269 ml", "story": "Test Product", "style": "Product Style", "themeTags": "tag a, tag b, tag c", "uuid": "dd6a83c3-8cc8-4dc3-9884-a7ee0ec17260", "volume": "7951 ml", "weight": "3355 g", "status": { "id": 3, "type": "Status", "name": "archived" }, "dateCreatedDisplay": "2013-08-02T00:34:31.539Z", "dateLastModifiedDisplay": "2013-08-02T00:34:31.540Z" } |
Product Archive Schema
{ "name": "Product", "properties": { "nil": "true" } }
Media Index / Search
This is an Index or Search of the Media library, with optional batched results, optional search qualification, optional sort orderings.
Details
URL Structure | https://api.canopyapp.net/api/erp/Media.<format> ?batchSize=<batchSize> &batch=<batch> &qualifier=<qualifier> &sort=<sort> |
Version | 1.0 |
Method | GET |
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
batchSize optional |
Number of Media in each batch |
batch optional |
The batch to include in the response |
qualifier optional |
A simple qualification on the Media objects |
sort optional |
A comma delimited list of sort criteria - left hand side is the Media attribute, right hand side the sort direction. |
Example Request
GET | https://api.canopyapp.net/api/erp/Media.json |
Request | [Empty Request Body] |
Response | [ { "id": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368", "type": "Media", "code": "1111", "dateCreated": "2013-06-28T03:58:01.464Z", "dateLastModified": null, "dateShoot": null, "exposureDate": null, "originalFilename": "Canopy.tif", "status": { "id": 1, "type": "Status", "name": "active" }, "uuid": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368", "thumb": "http://s3-ap-southeast-1.amazonaws.com:80/net-canopyapp/6329.png?Signature=9eXar7Ztwg8IeyL6XhBUtuKylYw%3D&Expires=1375490072&AWSAccessKeyId=AKIA987345LTX7GBA" }, { "id": "5337cf1a-827c-4ed5-bd63-8ba6ceda118e", "type": "Media", "code": "345777", "dateCreated": "2013-06-28T01:12:44.300Z", "dateLastModified": null, "dateShoot": null, "exposureDate": null, "originalFilename": "Canopy.png", "status": { "id": 1, "type": "Status", "name": "active" }, "uuid": "5337cf1a-827c-4ed5-bd63-8ba6ceda118e", "thumb": "http://s3-ap-southeast-1.amazonaws.com:80/net-canopyapp/6321.png?Signature=Fudh5TP2athYQ78fdcxx8PRWasc%3D&Expires=1375490072&AWSAccessKeyId=AKIA987345LTX7GBA" }, { "id": "87870113-dad2-4c75-898f-35446cc5c65d", "type": "Media", "code": "4n20", "dateCreated": "2011-12-12T12:28:43.145Z", "dateLastModified": "2013-05-01T05:21:37.138Z", "dateShoot": null, "exposureDate": null, "originalFilename": "Canopy.mp4", "status": { "id": 1, "type": "Status", "name": "active" }, "uuid": "87870113-dad2-4c75-898f-35446cc5c65d", "thumb": "http://s3-ap-southeast-1.amazonaws.com:80/net-canopyapp/2953.png?Signature=OcEkYrryaea8Mdbx49lmdpfWnk0%3D&Expires=1375490072&AWSAccessKeyId=AKIA987345LTX7GBA" } ] |
Media Index / Search Schema
{ "name": "Media", "properties": { "dateShoot": { "optional": true, "type": "string", "format": "date-time" }, "code": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "exposureDate": { "optional": true, "type": "string", "format": "date-time" }, "originalFilename": { "optional": true, "type": "string", "maxLength": 100 }, "dateCreated": { "optional": false, "type": "string", "format": "date-time" }, "uuid": { "optional": true, "type": "string", "maxLength": 100 }, "dateLastModified": { "optional": true, "type": "string", "format": "date-time" } } }
Media Retrieve
Retrieve an existing Media in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/Media/identifier .format |
Version | 1.0 |
Method | GET |
Request Body |
A graph of the Media to be created in the format given.
|
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
GET | https://api.canopyapp.net/api/erp/Media/b0db1ec2-88e6-4af1-ae88-e9fa94e8d368.json |
Request | [Empty Request Body] |
Response | { "id": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368", "type": "Media", "attchmentStatus": "U", "code": "1111", "dateCreated": "2013-06-28T03:58:01.464Z", "dateLastModified": null, "dateShoot": null, "descr": null, "exposureDate": null, "extraTags": null, "imageCodeA": null, "imageCodeB": null, "nodeReference": null, "originalDistributionPermit": null, "originalFilename": "Canopy.mp4", "themeTags": null, "status": { "id": 1, "type": "Status", "name": "active" }, "uuid": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368", "thumb": "http://s3-ap-southeast-1.amazonaws.com:80/net-canopyapp/6329.png?Signature=HJrcyWNBVKklMGEvBTX1xQJRVn8%3D&Expires=1375490073&AWSAccessKeyId=AKIA987345LTX7GBA" } |
Media Retrieve Schema
{ "name": "Media", "properties": { "descr": { "optional": true, "type": "string" }, "themeTags": { "optional": true, "type": "string" }, "imageCodeB": { "optional": true, "type": "string", "maxLength": 100 }, "extraTags": { "optional": true, "type": "string" }, "code": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "dateShoot": { "optional": true, "type": "string", "format": "date-time" }, "dateLastModified": { "optional": true, "type": "string", "format": "date-time" }, "exposureDate": { "optional": true, "type": "string", "format": "date-time" }, "attchmentStatus": { "optional": false, "type": "string", "minLength": 1, "maxLength": 1 }, "originalFilename": { "optional": true, "type": "string", "maxLength": 100 }, "imageCodeA": { "optional": true, "type": "string", "maxLength": 100 }, "dateCreated": { "optional": false, "type": "string", "format": "date-time" }, "uuid": { "optional": true, "type": "string", "maxLength": 100 }, "nodeReference": { "optional": true, "type": "string" } } }
Media Create
This will create a media for the company from the file supplied and trigger the render of the new file supplied.
Details
URL Structure | https://api.canopyapp.net/api/erp/Media.format |
Version | 1.0 |
Method | POST |
Request Body | The file to set as the final document. |
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
GET | https://api.canopyapp.net/api/erp/Media. |
Request | File to import |
Response | { "id": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368", "type": "Media", "attchmentStatus": "U", "code": "1111", "dateCreated": "2013-06-28T03:58:01.464Z", "dateLastModified": null, "dateShoot": null, "descr": null, "exposureDate": null, "extraTags": null, "imageCodeA": "A New Update", "imageCodeB": null, "nodeReference": "Canopy video", "originalDistributionPermit": null, "originalFilename": "Canopy.mp4", "themeTags": null, "uuid": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368", "status": { "id": 1, "type": "Status", "name": "active" }, "thumb": "http://s3-ap-southeast-1.amazonaws.com:80/net-canopyapp/6329.png?Signature=h94Slfp9XH3gWeI7T4elblzBXqU%3D&Expires=1375490074&AWSAccessKeyId=AKIA98745TX7GBAQ" } |
Media Update
Update existing Media in Canopy
You can also send UUIDs of Products, Campaigns, Jobs or Story Chapters in the array applicableUUIDs. This will only add the media to the above objects.
Details
URL Structure | https://api.canopyapp.net/api/erp/Media/Identifier .format |
Version | 1.0 |
Method | PUT |
Request Body |
A graph of the Media to be updated in the format given. Attributes and to-one relationships must match the schema below.
|
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
PUT | https://api.canopyapp.net/api/erp/Media/b0db1ec2-88e6-4af1-ae88-e9fa94e8d368.json |
Request | { "id": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368", "type": "Media", "attchmentStatus": null, "code": "1111", "dateLastModified": null, "descr": "Test dsecr 16", "extraTags": null, "imageCodeA": "A New Update", "imageCodeB": null, "nodeReference": "Canopy video", "originalDistributionPermit": null, "originalFilename": null, "themeTags": null, "uuid": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368", "dateCreated": { "type": "DateTime" }, "dateShoot": null, "exposureDate": null } |
Response | { "id": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368", "type": "Media", "attchmentStatus": "U", "code": "1111", "dateCreated": "2013-06-28T03:58:01.464Z", "dateLastModified": null, "dateShoot": null, "descr": null, "exposureDate": null, "extraTags": null, "imageCodeA": "A New Update", "imageCodeB": null, "nodeReference": "Canopy video", "originalDistributionPermit": null, "originalFilename": "Canopy.mp4", "themeTags": null, "uuid": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368", "status": { "id": 1, "type": "Status", "name": "active" }, "thumb": "http://s3-ap-southeast-1.amazonaws.com:80/net-canopyapp/6329.png?Signature=h94Slfp9XH3gWeI7T4elblzBXqU%3D&Expires=1375490074&AWSAccessKeyId=AKIA98745TX7GBAQ" } |
Media Update Schema
{ "name": "Media", "properties": { "dateShoot": { "optional": true, "type": "string", "format": "date-time" }, "themeTags": { "optional": true, "type": "string" }, "exposureDate": { "optional": true, "type": "string", "format": "date-time" }, "imageCodeA": { "optional": true, "type": "string", "maxLength": 100 }, "imageCodeB": { "optional": true, "type": "string", "maxLength": 100 }, "uuid": { "optional": true, "type": "string", "maxLength": 100 }, "extraTags": { "optional": true, "type": "string" }, "code": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "nodeReference": { "optional": true, "type": "string" } "applicableUUIDs": { "optional": true, "type": "array" } } }
Media Archive
Archive existing Media in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/Media/Identifier .format |
Version | 1.0 |
Method | DELETE |
Request Body |
A graph of the Media to be archived in the format given. Attributes and to-one relationships must match the schema below.
|
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
DELETE | https://api.canopyapp.net/api/erp/Media/b0db1ec2-88e6-4af1-ae88-e9fa94e8d368.json |
Request | [Empty Request Body] |
Response | { "id": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368", "type": "Media", "attchmentStatus": "U", "code": "1111", "dateCreated": "2013-06-28T03:58:01.464Z", "dateLastModified": null, "dateShoot": null, "descr": null, "exposureDate": null, "extraTags": null, "imageCodeA": "A New Update", "imageCodeB": null, "nodeReference": "Canopy video", "originalDistributionPermit": null, "originalFilename": "Canopy.mp4", "themeTags": null, "uuid": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368", "status": { "id": 1, "type": "Status", "name": "archived" }, "thumb": "http://s3-ap-southeast-1.amazonaws.com:80/net-canopyapp/6329.png?Signature=h94Slfp9XH3gWeI7T4elblzBXqU%3D&Expires=1375490074&AWSAccessKeyId=AKIA9874345TX7GBAQ" } |
Media Archive Schema
{ "name": "Media", "properties": { "nil": "true" } }
Campaign Index / Search
This is an Index or Search of the Campaign library, with optional batched results, optional search qualification, optional sort orderings.
Details
URL Structure | https://api.canopyapp.net/api/erp/Campaign.<format> ?batchSize=<batchSize> &batch=<batch> &qualifier=<qualifier> &sort=<sort> |
Version | 1.0 |
Method | GET |
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
batchSize optional |
Number of Campaign in each batch |
batch optional |
The batch to include in the response |
qualifier optional |
A simple qualification on the Campaign objects |
sort optional |
A comma delimited list of sort criteria - left hand side is the Campaign attribute, right hand side the sort direction. |
Example Request
GET | https://api.canopyapp.net/api/erp/Campaign.json |
Request | [Empty Request Body] |
Response | [ { "id": 60, "type": "Campaign", "clientCode": null, "code": null, "completedDate": null, "createdDate": "2014-06-19T00:43:01.176Z", "dateLastModified": "2015-08-26T06:55:16.449Z", "deletedDate": null, "descr": "2014 Demo Campaign", "endDate": "2014-09-30T00:00:00.000Z", "locale": null, "name": "2014 Demo Campaign", "searchIndex": "Campaign 2014 And Demo Terms Conditions", "showOfferSets": null, "showStorePacks": null, "startDate": "2014-06-01T00:00:00.000Z", "statRunTrigger": null, "uuid": "5sd3c905-7359-498a-a4b3-cd59562b377b", "campaignStages": [ { "id": 128, "type": "CampaignStage", "createdDate": "2015-08-19T03:34:51.655Z", "descr": null, "endDate": "2015-08-19T03:34:51.657Z", "name": "New Stage", "stageNumber": 2, "startDate": "2015-08-19T03:34:51.657Z", "campaignOfferSets": [] }, { "id": 62, "type": "CampaignStage", "createdDate": "2014-06-19T00:43:01.180Z", "descr": "2014 Demo Campaign", "endDate": "2014-09-30T00:00:00.000Z", "name": "Stage 1", "stageNumber": 1, "startDate": "2014-06-01T00:00:00.000Z", "campaignOfferSets": [ { "id": 251, "type": "CampaignOfferSet", "batchId": null, "code": null, "descr": "MNOT5", "endDate": null, "startDate": null, "campaignStage": { "id": 62, "type": "CampaignStage" } }, { "id": 250, "type": "CampaignOfferSet", "batchId": null, "code": null, "descr": "MNOT4", "endDate": null, "startDate": null, "campaignStage": { "id": 62, "type": "CampaignStage" } }, { "id": 249, "type": "CampaignOfferSet", "batchId": null, "code": null, "descr": "MNOT3", "endDate": null, "startDate": null, "campaignStage": { "id": 62, "type": "CampaignStage" } }, { "id": 114, "type": "CampaignOfferSet", "batchId": null, "code": "1", "descr": "Default Offer Set", "endDate": "2014-09-30T00:00:00.000Z", "startDate": "2014-06-01T00:00:00.000Z", "campaignStage": { "id": 62, "type": "CampaignStage" } } ] } ] }, { "id": 940, "type": "Campaign", "clientCode": "1234567890", "code": "424242424242", "completedDate": null, "createdDate": "2016-02-14T22:33:31.411Z", "dateLastModified": "2016-02-14T22:51:23.739Z", "deletedDate": null, "descr": null, "endDate": "2016-03-03T00:00:00.000Z", "locale": null, "name": "42 day test", "searchIndex": "test 1234567890 day 424242424242 42", "showOfferSets": null, "showStorePacks": null, "startDate": "2016-01-31T00:00:00.000Z", "statRunTrigger": null, "uuid": "54d930c2-9330-4e35-8394-73bba6b256b0", "campaignStages": [ { "id": 954, "type": "CampaignStage", "createdDate": "2016-02-14T22:33:31.416Z", "descr": null, "endDate": "2016-02-14T22:33:31.420Z", "name": "Stage 1", "stageNumber": 1, "startDate": "2016-02-14T22:33:31.420Z", "campaignOfferSets": [ { "id": 1076, "type": "CampaignOfferSet", "batchId": null, "code": null, "descr": "Second set", "endDate": null, "startDate": null, "campaignStage": { "id": 954, "type": "CampaignStage" } }, { "id": 1075, "type": "CampaignOfferSet", "batchId": null, "code": "1", "descr": "Default Offer Set", "endDate": null, "startDate": null, "campaignStage": { "id": 954, "type": "CampaignStage" } } ] } ] } ] |
Offer Index / Search Schema
{ "name": "Campaign", "properties": { "descr": { "optional": true, "type": "string" }, "campaignStages": { "startDate": { "optional": false, "type": "string", "format": "date-time" }, "descr": { "optional": true, "type": "string" }, "createdDate": { "optional": false, "type": "string", "format": "date-time" }, "stageNumber": { "optional": true, "type": "integer" }, "endDate": { "optional": false, "type": "string", "format": "date-time" }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "campaignOfferSets": { "startDate": { "optional": true, "type": "string", "format": "date-time" }, "descr": { "optional": true, "type": "string" }, "endDate": { "optional": true, "type": "string", "format": "date-time" }, "code": { "optional": true, "type": "string", "maxLength": 100 }, "batchId": { "optional": true, "type": "string" } } }, "deletedDate": { "optional": true, "type": "string", "format": "date-time" }, "endDate": { "optional": false, "type": "string", "format": "date-time" }, "searchIndex": { "optional": true, "type": "string" }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "code": { "optional": true, "type": "string", "maxLength": 100 }, "showOfferSets": { "optional": true, "type": "string", "maxLength": 1 }, "createdDate": { "optional": false, "type": "string", "format": "date-time" }, "dateLastModified": { "optional": true, "type": "string", "format": "date-time" }, "showStorePacks": { "optional": true, "type": "string", "maxLength": 1 }, "clientCode": { "optional": true, "type": "string" }, "completedDate": { "optional": true, "type": "string", "format": "date-time" }, "locale": { "optional": true, "type": "string", "maxLength": 10 }, "uuid": { "optional": true, "type": "string" }, "startDate": { "optional": false, "type": "string", "format": "date-time" }, "statRunTrigger": { "optional": true, "type": "string", "format": "date-time" } } }
Campaign Retrieve
Retrieve an existing Campaign in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/Campaign/identifier .format |
Version | 1.0 |
Method | POST |
Request Body |
A graph of the Campaign to be created in the format given. Attributes and to-one relationships must match the schema below.
|
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
GET | https://api.canopyapp.net/api/erp/Campaign/60.json |
Request | [Empty Request Body] |
Response | { "id": 60, "type": "Campaign", "clientCode": null, "code": null, "completedDate": null, "createdDate": "2014-06-19T00:43:01.176Z", "dateLastModified": "2015-08-26T06:55:16.449Z", "deletedDate": null, "descr": "2014 Demo Campaign", "endDate": "2014-09-30T00:00:00.000Z", "locale": null, "name": "2014 Demo Campaign", "searchIndex": "Campaign 2014 And Demo Terms Conditions", "showOfferSets": null, "showStorePacks": null, "startDate": "2014-06-01T00:00:00.000Z", "statRunTrigger": null, "uuid": "5dd3c905-7359-498a-a4b3-cd59562b377b", "campaignStages": [ { "id": 128, "type": "CampaignStage", "createdDate": "2015-08-19T03:34:51.655Z", "descr": null, "endDate": "2015-08-19T03:34:51.657Z", "name": "New Stage", "stageNumber": 2, "startDate": "2015-08-19T03:34:51.657Z", "campaignOfferSets": [] }, { "id": 62, "type": "CampaignStage", "createdDate": "2014-06-19T00:43:01.180Z", "descr": "2014 Demo Campaign", "endDate": "2014-09-30T00:00:00.000Z", "name": "Stage 1", "stageNumber": 1, "startDate": "2014-06-01T00:00:00.000Z", "campaignOfferSets": [ { "id": 251, "type": "CampaignOfferSet", "batchId": null, "code": null, "descr": "MNOT5", "endDate": null, "startDate": null, "campaignStage": { "id": 62, "type": "CampaignStage" } }, { "id": 250, "type": "CampaignOfferSet", "batchId": null, "code": null, "descr": "MNOT4", "endDate": null, "startDate": null, "campaignStage": { "id": 62, "type": "CampaignStage" } }, { "id": 249, "type": "CampaignOfferSet", "batchId": null, "code": null, "descr": "MNOT3", "endDate": null, "startDate": null, "campaignStage": { "id": 62, "type": "CampaignStage" } }, { "id": 114, "type": "CampaignOfferSet", "batchId": null, "code": "1", "descr": "Default Offer Set", "endDate": "2014-09-30T00:00:00.000Z", "startDate": "2014-06-01T00:00:00.000Z", "campaignStage": { "id": 62, "type": "CampaignStage" } } ] } ] } |
Campaign Retrieve Schema
{ "name": "Campaign", "properties": { "descr": { "optional": true, "type": "string" }, "campaignStages": { "startDate": { "optional": false, "type": "string", "format": "date-time" }, "descr": { "optional": true, "type": "string" }, "createdDate": { "optional": false, "type": "string", "format": "date-time" }, "stageNumber": { "optional": true, "type": "integer" }, "endDate": { "optional": false, "type": "string", "format": "date-time" }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "campaignOfferSets": { "startDate": { "optional": true, "type": "string", "format": "date-time" }, "descr": { "optional": true, "type": "string" }, "endDate": { "optional": true, "type": "string", "format": "date-time" }, "code": { "optional": true, "type": "string", "maxLength": 100 }, "batchId": { "optional": true, "type": "string" } } }, "deletedDate": { "optional": true, "type": "string", "format": "date-time" }, "endDate": { "optional": false, "type": "string", "format": "date-time" }, "searchIndex": { "optional": true, "type": "string" }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "code": { "optional": true, "type": "string", "maxLength": 100 }, "showOfferSets": { "optional": true, "type": "string", "maxLength": 1 }, "createdDate": { "optional": false, "type": "string", "format": "date-time" }, "dateLastModified": { "optional": true, "type": "string", "format": "date-time" }, "showStorePacks": { "optional": true, "type": "string", "maxLength": 1 }, "clientCode": { "optional": true, "type": "string" }, "completedDate": { "optional": true, "type": "string", "format": "date-time" }, "locale": { "optional": true, "type": "string", "maxLength": 10 }, "uuid": { "optional": true, "type": "string" }, "startDate": { "optional": false, "type": "string", "format": "date-time" }, "statRunTrigger": { "optional": true, "type": "string", "format": "date-time" } } }
Campaign Create
Create a Campaign in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/Campaign.format |
Version | 1.0 |
Method | POST |
Request Body |
A graph of the Campaign to be created in the format given. Attributes and to-one relationships must match the schema below.
|
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
GET | https://api.canopyapp.net/api/erp/Campaign.json |
Request | { "type": "Campaign", "clientCode": "123456", "code": "987654", "descr": "This is a campaign", "endDate": "2016-09-26T21:57:18.000+00:00", "isMarketingContent": null, "locale": null, "name": "Test Campaign", "startDate": "2016-09-26T21:57:18.000+00:00" } |
Response | { "id": 3434, "type": "Campaign", "clientCode": "123456", "code": "987654", "completedDate": null, "createdDate": "2016-09-26T23:42:39.083Z", "dateLastModified": "2016-09-27T00:20:07.838Z", "deletedDate": null, "descr": "This is a campaign", "endDate": "2016-09-26T23:42:37.590Z", "isMarketingContent": null, "locale": null, "name": "Test Campaign", "searchIndex": "Campaign a Test 123456 campaign is 987654 This", "showOfferSets": null, "showStorePacks": null, "startDate": "2016-09-26T23:42:37.592Z", "statRunTrigger": "2016-09-27T00:25:08.404Z", "uploadedPreviewAttachmentID": null, "uuid": "76bcb3c1-06f6-482f-866b-1b889995a415", "campaignStages": [ { "id": 3449, "type": "CampaignStage", "createdDate": "2016-09-27T00:20:05.093Z", "descr": null, "endDate": "2016-09-27T00:20:05.094Z", "name": "New Stage", "stageNumber": 1, "startDate": "2016-09-27T00:20:05.094Z", "campaignOfferSets": [] } ] } |
Campaign Create Schema
{ "name": "Campaign", "properties": { "descr": { "optional": true, "type": "string" }, "uploadedPreviewAttachmentID": { "optional": true, "type": "integer" }, "deletedDate": { "optional": true, "type": "string", "format": "date-time" }, "endDate": { "optional": false, "type": "string", "format": "date-time" }, "searchIndex": { "optional": true, "type": "string" }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "code": { "optional": true, "type": "string", "maxLength": 100 }, "showOfferSets": { "optional": true, "type": "string", "maxLength": 1 }, "createdDate": { "optional": false, "type": "string", "format": "date-time" }, "dateLastModified": { "optional": true, "type": "string", "format": "date-time" }, "showStorePacks": { "optional": true, "type": "string", "maxLength": 1 }, "clientCode": { "optional": true, "type": "string" }, "completedDate": { "optional": true, "type": "string", "format": "date-time" }, "locale": { "optional": true, "type": "string", "maxLength": 10 }, "uuid": { "optional": true, "type": "string" }, "isMarketingContent": { "optional": true, "type": "string", "maxLength": 1 }, "startDate": { "optional": false, "type": "string", "format": "date-time" }, "statRunTrigger": { "optional": true, "type": "string", "format": "date-time" } } }
Campaign Update
Update a Campaign in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/Campaign/identifier .format |
Version | 1.0 |
Method | POST |
Request Body |
A graph of the Campaign to be updated in the format given. Attributes and to-one relationships must match the schema below.
|
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
GET | https://api.canopyapp.net/api/erp/Campaign/ |
Request | { "type": "Campaign", "clientCode": "123456", "code": "987654", "descr": "This is a campaign", "endDate": "2016-09-26T21:57:18.000+00:00", "isMarketingContent": null, "locale": null, "name": "Test Campaign", "startDate": "2016-09-26T21:57:18.000+00:00" } |
Response | { "id": 3434, "type": "Campaign", "clientCode": "123456", "code": "987654", "completedDate": null, "createdDate": "2016-09-26T23:42:39.083Z", "dateLastModified": "2016-09-27T00:20:07.838Z", "deletedDate": null, "descr": "This is a campaign", "endDate": "2016-09-26T23:42:37.590Z", "isMarketingContent": null, "locale": null, "name": "Test Campaign", "searchIndex": "Campaign a Test 123456 campaign is 987654 This", "showOfferSets": null, "showStorePacks": null, "startDate": "2016-09-26T23:42:37.592Z", "statRunTrigger": "2016-09-27T00:25:08.404Z", "uploadedPreviewAttachmentID": null, "uuid": "76bcb3c1-06f6-482f-866b-1b889995a415", "campaignStages": [ { "id": 3449, "type": "CampaignStage", "createdDate": "2016-09-27T00:20:05.093Z", "descr": null, "endDate": "2016-09-27T00:20:05.094Z", "name": "New Stage", "stageNumber": 1, "startDate": "2016-09-27T00:20:05.094Z", "campaignOfferSets": [] } ] } |
Campaign Update Schema
{ "name": "Campaign", "properties": { "descr": { "optional": true, "type": "string" }, "uploadedPreviewAttachmentID": { "optional": true, "type": "integer" }, "deletedDate": { "optional": true, "type": "string", "format": "date-time" }, "endDate": { "optional": false, "type": "string", "format": "date-time" }, "searchIndex": { "optional": true, "type": "string" }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "code": { "optional": true, "type": "string", "maxLength": 100 }, "showOfferSets": { "optional": true, "type": "string", "maxLength": 1 }, "createdDate": { "optional": false, "type": "string", "format": "date-time" }, "dateLastModified": { "optional": true, "type": "string", "format": "date-time" }, "showStorePacks": { "optional": true, "type": "string", "maxLength": 1 }, "clientCode": { "optional": true, "type": "string" }, "completedDate": { "optional": true, "type": "string", "format": "date-time" }, "locale": { "optional": true, "type": "string", "maxLength": 10 }, "uuid": { "optional": true, "type": "string" }, "isMarketingContent": { "optional": true, "type": "string", "maxLength": 1 }, "startDate": { "optional": false, "type": "string", "format": "date-time" }, "statRunTrigger": { "optional": true, "type": "string", "format": "date-time" } } }
Campaign Import Details
Mark Up Files into a Campaign in Canopy. This will return a JSON packet of the path to put the files and folders, to be imported into a Make Up File Set.
Details
URL Structure | https://api.canopyapp.net/api/erp/Campaign/identifier /importDetails.format |
Version | 1.0 |
Method | GET |
Request Body |
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
GET | https://api.canopyapp.net/api/erp/Campaign/ |
Response | { "bucket": "nameofabucket" "path": "pathtoafoldertouploadyourfilesandfoldersto" "region": "theregiontouploadinto" } |
Campaign Import Trigger
This will trigger the import of files and folders from the location supplied in the import details call. The files and folders will be removed during the import. This will respond simply with a HTTP 200 indicating that the task has been created to move the files into a Make Up File Set. After this the folder should be emptied and a new Make Up File Set created.
Details
URL Structure | https://api.canopyapp.net/api/erp/Campaign/identifier /beginImport.format |
Version | 1.0 |
Method | GET |
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
GET | https://api.canopyapp.net/api/erp/Campaign/ |
Job Index / Search
This is an Index or Search of the Job library, with optional batched results, optional search qualification, optional sort orderings.
Details
URL Structure | https://api.canopyapp.net/api/erp/CampaignDocument.<format> ?batchSize=<batchSize> &batch=<batch> &qualifier=<qualifier> &sort=<sort> |
Version | 1.0 |
Method | GET |
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
batchSize optional |
Number of Job in each batch |
batch optional |
The batch to include in the response |
qualifier optional |
A simple qualification on the Job objects |
sort optional |
A comma delimited list of sort criteria - left hand side is the Job attribute, right hand side the sort direction. |
Example Request
GET | https://api.canopyapp.net/api/erp/CampaignDocument.json |
Request | [Empty Request Body] |
Response | [ { "id": 4688, "type": "CampaignDocument", "code": "", "descr": "Job One", "name": "PRESANTATION PLOTS", "documentType": { "id": 1, "type": "DocumentType", "dateRetired": null, "descr": "A publication containing details and often photographs of items for sale, esp. one produced by a mail-order company.", "name": "Catalogue" }, "campaignRegions": [], "disclaimers": [], "startDateAsString": "31 Jul 2016", "endDateAsString": "31 Jul 2016", "documentSegmentsOrdered": [] } ] |
Job Index / Search Schema
{ "name": "CampaignDocument", "properties": { "descr": { "optional": true, "type": "string" }, "documentType": { "dateRetired": { "optional": true, "type": "string", "format": "date-time" }, "descr": { "optional": true, "type": "string" }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 } }, "disclaimers": { "infoURL": { "optional": true, "type": "string", "maxLength": 255 }, "disclaimer": { "optional": false, "type": "string" }, "code": { "optional": true, "type": "string", "maxLength": 100 } }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "code": { "optional": true, "type": "string", "maxLength": 100 }, "campaignRegions": { "descr": { "optional": true, "type": "string" }, "geometry": { "optional": true, "type": "string" }, "dateRetired": { "optional": true, "type": "string", "format": "date-time" }, "dateCreated": { "optional": true, "type": "string", "format": "date-time" }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "latitude": { "optional": true, "type": "string", "maxLength": 100 }, "longitude": { "optional": true, "type": "string", "maxLength": 100 } } } }
Job Retrieve
Retrieve an existing Job in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/Campaign/identifier .format |
Version | 1.0 |
Method | POST |
Request Body |
A graph of the Job to be created in the format given. Attributes and to-one relationships must match the schema below.
|
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
GET | https://api.canopyapp.net/api/erp/CampaignDocument/4688.json |
Request | [Empty Request Body] |
Response | [ { "id": 4688, "type": "CampaignDocument", "code": "", "descr": "Job One", "name": "PRESANTATION PLOTS", "documentType": { "id": 1, "type": "DocumentType", "dateRetired": null, "descr": "A publication containing details and often photographs of items for sale, esp. one produced by a mail-order company.", "name": "Catalogue" }, "campaignRegions": [], "disclaimers": [], "startDateAsString": "31 Jul 2016", "endDateAsString": "31 Jul 2016", "documentSegmentsOrdered": [] } ] |
Job Retrieve Schema
{ "name": "CampaignDocument", "properties": { "descr": { "optional": true, "type": "string" }, "documentType": { "dateRetired": { "optional": true, "type": "string", "format": "date-time" }, "descr": { "optional": true, "type": "string" }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 } }, "disclaimers": { "infoURL": { "optional": true, "type": "string", "maxLength": 255 }, "disclaimer": { "optional": false, "type": "string" }, "code": { "optional": true, "type": "string", "maxLength": 100 } }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "code": { "optional": true, "type": "string", "maxLength": 100 }, "campaignRegions": { "descr": { "optional": true, "type": "string" }, "geometry": { "optional": true, "type": "string" }, "dateRetired": { "optional": true, "type": "string", "format": "date-time" }, "dateCreated": { "optional": true, "type": "string", "format": "date-time" }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "latitude": { "optional": true, "type": "string", "maxLength": 100 }, "longitude": { "optional": true, "type": "string", "maxLength": 100 } } } }
Job Create
Create a Job in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/CampaignDocument.format |
Version | 1.0 |
Method | POST |
Request Body |
A graph of the Job to be created in the format given. Attributes and to-one relationships must match the schema below.
|
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
GET | https://api.canopyapp.net/api/erp/CampaignDocument.json |
Request | { "type": "CampaignDocument", "code": "", "descr": "Job test", "name": "First Job", "documentType": { "id": 1, "type": "DocumentType", "dateRetired": null, "descr": "A publication containing details and often photographs of items for sale, esp. one produced by a mail-order company.", "name": "Catalogue" }, "startDate": "2016-09-26T21:57:18.000+00:00", "endDate": "2016-09-26T21:57:18.000+00:00", "campaignStage": { "id": 3449 } } |
Response | { "id": 5090, "type": "CampaignDocument", "code": null, "descr": "Job test", "name": "First Job", "documentType": { "id": 1, "type": "DocumentType", "dateRetired": null, "descr": "A publication containing details and often photographs of items for sale, esp. one produced by a mail-order company.", "name": "Catalogue" }, "campaignRegions": [], "disclaimers": [], "startDateAsString": "27 Sep 2016", "endDateAsString": "27 Sep 2016", "documentSegmentsOrdered": [] } |
Job Create Schema
{ "name": "CampaignDocument", "properties": { "descr": { "optional": true, "type": "string" }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "campaignStage": { "id": { "optional": false, "type": "integer" } }, "clientCode": { "optional": true, "type": "string" }, "completedDate": { "optional": true, "type": "string", "format": "date-time" }, "clientReferenceNum": { "optional": true, "type": "string" }, "endDate": { "optional": false, "type": "string", "format": "date-time" }, "code": { "optional": true, "type": "string", "maxLength": 100 }, "startDate": { "optional": false, "type": "string", "format": "date-time" }, "documentType": { "dateRetired": { "optional": true, "type": "string", "format": "date-time" }, "descr": { "optional": true, "type": "string" }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 } } } }
Job Update
Update a Job in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/CampaignDocument/identifier .format |
Version | 1.0 |
Method | POST |
Request Body |
A graph of the Job to be updated in the format given. Attributes and to-one relationships must match the schema below.
|
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
GET | https://api.canopyapp.net/api/erp/CampaignDocument/ |
Request | { "type": "CampaignDocument", "code": "", "descr": "Job test", "name": "First Job", "documentType": { "id": 1, "type": "DocumentType", "dateRetired": null, "descr": "A publication containing details and often photographs of items for sale, esp. one produced by a mail-order company.", "name": "Catalogue" }, "startDate": "2016-09-26T21:57:18.000+00:00", "endDate": "2016-09-26T21:57:18.000+00:00", "campaignStage": { "id": 3449 } } |
Response | { "id": 5090, "type": "CampaignDocument", "code": null, "descr": "Job test", "name": "First Job", "documentType": { "id": 1, "type": "DocumentType", "dateRetired": null, "descr": "A publication containing details and often photographs of items for sale, esp. one produced by a mail-order company.", "name": "Catalogue" }, "campaignRegions": [], "disclaimers": [], "startDateAsString": "27 Sep 2016", "endDateAsString": "27 Sep 2016", "documentSegmentsOrdered": [] } |
Job Update Schema
{ "name": "CampaignDocument", "properties": { "descr": { "optional": true, "type": "string" }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "campaignStage": { "id": { "optional": false, "type": "integer" } }, "clientCode": { "optional": true, "type": "string" }, "completedDate": { "optional": true, "type": "string", "format": "date-time" }, "clientReferenceNum": { "optional": true, "type": "string" }, "endDate": { "optional": false, "type": "string", "format": "date-time" }, "code": { "optional": true, "type": "string", "maxLength": 100 }, "startDate": { "optional": false, "type": "string", "format": "date-time" }, "documentType": { "dateRetired": { "optional": true, "type": "string", "format": "date-time" }, "descr": { "optional": true, "type": "string" }, "name": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 } } } }
Job Final Document
This will trigger the replacement of the current final document ( if any ) and the render of the new document supplied. The API will respond with a HTTP Code of 200 if successful, else an error msg will be returned.
Details
URL Structure | https://api.canopyapp.net/api/erp/CampaignDocument/identifier /uploadFinalFile.format |
Version | 1.0 |
Method | POST |
Request Body | The file to set as the final document. |
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
GET | https://api.canopyapp.net/api/erp/CampaignDocument/ |
Request | File to import |
Offer Index / Search
This is an Index or Search of the Offer library, with optional batched results, optional search qualification, optional sort orderings.
Details
URL Structure | https://api.canopyapp.net/api/erp/Offer.<format> ?batchSize=<batchSize> &batch=<batch> &qualifier=<qualifier> &sort=<sort> |
Version | 1.0 |
Method | GET |
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
batchSize optional |
Number of Offers in each batch |
batch optional |
The batch to include in the response |
qualifier optional |
A simple qualification on the Offer objects |
sort optional |
A comma delimited list of sort criteria - left hand side is the Offer attribute, right hand side the sort direction. |
Example Request
GET | https://api.canopyapp.net/api/erp/Offer.json |
Request | [Empty Request Body] |
Response | [ { "id": "b49918a6-2d47-4057-93b0-bd4a1091573d", "type": "PublicOffer", "advertDetails": null, "approvedDate": "2011-12-05T11:47:26.700Z", "assetKeys": null, "code": "b49918a6-2d47-4057-93b0-bd4a1091573d", "createdDate": "2011-12-05T11:46:58.259Z", "dateLastUpdated": "2011-12-05T11:46:58.259Z", "department": null, "discountType": null, "domain": null, "endDate": "2011-12-16T00:00:00.000Z", "leaseBuyPlanDetails": null, "localOffer": null, "multiBuyQuantity": null, "offerDescr": "Product A Description", "offerName": "Product A Description", "offerType": "S", "offerTypeDescr": null, "onsaleFriday": null, "onsaleMidweek": null, "origOfferReference": null, "origXML": null, "packagedOffer": null, "pageIn": 2, "position": "1234 5678 9012 3456", "previousPrice": "6.25", "region": "FNQ", "rejectedDate": null, "retiredDate": null, "saveCurrency": 1.26, "saveString": null, "sellCurrency": 4.99, "sellDecoration": "4.99", "sellString": null, "startDate": "2014-12-01T00:00:00.000Z", "tactic" : null, "tags": null, "termType": null, "unit": "100 Millilitres", "unitPrice": "0.49", "codedSnippet": "" }, { "id": "caee05a4-20b5-4204-bf24-8c750222eb7e", "type": "PublicOffer", "advertDetails": null, "approvedDate": "2011-12-05T11:53:34.259Z", "assetKeys": null, "code": "caee05a4-20b5-4204-bf24-8c750222eb7e", "createdDate": "2011-12-05T11:52:57.536Z", "dateLastUpdated": "2011-12-05T11:46:58.259Z", "department": null, "discountType": null, "domain": null, "endDate": "2011-12-31T00:00:00.000Z", "leaseBuyPlanDetails": null, "localOffer": null, "multiBuyQuantity": null, "offerDescr": "Product B Description", "offerName": "Product B Description", "offerType": "S", "offerTypeDescr": null, "onsaleFriday": null, "onsaleMidweek": null, "origOfferReference": null, "origXML": null, "packagedOffer": null, "pageIn": 2, "position": "1234 5678 9012 3456", "previousPrice": "6.99", "region": "FNQ", "rejectedDate": null, "retiredDate": null, "saveCurrency": 1.44, "saveString": null, "sellCurrency": 5.55, "sellDecoration": "5.55", "sellString": null, "startDate": "2014-12-01T00:00:00.000Z", "tactic" : null, "tags": null, "termType": null, "unit": "100 Millilitres", "unitPrice": "0.55", "codedSnippet": "" }, { "id": "1cdfd479-c262-40eb-bac1-fe3b3bd8b23f", "type": "PublicOffer", "advertDetails": null, "approvedDate": null, "assetKeys": "S074411-3D_1.tif", "code": "1cdfd479-c262-40eb-bac1-fe3b3bd8b23f", "createdDate": "2011-12-05T15:53:40.101Z", "dateLastUpdated": "2011-12-05T11:46:58.259Z", "department": null, "discountType": null, "domain": null, "endDate": "2011-09-30T00:00:00.000Z", "leaseBuyPlanDetails": null, "localOffer": null, "multiBuyQuantity": null, "offerDescr": "Product C Description", "offerName": "Product C Description", "offerType": "S", "offerTypeDescr": null, "onsaleFriday": null, "onsaleMidweek": null, "origOfferReference": null, "origXML": null, "packagedOffer": null, "pageIn": 2, "position": "1234 5678 9012 3456", "previousPrice": "3.87", "region": "FNQ", "rejectedDate": null, "retiredDate": null, "saveCurrency": 0.87, "saveString": null, "sellCurrency": 3, "sellDecoration": null, "sellString": null, "startDate": "2014-09-01T00:00:00.000Z", "tactic" : null, "tags": null, "termType": null, "unit": "ea", "unitPrice": "3", "codedSnippet": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAMCA.... " } ] |
Offer Index / Search Schema
{ "name": "PublicOffer", "properties": { "sellCurrency": { "optional": true, "type": "number" }, "assetKeys": { "optional": true, "type": "string", "maxLength": 100 }, "approvedDate": { "optional": true, "type": "string", "format": "date-time" }, "offerDescr": { "optional": true, "type": "string", "maxLength": 255 }, "sellString": { "optional": true, "type": "string", "maxLength": 100 }, "unit": { "optional": true, "type": "string", "maxLength": 100 }, "rejectedDate": { "optional": true, "type": "string", "format": "date-time" }, "advertDetails": { "optional": true, "type": "string", "maxLength": 100 }, "createdDate": { "optional": false, "type": "string", "format": "date-time" }, "previousPrice": { "optional": true, "type": "string", "maxLength": 100 }, "origXML": { "optional": true, "type": "string" }, "tags": { "optional": true, "type": "string" }, "saveString": { "optional": true, "type": "string", "maxLength": 100 }, "code": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "unitPrice": { "optional": true, "type": "string", "maxLength": 100 }, "endDate": { "optional": true, "type": "string", "format": "date-time" }, "leaseBuyPlanDetails": { "optional": true, "type": "string", "maxLength": 100 }, "saveCurrency": { "optional": true, "type": "number" }, "startDate": { "optional": true, "type": "string", "format": "date-time" }, "sellDecoration": { "optional": true, "type": "string", "maxLength": 100 }, "offerType": { "optional": true, "type": "string", "maxLength": 1 }, "retiredDate": { "optional": true, "type": "string", "format": "date-time" }, "multiBuyQuantity": { "optional": true, "type": "string", "maxLength": 100 } } }
Offer Retrieve
Retrieve an existing Offer in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/Offer/identifier .format |
Version | 1.0 |
Method | POST |
Request Body |
A graph of the Offer to be created in the format given. Attributes and to-one relationships must match the schema below.
|
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
GET | https://api.canopyapp.net/api/erp/Offer/7842b493-fd20-4f29-a186-fa2c44a35061.json |
Request | [Empty Request Body] |
Response | { "id": "7842b493-fd20-4f29-a186-fa2c44a35061", "type": "PublicOffer", "advertDetails": null, "approvedDate": "2011-12-07T10:08:04.297Z", "assetKeys": null, "code": "7842b493-fd20-4f29-a186-fa2c44a35061", "createdDate": "2011-11-11T14:00:53.195Z", "endDate": "2012-04-12T00:00:00.000Z", "leaseBuyPlanDetails": null, "multiBuyQuantity": null, "offerDescr": "Product D", "offerType": "S", "origXML": null, "previousPrice": "14.99", "rejectedDate": null, "retiredDate": null, "saveCurrency": 2, "saveString": null, "sellCurrency": 12.99, "sellDecoration": "12.99", "sellString": null, "startDate": "2011-09-01T00:00:00.000Z", "tags": null, "unit": "3", "unitPrice": "19", "codedSnippet": "" } |
Offer Retrieve Schema
{ "name": "PublicOffer", "properties": { "sellCurrency": { "optional": true, "type": "number" }, "assetKeys": { "optional": true, "type": "string", "maxLength": 100 }, "approvedDate": { "optional": true, "type": "string", "format": "date-time" }, "offerDescr": { "optional": true, "type": "string", "maxLength": 255 }, "sellString": { "optional": true, "type": "string", "maxLength": 100 }, "unit": { "optional": true, "type": "string", "maxLength": 100 }, "rejectedDate": { "optional": true, "type": "string", "format": "date-time" }, "advertDetails": { "optional": true, "type": "string", "maxLength": 100 }, "createdDate": { "optional": false, "type": "string", "format": "date-time" }, "previousPrice": { "optional": true, "type": "string", "maxLength": 100 }, "origXML": { "optional": true, "type": "string" }, "tags": { "optional": true, "type": "string" }, "saveString": { "optional": true, "type": "string", "maxLength": 100 }, "code": { "optional": false, "type": "string", "minLength": 1, "maxLength": 100 }, "unitPrice": { "optional": true, "type": "string", "maxLength": 100 }, "endDate": { "optional": true, "type": "string", "format": "date-time" }, "leaseBuyPlanDetails": { "optional": true, "type": "string", "maxLength": 100 }, "saveCurrency": { "optional": true, "type": "number" }, "startDate": { "optional": true, "type": "string", "format": "date-time" }, "sellDecoration": { "optional": true, "type": "string", "maxLength": 100 }, "offerType": { "optional": true, "type": "string", "maxLength": 1 }, "retiredDate": { "optional": true, "type": "string", "format": "date-time" }, "multiBuyQuantity": { "optional": true, "type": "string", "maxLength": 100 } } }
Offer Create
Create a new Offer in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/Offer/Identifier .format |
Version | 1.0 |
Method | POST |
Request Body |
A graph of the Offer to be created in the format given. Attributes and to-one relationships must match the schema below.
|
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
POST | https://api.canopyapp.net/api/erp/Offer.json |
Request | { "type": "PublicOffer", "advertDetails": "TVC 3347-J", "approvedDate": null, "assetKeys": null, "code": "1989739", "codedSnippet": null, "endDate": "2013-09-12T00:34:32.384Z", "id": null, "leaseBuyPlanDetails": null, "multiBuyQuantity": null, "offerDescr": null, "offerType": null, "origXML": null, "previousPrice": null, "saveString": "2.00", "sellDecoration": "Only Available this month", "sellString": null, "tags": null, "unit": "1", "unitPrice": null, "uuid": null, "createdDate": null, "rejectedDate": null, "retiredDate": null, "saveCurrency": null, "sellCurrency": null, "startDate": "2013-08-12T00:34:32.384Z" } |
Response | { "id": "7842b493-fd20-4f29-a186-fa2c44a35061", "type": "PublicOffer", "advertDetails": "TVC 3347-J", "approvedDate": null, "assetKeys": null, "code": "1989739", "createdDate": "2013-08-02T00:34:32.384Z", "endDate": "2013-09-12T00:34:32.384Z", "leaseBuyPlanDetails": null, "multiBuyQuantity": null, "offerDescr": null, "offerType": null, "origXML": null, "previousPrice": null, "rejectedDate": null, "retiredDate": null, "saveCurrency": null, "saveString": "2.00", "sellCurrency": null, "sellDecoration": "Only Available this month", "sellString": null, "startDate": "2013-08-12T00:34:32.384Z", "tags": null, "unit": "1", "unitPrice": null, "codedSnippet": "" } |
Offer Create Schema
{ "name": "PublicOffer", "properties": { "sellDecoration": { "optional": true, "type": "string", "maxLength": 100 }, "sellCurrency": { "optional": true, "type": "number" }, "assetKeys": { "optional": true, "type": "string", "maxLength": 100 }, "offerDescr": { "optional": true, "type": "string", "maxLength": 255 }, "sellString": { "optional": true, "type": "string", "maxLength": 100 }, "unit": { "optional": true, "type": "string", "maxLength": 100 }, "endDate": { "optional": true, "type": "string", "format": "date-time" }, "leaseBuyPlanDetails": { "optional": true, "type": "string", "maxLength": 100 }, "saveString": { "optional": true, "type": "string", "maxLength": 100 }, "startDate": { "optional": true, "type": "string", "format": "date-time" }, "previousPrice": { "optional": true, "type": "string", "maxLength": 100 }, "advertDetails": { "optional": true, "type": "string", "maxLength": 100 }, "offerType": { "optional": true, "type": "string", "maxLength": 1 }, "multiBuyQuantity": { "optional": true, "type": "string", "maxLength": 100 }, "tags": { "optional": true, "type": "string" }, "unitPrice": { "optional": true, "type": "string", "maxLength": 100 }, "saveCurrency": { "optional": true, "type": "number" } } }
Offer Update
Update an existing Offer in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/Offer/Identifier .format |
Version | 1.0 |
Method | PUT |
Request Body |
A graph of the Offer to be updated in the format given. Attributes and to-one relationships must match the schema below.
|
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
PUT | https://api.canopyapp.net/api/erp/Offer/7842b493-fd20-4f29-a186-fa2c44a35061.json |
Request | { "type": "PublicOffer", "advertDetails": null, "approvedDate": "2011-12-07T10:08:04.297Z", "assetKeys": null, "code": "7842b493-fd20-4f29-a186-fa2c44a35061", "codedSnippet": null, "id": "7842b493-fd20-4f29-a186-fa2c44a35061", "leaseBuyPlanDetails": null, "multiBuyQuantity": null, "offerDescr": "Barbecue Sauce 420ml", "offerType": "S", "origXML": null, "previousPrice": "14.99", "saveString": null, "sellDecoration": "12.99", "sellString": null, "tags": "tag a, tag b, tag c", "unit": "3", "unitPrice": "14", "uuid": null, "createdDate": { "type": "DateTime" }, "endDate": { "type": "DateTime" }, "rejectedDate": null, "retiredDate": null, "saveCurrency": 2, "sellCurrency": 12.99, "startDate": { "type": "DateTime" } } |
Response | { "id": "7842b493-fd20-4f29-a186-fa2c44a35061", "type": "PublicOffer", "advertDetails": null, "approvedDate": "2011-12-07T10:08:04.297Z", "assetKeys": null, "code": "7842b493-fd20-4f29-a186-fa2c44a35061", "createdDate": "2011-11-11T14:00:53.195Z", "endDate": "2012-04-12T00:00:00.000Z", "leaseBuyPlanDetails": null, "multiBuyQuantity": null, "offerDescr": "Barbecue Sauce 420ml", "offerType": "S", "origXML": null, "previousPrice": "14.99", "rejectedDate": null, "retiredDate": null, "saveCurrency": 2, "saveString": null, "sellCurrency": 12.99, "sellDecoration": "12.99", "sellString": null, "startDate": "2011-09-01T00:00:00.000Z", "tags": "tag a, tag b, tag c", "unit": "3", "unitPrice": "14", "codedSnippet": "" } |
Offer Update Schema
{ "name": "PublicOffer", "properties": { "sellDecoration": { "optional": true, "type": "string", "maxLength": 100 }, "sellCurrency": { "optional": true, "type": "number" }, "assetKeys": { "optional": true, "type": "string", "maxLength": 100 }, "offerDescr": { "optional": true, "type": "string", "maxLength": 255 }, "sellString": { "optional": true, "type": "string", "maxLength": 100 }, "unit": { "optional": true, "type": "string", "maxLength": 100 }, "endDate": { "optional": true, "type": "string", "format": "date-time" }, "leaseBuyPlanDetails": { "optional": true, "type": "string", "maxLength": 100 }, "saveString": { "optional": true, "type": "string", "maxLength": 100 }, "startDate": { "optional": true, "type": "string", "format": "date-time" }, "previousPrice": { "optional": true, "type": "string", "maxLength": 100 }, "advertDetails": { "optional": true, "type": "string", "maxLength": 100 }, "offerType": { "optional": true, "type": "string", "maxLength": 1 }, "multiBuyQuantity": { "optional": true, "type": "string", "maxLength": 100 }, "tags": { "optional": true, "type": "string" }, "unitPrice": { "optional": true, "type": "string", "maxLength": 100 }, "saveCurrency": { "optional": true, "type": "number" } } }
Offer Retire
Retire an existing Offer in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/Offer/Identifier .format |
Version | 1.0 |
Method | DELETE |
Request Body |
A graph of the Offer to be retired in the format given. Attributes and to-one relationships must match the schema below.
|
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
DELETE | https://api.canopyapp.net/api/erp/Offer/7842b493-fd20-4f29-a186-fa2c44a35061.json |
Request | [Empty Request Body] |
Response | { "id": "7842b493-fd20-4f29-a186-fa2c44a35061", "type": "PublicOffer", "advertDetails": "TVC 43985-J", "approvedDate": null, "assetKeys": null, "code": "1989739", "createdDate": "2013-08-02T00:34:32.384Z", "endDate": null, "leaseBuyPlanDetails": null, "multiBuyQuantity": null, "offerDescr": null, "offerType": null, "origXML": null, "previousPrice": null, "rejectedDate": null, "retiredDate": "2013-08-16T00:36:52.003Z", "saveCurrency": null, "saveString": null, "sellCurrency": null, "sellDecoration": null, "sellString": null, "startDate": null, "tags": null, "unit": null, "unitPrice": null, "codedSnippet": "" } |
Offer Retire Schema
{ "name": "PublicOffer", "properties": { "nil": "true" } }
Recipe Index / Search
This is an Index or Search of the Recipe library, with optional batched results, optional search qualification, optional sort orderings.
Details
URL Structure | https://api.canopyapp.net/api/erp/Recipe.<format> ?batchSize=<batchSize> &batch=<batch> &qualifier=<qualifier> &sort=<sort> &tags=<tags> |
Version | 1.0 |
Method | GET |
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
batchSize optional |
Number of Recipes in each batch |
batch optional |
The batch to include in the response |
qualifier optional |
A simple qualification on the Recipe objects |
sort optional |
A comma delimited list of sort criteria - left hand side is the Recipe attribute, right hand side the sort direction. |
tags optional |
A semi-colon delimited list of tag criteria - each list item a colon delimited tuple of tag group and value.
For example: tags=Cusine:Indian;Course:Dinner;
|
search optional |
Free form search across Recipe name, description, ingredients, steps and preparation data. |
Example Request
GET | https://api.canopyapp.net/api/erp/Recipe.json |
Request | [Empty Request Body] |
Response | [ { "uuid": "d5ba6820-7c29-11e5-8bcf-feff819cdc9f", "type": "Recipe", "id": "d5ba6820-7c29-11e5-8bcf-feff819cdc9f", "descr": "Delicious chicken served with chipolte peppers, not too spicy!", "name": "Chipotle Chicken" }, { "uuid": "e02137bc-7c29-11e5-8bcf-feff819cdc9f", "type": "Recipe", "id": "e02137bc-7c29-11e5-8bcf-feff819cdc9f", "descr": "Put your leftover ham to work", "name": "Slow Cooker Ham & Bean Soup" }, { "uuid": "f0ed4f18-7c29-11e5-8bcf-feff819cdc9f", "type": "Recipe", "id": "f0ed4f18-7c29-11e5-8bcf-feff819cdc9f", "descr": "Fatastic Dessert with fluffy marshmallow and rich chocolate", "name": "Chocolate Marshmallow Cake" } ] |
Example Tag Search (Cuisine, Course)
GET | https://api.canopyapp.net/api/erp/Recipe.json?tags=Cuisine:Indian;Course:Lunch |
Request | [Empty Request Body] |
Response | [ { "id":"22489248-80ee-11e5-8bcf-feff819cdc9f", "type":"Recipe", "descr":"Enjoy the taste of India at home with this flavour-packed recipe for Coriander & Coconut Fish Parcel. ", "name":"Coriander & Coconut Fish Parcel ", "uuid":"22489248-80ee-11e5-8bcf-feff819cdc9f" }, { "id":"5017c3ce-80ee-11e5-8bcf-feff819cdc9f", "type":"Recipe", "descr":"Serve these fresh, hot and crunchy Cucumber & Chilli Pappadums as a tasty side to a spicy curry. ", "name":"Cucumber & Chilli Pappadums ", "uuid":"5017c3ce-80ee-11e5-8bcf-feff819cdc9f" }, { "id":"3735e700-80ee-11e5-8bcf-feff819cdc9f", "type":"Recipe", "descr":"Easy and nutritious, this curried lentils recipe combines warm spices, butternut pumpkin and smooth yoghurt into a fragrant and tasty meal! ", "name":"Curried Pumpkin Lentils with Yoghurt", "uuid":"3735e700-80ee-11e5-8bcf-feff819cdc9f" } ] |
Example Tag Search (Key Ingredient)
GET | https://api.canopyapp.net/api/erp/Recipe.json?tags=KeyIngredients:Beef; |
Request | [Empty Request Body] |
Response | [ { "id":"301e4ff0-80f0-11e5-8bcf-feff819cdc9f", "type":"Recipe", "descr":"Brimming full with hearty flavours, this beef and bolognese favourite is a real crowd pleaser.", "name":"Beef and Mushroom Bolognese", "uuid":"301e4ff0-80f0-11e5-8bcf-feff819cdc9f" }, { "id":"50c7d2e4-80f0-11e5-8bcf-feff819cdc9f", "type":"Recipe", "descr":"This is a quick and easy meal but make sure you have everything ready before beginning to cook.", "name":"Beef and Noodle Chow Mein", "uuid":"50c7d2e4-80f0-11e5-8bcf-feff819cdc9f" }, { "id":"407a6a8c-80f0-11e5-8bcf-feff819cdc9f", "type":"Recipe", "descr":"These sensational samosas are highly addictive so ensure you make plenty for second helpings.", "name":"Beef and Pumpkin Samosas", "uuid":"407a6a8c-80f0-11e5-8bcf-feff819cdc9f" } ] |
Example Free Form Search
GET | https://api.canopyapp.net/api/erp/Recipe.json?search=caster |
Request | [Empty Request Body] |
Response | [ { "id":"0255e92a-80f5-11e5-8bcf-feff819cdc9f", "type":"Recipe", "descr":"This baked, nutty dessert is filled with crunchy pecans, oats, and white chocolate pieces.", "name":"Apple, Oat & Chocolate Crumble", "uuid":"0255e92a-80f5-11e5-8bcf-feff819cdc9f" }, { "id":"111455fa-80f5-11e5-8bcf-feff819cdc9f", "type":"Recipe", "descr":"These spiced apple pancakes with crushed pecans are a great way to start the weekend.", "name":"Apple Pancakes with Pecan & Cinnamon Butter", "uuid":"111455fa-80f5-11e5-8bcf-feff819cdc9f" } ] |
Note | Note that the term 'caster' is not returned in this |
Recipe Index / Search Schema
{ "name": "Recipe", "properties": { "name": { "type": "string", "maxLength": 100, "optional": false, "minLength": 1 }, "descr": { "type": "string", "optional": true }, "uuid": { "type": "string", "optional": true, "maxLength": 100 } } }
Recipe Retrieve
Retrieve an existing Recipe in Canopy
Details
URL Structure | https://api.canopyapp.net/api/erp/Recipe/identifier .format |
Version | 1.0 |
Method | POST |
Request Body |
A graph of the Recipe to be created in the format given. Attributes and to-one relationships must match the schema below.
|
Parameters
account required |
The System Account Code |
timestamp required |
The request timestamp |
signature required |
The generated authentication code for this request |
Example Request
GET | https://api.canopyapp.net/api/erp/Recipe/f0ed4f18-7c29-11e5-8bcf-feff819cdc9f.json |
Request | [Empty Request Body] |
Response | { "consumerCategories": [], "cookTimeText": null, "creator": null, "locale": null, "skillLevel": null, "tagsKeyIngredients": [ { "type": "CanTag", "id": 80, "label": "Fruit" } ], "tagsClientSpecific": [], "dateLastModified": null, "makesValue": null, "licencingInfos": [], "servingSuggestion": null, "tagsClasses": [ { "type": "CanTag", "id": 73, "label": "Quick&Easy" } ], "tagsTypes": [ { "type": "CanTag", "id": 103, "label": "Bread" } ], "id": "d46747f2-7c2b-11e5-8bcf-feff819cdc9f", "prepTimeText": null, "uuid": "d46747f2-7c2b-11e5-8bcf-feff819cdc9f", "descr": "Serve this sublime breakfast dish of Almond Milk Fruit French Toast with Berries & Cream Cheese next time you host brunch, guests will fall in love with the rich, fruity flavours. ", "tagsAudiences": [], "clientCreationDate": null, "tagsAuthors": [], "celebrityRecipe": null, "tagsMealTypes": [ { "type": "CanTag", "id": 101, "label": "Breakfast" }, { "type": "CanTag", "id": 102, "label": "Brunch" } ], "tagsMethods": [], "tagsEvent": [], "tagsPageTypes": [], "recipeIngredients": [ { "direction": "softened", "alternateUOM": null, "orderNumber": 2, "alternateLabel": null, "label": "Philadelphia Cream Cheese, ", "groupName": null, "alternateQuantity": null, "ingredient": null, "type": "RecipeIngredient", "id": 29538, "uom": "250g block", "quantity": "1/2 x" }, { "direction": "ends discarded", "alternateUOM": null, "orderNumber": 1, "alternateLabel": null, "label": "Tip Top Caf\u00c3\u00a9 Range Raisin Toast, ", "groupName": null, "alternateQuantity": null, "ingredient": null, "type": "RecipeIngredient", "id": 29536, "uom": "g loaf", "quantity": "650" }, { "direction": "thawed, to serve", "alternateUOM": null, "orderNumber": 9, "alternateLabel": null, "label": "Frozen mixed berries, ", "groupName": null, "alternateQuantity": null, "ingredient": null, "type": "RecipeIngredient", "id": 29531, "uom": null, "quantity": null }, { "direction": "to serve", "alternateUOM": null, "orderNumber": 8, "alternateLabel": null, "label": "Cinnamon sugar, ", "groupName": null, "alternateQuantity": null, "ingredient": null, "type": "RecipeIngredient", "id": 29537, "uom": null, "quantity": null }, { "direction": null, "alternateUOM": null, "orderNumber": 7, "alternateLabel": null, "label": "butter", "groupName": null, "alternateQuantity": null, "ingredient": null, "type": "RecipeIngredient", "id": 29533, "uom": "g", "quantity": "40" }, { "direction": null, "alternateUOM": null, "orderNumber": 6, "alternateLabel": null, "label": "caster sugar", "groupName": null, "alternateQuantity": null, "ingredient": null, "type": "RecipeIngredient", "id": 29534, "uom": "tbsp", "quantity": "1" }, { "direction": null, "alternateUOM": null, "orderNumber": 5, "alternateLabel": null, "label": "eggs", "groupName": null, "alternateQuantity": null, "ingredient": null, "type": "RecipeIngredient", "id": 29535, "uom": "large", "quantity": "2" }, { "direction": null, "alternateUOM": null, "orderNumber": 4, "alternateLabel": null, "label": "Blue Diamond Almond Milk", "groupName": null, "alternateQuantity": null, "ingredient": null, "type": "RecipeIngredient", "id": 29530, "uom": "cup", "quantity": "2/3" }, { "direction": null, "alternateUOM": null, "orderNumber": 3, "alternateLabel": null, "label": "Bonne Maman Strawberry Jam", "groupName": null, "alternateQuantity": null, "ingredient": null, "type": "RecipeIngredient", "id": 29532, "uom": "370g jar", "quantity": "1/3 x" } ], "type": "Recipe", "tagsSpecialDiets": [], "ingredientTips": null, "videoReference": null, "skillLevelString": null, "tagsFeatureNames": [], "tagsCategories": [], "dateCreated": "2014-03-17T21:09:22.893Z", "tagsPublications": [], "tagsDifficulties": [], "recipeSteps": [ { "groupName": null, "stepNumber": 1, "type": "RecipeStep", "id": 12875, "instructions": "Spread raisin slices thickly with the cream cheese. Spread half the slices with jam. Sandwich the slices together and flatten slightly." }, { "groupName": null, "stepNumber": 3, "type": "RecipeStep", "id": 12874, "instructions": "Melt about one quarter of the butter in a non-stick frying pan. Dip each sandwich into the egg mixture, allowing excess to run off. Cook in the butter for 2 minutes on each side, or until golden. Remove to a plate and repeat with remaining butter and sandwiches. Serve sprinkled with cinnamon sugar and with berries. " }, { "groupName": null, "stepNumber": 2, "type": "RecipeStep", "id": 12873, "instructions": "Whisk the almond milk, eggs and sugar together in a medium shallow bowl. " } ], "budgetPerServe": null, "clientGroup": null, "cookingTime": 10, "prepTime": 10, "servesNum": null, "tagsChefs": [], "name": "Almond Milk Fruit French Toast with Berries & Cream Cheese ", "tagsMonth": [], "externalResources": [], "tagsOccasions": [ { "type": "CanTag", "id": 74, "label": "Entertaining" } ], "tagsSeasons": [], "clientReference": "3605", "difficultyRating": null, "chefNotes": null, "medias": [ { "code": "3605_AlmondMilkFruitFrenchToastwithBerries&CreamCheese", "uuid": "ad1a049c-40f5-436c-bc98-7f65821b4e0f", "descr": null, "smallPreview": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/1179545.png?Signature=LDH6AZMXDHjph3hunFvQPM1ZgIo%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ", "full": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/1179543.png?Signature=r8YEUF0qUUqVPQXy61XSgYLexPE%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ", "nodeReference": null, "preview": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/1179544.png?Signature=GOyjMbHJRVsq%2Be47RIgWQqAduss%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ", "type": "Media", "id": "ad1a049c-40f5-436c-bc98-7f65821b4e0f", "originalFilename": "3605_AlmondMilkFruitFrenchToastwithBerries&CreamCheese.tif", "thumb": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/1179546.png?Signature=pLjm%2BSPnj8MCr%2B3jboqqnovUUJw%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ" }, { "code": "FYFandSAVE-april14-berry-frenchtoast-H", "uuid": "a2120f9d-1284-412a-8188-5023210885fe", "descr": null, "smallPreview": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/845317.png?Signature=cQ7vkauWT%2F4Iq1%2FIy7a2HEYQY00%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ", "full": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/845315.png?Signature=sQUiezJnN1GZ2DYlNAso8ynzCLs%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ", "nodeReference": null, "preview": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/845316.png?Signature=WRAHGYQh%2BWBVXb2GpQyP26O7z7U%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ", "type": "Media", "id": "a2120f9d-1284-412a-8188-5023210885fe", "originalFilename": "FYFandSAVE-april14-berry-frenchtoast-H.tif", "thumb": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/845318.png?Signature=%2BJDgbseLRiEmtPKEwaRjBZsu4vE%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ" }, { "code": "FYFandSAVE-april14-berry-frenchtoast-V", "uuid": "77c8504b-896d-4421-99d7-7ee1ba1699da", "descr": null, "smallPreview": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/845327.png?Signature=RhaYq8u%2FXk8U%2BNYsefu5516ovy8%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ", "full": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/845325.png?Signature=YNILgXynGbAneuR842Z6RP%2B0kXI%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ", "nodeReference": null, "preview": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/845326.png?Signature=VhRnmGb18HHEKGnTJsQWXXJJL48%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ", "type": "Media", "id": "77c8504b-896d-4421-99d7-7ee1ba1699da", "originalFilename": "FYFandSAVE-april14-berry-frenchtoast-V.tif", "thumb": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/845328.png?Signature=09%2BwE%2B5CeSS1lfT8eJrJFN21T3A%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ" } ], "disclaimerNotes": null, "lede": "Serve this sublime breakfast dish of Almond Milk Fruit French Toast with Berries & Cream Cheese next time you host brunch, guests will fall in love with the rich, fruity flavours. ", "publicationNotes": null, "servesValue": "4-6", "tagsRecipes": [], "tagsCuisines": [] } |
Recipe Retrieve Schema
{ "name": "Recipe", "properties": { "consumerCategories": { "name": { "type": "string", "optional": false }, "descr": { "type": "string", "optional": true } }, "cookTimeText": { "type": "string", "optional": true }, "creator": { "lastName": { "type": "string", "maxLength": 100, "optional": false, "minLength": 1 }, "firstName": { "type": "string", "maxLength": 100, "optional": false, "minLength": 1 } }, "locale": { "type": "string", "optional": true, "maxLength": 10 }, "skillLevel": { "type": "string", "optional": true, "maxLength": 1 }, "tagsKeyIngredients": { "label": { "type": "string", "optional": false } }, "tagsDifficulties": { "label": { "type": "string", "optional": false } }, "externalResources": { "uri": { "type": "string", "optional": true }, "name": { "type": "string", "optional": true, "maxLength": 100 }, "tags": { "type": "string", "optional": true, "maxLength": 255 } }, "chefNotes": { "type": "string", "optional": true }, "licencingInfos": { "source": { "type": "string", "optional": true, "maxLength": 100 }, "licenceType": { "type": "string", "optional": true, "maxLength": 100 }, "dateEnd": { "type": "string", "optional": true, "format": "date-time" }, "descr": { "type": "string", "optional": true }, "dateStart": { "type": "string", "optional": true, "format": "date-time" } }, "servingSuggestion": { "type": "string", "optional": true }, "tagsClasses": { "label": { "type": "string", "optional": false } }, "tagsTypes": { "label": { "type": "string", "optional": false } }, "prepTimeText": { "type": "string", "optional": true }, "tagsAuthors": { "label": { "type": "string", "optional": false } }, "uuid": { "type": "string", "optional": true, "maxLength": 100 }, "descr": { "type": "string", "optional": true }, "tagsAudiences": { "label": { "type": "string", "optional": false } }, "clientCreationDate": { "type": "string", "optional": true, "format": "date-time" }, "tagsMonth": { "label": { "type": "string", "optional": false } }, "celebrityRecipe": { "type": "string", "optional": true, "maxLength": 1 }, "tagsMealTypes": { "label": { "type": "string", "optional": false } }, "tagsMethods": { "label": { "type": "string", "optional": false } }, "tagsEvent": { "label": { "type": "string", "optional": false } }, "lede": { "type": "string", "optional": true, "maxLength": 1000 }, "recipeIngredients": { "direction": { "type": "string", "optional": true }, "alternateUOM": { "type": "string", "optional": true, "maxLength": 100 }, "orderNumber": { "type": "integer", "optional": true }, "alternateLabel": { "type": "string", "optional": true, "maxLength": 255 }, "label": { "type": "string", "maxLength": 255, "optional": false, "minLength": 1 }, "groupName": { "type": "string", "optional": true }, "alternateQuantity": { "type": "string", "optional": true, "maxLength": 100 }, "quantity": { "type": "string", "optional": true, "maxLength": 100 }, "uom": { "type": "string", "optional": true, "maxLength": 100 }, "ingredient": { "product": { "code": { "type": "string", "maxLength": 100, "optional": false, "minLength": 1 }, "uuid": { "type": "string", "optional": true, "maxLength": 100 }, "descr": { "type": "string", "optional": true } }, "code": { "type": "string", "maxLength": 100, "optional": false, "minLength": 1 }, "name": { "type": "string", "maxLength": 100, "optional": false, "minLength": 1 } } }, "tagsSeasons": { "label": { "type": "string", "optional": false } }, "tagsSpecialDiets": { "label": { "type": "string", "optional": false } }, "ingredientTips": { "type": "string", "optional": true }, "videoReference": { "type": "string", "optional": true }, "skillLevelString": { "type": "string", "optional": true, "maxLength": 100 }, "tagsFeatureNames": { "label": { "type": "string", "optional": false } }, "cookingTime": { "type": "number", "optional": true }, "tagsCategories": { "label": { "type": "string", "optional": false } }, "dateCreated": { "type": "string", "optional": false, "format": "date-time" }, "tagsPublications": { "label": { "type": "string", "optional": false } }, "recipeSteps": { "groupName": { "type": "string", "optional": true }, "stepNumber": { "type": "integer", "optional": false }, "instructions": { "type": "string", "optional": true } }, "budgetPerServe": { "type": "number", "optional": true }, "clientGroup": { "type": "string", "optional": true, "maxLength": 100 }, "tagsClientSpecific": { "label": { "type": "string", "optional": false } }, "prepTime": { "type": "number", "optional": true }, "servesNum": { "type": "integer", "optional": true }, "tagsChefs": { "label": { "type": "string", "optional": false } }, "name": { "type": "string", "maxLength": 100, "optional": false, "minLength": 1 }, "dateLastModified": { "type": "string", "optional": true, "format": "date-time" }, "tagsOccasions": { "label": { "type": "string", "optional": false } }, "clientReference": { "type": "string", "optional": true, "maxLength": 100 }, "difficultyRating": { "type": "integer", "optional": true }, "makesValue": { "type": "string", "optional": true, "maxLength": 100 }, "medias": { "nodeReference": { "type": "string", "optional": true }, "code": { "type": "string", "maxLength": 100, "optional": false, "minLength": 1 }, "descr": { "type": "string", "optional": true }, "originalFilename": { "type": "string", "optional": true, "maxLength": 100 }, "uuid": { "type": "string", "optional": true, "maxLength": 100 } }, "disclaimerNotes": { "type": "string", "optional": true }, "tagsPageTypes": { "label": { "type": "string", "optional": false } }, "publicationNotes": { "type": "string", "optional": true }, "servesValue": { "type": "string", "optional": true, "maxLength": 100 }, "tagsRecipes": { "label": { "type": "string", "optional": false } }, "tagsCuisines": { "label": { "type": "string", "optional": false } } } }