cannabis-reports
v1.1.9
Published
SDK for Cannabis Reports API
Readme
Cannabis Reports
A Cannabis Reports API wrapper for Node.js
This project uses modern ES2016+ syntax, which means you can use promises (as shown in the documentation) or async/await.
Installation
npm install --save cannabis-reportsUsage
import { Strain, Flower, Extract, Edible, Product, Producer, SeedCompany, Dispensary } from 'cannabis-reports';Only import the modules you need. For example, if you only need the Strain and Extract modules:
import { Strain, Extract } from 'cannabis-reports';To set your API Key, set the environment variable CANNABIS_REPORTS_API_KEY. Alternatively, you can set the configuration manually
import { setCannabisReportsKey } from 'cannabis-reports';
setCannabisReportsKey('<your-api-key>')Strains
- Strain.all()
- Strain.search()
- Strain.strain()
- Strain.user()
- Strain.reviews()
- Strain.effectsFlavors()
- Strain.seedCompany()
- Strain.genetics()
- Strain.children()
- Strain.availability()
Flowers
- Flower.all()
- Flower.type()
- Flower.flower()
- Flower.user()
- Flower.reviews()
- Flower.effectsFlavors()
- Flower.producer()
- Flower.strain()
- Flower.availability()
Extracts
- Extract.all()
- Extract.type()
- Extract.extract()
- Extract.user()
- Extract.reviews()
- Extract.effectsFlavors()
- Extract.producer()
- Extract.strain()
- Extract.availability()
Edibles
- Edible.all()
- Edible.type()
- Edible.edible()
- Edible.user()
- Edible.reviews()
- Edible.effectsFlavors()
- Edible.producer()
- Edible.strain()
- Edible.availability()
Products
- Product.all()
- Product.type()
- Product.product()
- Product.user()
- Product.reviews()
- Product.effectsFlavors()
- Product.producer()
- Product.strain()
- Product.availability()
Producers
- Producer.all()
- Producer.producer()
- Producer.user()
- Producer.extracts()
- Producer.edibles()
- Producer.products()
- Producer.availability()
Dispensaries
- Dispensary.all()
- Dispensary.dispensary()
- Dispensary.strains()
- Dispensary.extracts()
- Dispensary.edibles()
- Dispensary.products()
Seed Companies
options (optional) - [Object]
sort- [String] Possible values:createdAt- Oldest records-createdAt- Newest recordsupdatedAt- Oldest updated records-updatedAt- Newest updated recordsname- Alphabetically stating with numeric strains. 0-9, A-Z.-name- Alphabetically starting with Z and working back through numeric strains. Z-A, 9-0.
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Strain
.all(options)
.then(data => console.log(data))
.catch(err => console.log(err))query (required) - [String]
options (optional) - [Object]
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Strain
.search('orange')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Strain
.strain('VUJCJ4TYMG000000000000000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Strain
.strain('VUJCJ4TYMG000000000000000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
options (optional) - [Object]
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Strain
.reviews('VUJCJ4TYMG000000000000000', options)
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Strain
.effectsFlavors('VUJCJ4TYMG000000000000000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Strain
.seedCompany('VUJCJ4TYMG000000000000000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Strain
.genetics('VUJCJ4TYMG000000000000000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
options (optional) - [Object]
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Strain
.children('VUJCJ4TYMG000000000000000', options)
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
lat (required) - [String] or [Number]
lng (required) - [String] or [Number]
options (optional) - [Object]
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.radius- [Number] Radius to search for in miles, max 25.
Strain
.availability('VUJCJ4TYMG000000000000000', 37.7749295, -122.4194155, options)
.then(data => console.log(data))
.catch(err => console.log(err))options (optional) - [Object]
sort- [String] Possible values:createdAt- Oldest records-createdAt- Newest recordsupdatedAt- Oldest updated records-updatedAt- Newest updated records
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Flower
.all(options)
.then(data => console.log(data))
.catch(err => console.log(err))flowerType (required) - [String] (case-insensitive) Possible values:
flowersseedsclonesshake
options (optional) - [Object]
sort- [String] Possible values:createdAt- Oldest records-createdAt- Newest recordsupdatedAt- Oldest updated records-updatedAt- Newest updated records
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Flower
.type(flowerType, options)
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Flower
.flower('AHZ7H4N6467FVUDY3DAY00000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Flower
.user('AHZ7H4N6467FVUDY3DAY00000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
options (optional) - [Object]
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Flower
.reviews('AHZ7H4N6467FVUDY3DAY00000', options)
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Flower
.effectsFlavors('AHZ7H4N6467FVUDY3DAY00000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Flower
.producer('AHZ7H4N6467FVUDY3DAY00000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Flower
.strain('AHZ7H4N6467FVUDY3DAY00000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
lat (required) - [String] or [Number]
lng (required) - [String] or [Number]
options (optional) - [Object]
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.radius- [Number] Radius to search for in miles, max 25.
Flower
.availability('AHZ7H4N6467FVUDY3DAY00000', 37.7749295, -122.4194155, options)
.then(data => console.log(data))
.catch(err => console.log(err))options (optional) - [Object]
sort- [String] Possible values:createdAt- Oldest records-createdAt- Newest recordsupdatedAt- Oldest updated records-updatedAt- Newest updated records
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Extract
.all(options)
.then(data => console.log(data))
.catch(err => console.log(err))extractType (required) - [String] (case-insensitive) Possible values:
kiefhashwater-hashoilwaxcrumblehoneycombshattervaporizer-disposablevaporizer-cartridge
options (optional) - [Object]
sort- [String] Possible values:createdAt- Oldest records-createdAt- Newest recordsupdatedAt- Oldest updated records-updatedAt- Newest updated records
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Extract
.type(extractType, options)
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Extract
.extract('3CV7E33XLHTJT2XZ4GMD00000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Extract
.user('3CV7E33XLHTJT2XZ4GMD00000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
options (optional) - [Object]
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Extract
.reviews('3CV7E33XLHTJT2XZ4GMD00000', options)
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Extract
.effectsFlavors('3CV7E33XLHTJT2XZ4GMD00000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Extract
.producer('3CV7E33XLHTJT2XZ4GMD00000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Extract
.strain('3CV7E33XLHTJT2XZ4GMD00000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
lat (required) - [String] or [Number]
lng (required) - [String] or [Number]
options (optional) - [Object]
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.radius- [Number] Radius to search for in miles, max 25.
Extract
.availability('3CV7E33XLHTJT2XZ4GMD00000', 37.7749295, -122.4194155, options)
.then(data => console.log(data))
.catch(err => console.log(err))options (optional) - [Object]
sort- [String] Possible values:createdAt- Oldest records-createdAt- Newest recordsupdatedAt- Oldest updated records-updatedAt- Newest updated records
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Edible
.all(options)
.then(data => console.log(data))
.catch(err => console.log(err))edibleType (required) - [String] (case-insensitive) Possible values:
baked goodscandytreatchocolatesnackbeveragepilltincturebutterhoneybreath stripsteaice cream
options (optional) - [Object]
sort- [String] Possible values:createdAt- Oldest records-createdAt- Newest recordsupdatedAt- Oldest updated records-updatedAt- Newest updated records
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Edible
.type(edibleType, options)
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Edible
.edible('3CV7E33XLHTJT2XZ4GMD00000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Edible
.user('3CV7E33XLHTJT2XZ4GMD00000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
options (optional) - [Object]
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Edible
.reviews('3CV7E33XLHTJT2XZ4GMD00000', options)
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Edible
.effectsFlavors('3CV7E33XLHTJT2XZ4GMD00000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Edible
.producer('3CV7E33XLHTJT2XZ4GMD00000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Edible
.strain('3CV7E33XLHTJT2XZ4GMD00000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
lat (required) - [String] or [Number]
lng (required) - [String] or [Number]
options (optional) - [Object]
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.radius- [Number] Radius to search for in miles, max 25.
Edible
.availability('3CV7E33XLHTJT2XZ4GMD00000', 37.7749295, -122.4194155, options)
.then(data => console.log(data))
.catch(err => console.log(err))options (optional) - [Object]
sort- [String] Possible values:createdAt- Oldest records-createdAt- Newest recordsupdatedAt- Oldest updated records-updatedAt- Newest updated records
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Product
.all(options)
.then(data => console.log(data))
.catch(err => console.log(err))productType (required) - [String] (case-insensitive) Possible values:
bathtopicalskin carepre-rolllip balmmassage oilpersonal lubricant
options (optional) - [Object]
sort- [String] Possible values:createdAt- Oldest records-createdAt- Newest recordsupdatedAt- Oldest updated records-updatedAt- Newest updated records
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Product
.type(productType, options)
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Product
.product('3CV7E33XLHTJT2XZ4GMD00000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Product
.user('3CV7E33XLHTJT2XZ4GMD00000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
options (optional) - [Object]
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Product
.reviews('3CV7E33XLHTJT2XZ4GMD00000', options)
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Product
.effectsFlavors('3CV7E33XLHTJT2XZ4GMD00000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Product
.producer('3CV7E33XLHTJT2XZ4GMD00000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Product
.strain('3CV7E33XLHTJT2XZ4GMD00000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
lat (required) - [String] or [Number]
lng (required) - [String] or [Number]
options (optional) - [Object]
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.radius- [Number] Radius to search for in miles, max 25.
Product
.availability('3CV7E33XLHTJT2XZ4GMD00000', 37.7749295, -122.4194155, options)
.then(data => console.log(data))
.catch(err => console.log(err))options (optional) - [Object]
sort- [String] Possible values:createdAt- Oldest records-createdAt- Newest recordsupdatedAt- Oldest updated records-updatedAt- Newest updated recordsname- Alphabetically stating with numeric producers. 0-9, A-Z.-name- Alphabetically starting with Z and working back through numeric producers. Z-A, 9-0.
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Producer
.all(options)
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Producer
.producer('0000000000L6M7E0000000000')
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
options (optional) - [Object]
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.sort- [String] Possible values:createdAt- Oldest records-createdAt- Newest recordsupdatedAt- Oldest updated records-updatedAt- Newest updated records
Producer
.extracts('0000000000L6M7E0000000000', options)
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
options (optional) - [Object]
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.sort- [String] Possible values:createdAt- Oldest records-createdAt- Newest recordsupdatedAt- Oldest updated records-updatedAt- Newest updated records
Producer
.edibles('0000000000L6M7E0000000000', options)
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
options (optional) - [Object]
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.sort- [String] Possible values:createdAt- Oldest records-createdAt- Newest recordsupdatedAt- Oldest updated records-updatedAt- Newest updated records
Producer
.products('0000000000L6M7E0000000000', options)
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
lat (required) - [String] or [Number]
lng (required) - [String] or [Number]
options (optional) - [Object]
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.radius- [Number] Radius to search for in miles, max 25.
Producer
.availability('0000000000L6M7E0000000000', 37.7749295, -122.4194155, options)
.then(data => console.log(data))
.catch(err => console.log(err))ucpc (required) - [String]
Product
.seedCompany('VUJCJ00000000000000000000')
.then(data => console.log(data))
.catch(err => console.log(err))options (optional) - [Object]
sort- [String] Possible values:createdAt- Oldest records-createdAt- Newest recordsupdatedAt- Oldest updated records-updatedAt- Newest updated records
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
SeedCompany
.seedCompany('VUJCJ00000000000000000000', options)
.then(data => console.log(data))
.catch(err => console.log(err))options (optional) - [Object]
sort- [String] Possible values:createdAt- Oldest records-createdAt- Newest recordsupdatedAt- Oldest updated records-updatedAt- Newest updated records
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
SeedCompany
.reviews('VUJCJ00000000000000000000', options)
.then(data => console.log(data))
.catch(err => console.log(err))options (optional) - [Object]
sort- [String] Possible values:createdAt- Oldest records-createdAt- Newest recordsupdatedAt- Oldest updated records-updatedAt- Newest updated recordsname- Alphabetically stating with numeric strains. 0-9, A-Z.-name- Alphabetically starting with Z and working back through numeric strains. Z-A, 9-0.
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Dispensary
.all(options)
.then(data => console.log(data))
.catch(err => console.log(err))state (required) - [String] Two character state for the dispensary.
city (required) - [String] City the dispensary is in (kebab-case).
slug (required) - [String] Slug for the name of the dispensary.
Dispensary
.dispensary('ca', 'san-francisco', 'grass-roots')
.then(data => console.log(data))
.catch(err => console.log(err))state (required) - [String] Two character state for the dispensary.
city (required) - [String] City the dispensary is in (kebab-case).
slug (required) - [String] Slug for the name of the dispensary.
options (optional) - [Object]
sort- [String] Possible values:createdAt- Oldest records-createdAt- Newest recordsupdatedAt- Oldest updated records-updatedAt- Newest updated records
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Dispensary
.strains('ca', 'san-francisco', 'grass-roots', options)
.then(data => console.log(data))
.catch(err => console.log(err))state (required) - [String] Two character state for the dispensary.
city (required) - [String] City the dispensary is in (kebab-case).
slug (required) - [String] Slug for the name of the dispensary.
options (optional) - [Object]
sort- [String] Possible values:createdAt- Oldest records-createdAt- Newest recordsupdatedAt- Oldest updated records-updatedAt- Newest updated records
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Dispensary
.extracts('ca', 'san-francisco', 'grass-roots', options)
.then(data => console.log(data))
.catch(err => console.log(err))state (required) - [String] Two character state for the dispensary.
city (required) - [String] City the dispensary is in (kebab-case).
slug (required) - [String] Slug for the name of the dispensary.
options (optional) - [Object]
sort- [String] Possible values:createdAt- Oldest records-createdAt- Newest recordsupdatedAt- Oldest updated records-updatedAt- Newest updated records
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Dispensary
.edibles('ca', 'san-francisco', 'grass-roots', options)
.then(data => console.log(data))
.catch(err => console.log(err))state (required) - [String] Two character state for the dispensary.
city (required) - [String] City the dispensary is in (kebab-case).
slug (required) - [String] Slug for the name of the dispensary.
options (optional) - [Object]
sort- [String] Possible values:createdAt- Oldest records-createdAt- Newest recordsupdatedAt- Oldest updated records-updatedAt- Newest updated records
page- [Number] By default, Cannabis Reports will return 10 records at a time for this API call. You can use thepageargument to fetch the page of results you want. Check out the pagination section of the documentation for further information.
Dispensary
.products('ca', 'san-francisco', 'grass-roots', options)
.then(data => console.log(data))
.catch(err => console.log(err))