Dataset / getDatasets
TypeScript
Retrieve information about datasets. If the requested dataset wasn't returned, it means it doesn't exist (or you don't have access to it).
Request parameters
{
/** Number of items from the results to skip. Defaults to 0. */
offset?: number,
/** Max number of items to return. Defaults to 20. */
limit?: number,
/** If specified, determines which items to retrieve. */
filter?: {
owners?: string[],
tags?: {
tag: string,
value: string
}[],
ids?: string[],
names?: string[],
searchName?: string
},
/** Specifies a field in the returned items to sort by. Defaults to "createdAt". */
sort?: string,
sortDirection?: 'asc' | 'desc'
}
Response
{
/** If successful. One of "result" and "error" will be present. */
result?: {
datasets: Dataset[],
/** The total number of datasets that matched the filter. */
total: number,
offset: number,
limit: number
},
/** If failed */
error?: {
code: 'bad_credentials' | 'too_many_requests' | 'payment_required' | 'unknown'
} | {
code: 'invalid_parameter',
parameterName: string,
reason: string
}
}
Where "Dataset" is defined as:
export type Dataset = {
id: string,
name: string,
description: string,
publicAccess: boolean,
createdAt: number,
tags: {
tag: string,
value: string
}[],
owner: {
type: 'user',
userId: string,
username: string
} | {
type: 'organization',
organizationId: string,
organizationName: string
},
access: 'read' | 'readwrite',
keys: DecthingsParameterDefinition[],
entries: {
count: number,
totalByteSize: number
},
needsReviewEntries: {
count: number,
totalByteSize: number
},
entriesWaitingToBeDeleted: {
count: number,
totalByteSize: number
},
/**
* The version identifier will be updated every time the data in the dataset changes, for example when an element
* is added. It can be used to prevent synchronization issues if multiple sources edit a dataset simultaneously.
*/
versionId: string
}
Example
Following the installation guide to setup the Decthings API for TypeScript. Add your parameters to the following code and run it in Node.js, or in a browser by using a bundler.
The code reads your API key from file. Create an API key and save it to the file "auth.txt". Keep your key safe!
import * as fs from 'fs'
import { DecthingsClient } from '@decthings/api-client'
let apiKey = fs.readFileSync('./auth.txt').toString().trim()
let client = new DecthingsClient({ apiKey })
async function main() {
try {
let response = await client.dataset.getDatasets()
if (result.error) {
// Decthings sent us an error
console.log(response.error)
} else {
// Success!
console.log(response.result)
}
}
catch (e) {
// Client throws an error on connection issues. The function may or may not have succeded
console.log(e)
}
}
main()