decthings

User / getBillingStats


Retrieve stats for used resources in the specified billing cycle. All costs are specified in USD.

Request parameters

{
    /** Month to fetch. Defaults to the current billing cycle. */
    billingCycle?: {
        year: number,
        month: 'JAN' | 'FEB' | 'MAR' | 'APR' | 'MAY' | 'JUN' | 'JUL' | 'AUG' | 'SEP' | 'OCT' | 'NOV' | 'DEC'
    },
    /**
     * Identifiers of models, datasets or persistent launchers. Will only include data from these resources. If
     * unspecified, all data will be included.
     */
    resources?: string[]
}

Response

{
    /** If successful. One of "result" and "error" will be present. */
    result?: {
        year: number,
        month: 'JAN' | 'FEB' | 'MAR' | 'APR' | 'MAY' | 'JUN' | 'JUL' | 'AUG' | 'SEP' | 'OCT' | 'NOV' | 'DEC',
        totalCost: number,
        perDay: {
            day: number,
            models: {
                statesMebibyteMinutes: number,
                statesCost: number,
                filesystemsMebibyteMinutes: number,
                filesystemsCost: number,
                evaluations: {
                    amount: number,
                    baseCost: number,
                    inputData: {
                        bytes: number,
                        cost: number
                    },
                    outputData: {
                        bytes: number,
                        cost: number
                    },
                    launchers: {
                        duringWarmup: {
                            cpuCoreMinutes: number,
                            cpuCost: number,
                            memoryMebibyteMinutes: number,
                            memoryCost: number,
                            diskMebibyteMinutes: number,
                            diskCost: number
                        },
                        afterWarmup: {
                            cpuCoreMinutes: number,
                            cpuCost: number,
                            memoryMebibyteMinutes: number,
                            memoryCost: number,
                            diskMebibyteMinutes: number,
                            diskCost: number
                        }
                    }
                },
                createStates: {
                    amount: number,
                    baseCost: number,
                    launchers: {
                        duringWarmup: {
                            cpuCoreMinutes: number,
                            cpuCost: number,
                            memoryMebibyteMinutes: number,
                            memoryCost: number,
                            diskMebibyteMinutes: number,
                            diskCost: number
                        },
                        afterWarmup: {
                            cpuCoreMinutes: number,
                            cpuCost: number,
                            memoryMebibyteMinutes: number,
                            memoryCost: number,
                            diskMebibyteMinutes: number,
                            diskCost: number
                        }
                    }
                },
                trainingSessions: {
                    amount: number,
                    baseCost: number,
                    launchers: {
                        duringWarmup: {
                            cpuCoreMinutes: number,
                            cpuCost: number,
                            memoryMebibyteMinutes: number,
                            memoryCost: number,
                            diskMebibyteMinutes: number,
                            diskCost: number
                        },
                        afterWarmup: {
                            cpuCoreMinutes: number,
                            cpuCost: number,
                            memoryMebibyteMinutes: number,
                            memoryCost: number,
                            diskMebibyteMinutes: number,
                            diskCost: number
                        }
                    }
                },
                terminals: {
                    amount: number,
                    baseCost: number,
                    launchers: {
                        duringWarmup: {
                            cpuCoreMinutes: number,
                            cpuCost: number,
                            memoryMebibyteMinutes: number,
                            memoryCost: number,
                            diskMebibyteMinutes: number,
                            diskCost: number
                        },
                        afterWarmup: {
                            cpuCoreMinutes: number,
                            cpuCost: number,
                            memoryMebibyteMinutes: number,
                            memoryCost: number,
                            diskMebibyteMinutes: number,
                            diskCost: number
                        }
                    }
                },
                spawnedCommands: {
                    amount: number,
                    baseCost: number,
                    launchers: {
                        duringWarmup: {
                            cpuCoreMinutes: number,
                            cpuCost: number,
                            memoryMebibyteMinutes: number,
                            memoryCost: number,
                            diskMebibyteMinutes: number,
                            diskCost: number
                        },
                        afterWarmup: {
                            cpuCoreMinutes: number,
                            cpuCost: number,
                            memoryMebibyteMinutes: number,
                            memoryCost: number,
                            diskMebibyteMinutes: number,
                            diskCost: number
                        }
                    }
                },
                debugSessions: {
                    amount: number,
                    baseCost: number,
                    launchers: {
                        duringWarmup: {
                            cpuCoreMinutes: number,
                            cpuCost: number,
                            memoryMebibyteMinutes: number,
                            memoryCost: number,
                            diskMebibyteMinutes: number,
                            diskCost: number
                        },
                        afterWarmup: {
                            cpuCoreMinutes: number,
                            cpuCost: number,
                            memoryMebibyteMinutes: number,
                            memoryCost: number,
                            diskMebibyteMinutes: number,
                            diskCost: number
                        }
                    },
                    operations: {
                        amount: number,
                        baseCost: number,
                        evaluateInputData: {
                            bytes: number,
                            cost: number
                        },
                        evaluateOutputData: {
                            bytes: number,
                            cost: number
                        }
                    }
                }
            },
            datasets: {
                dataMebibyteMinutes: number,
                dataCost: number
            },
            persistentLaunchers: {
                duringWarmup: {
                    cpuCoreMinutes: number,
                    cpuCost: number,
                    memoryMebibyteMinutes: number,
                    memoryCost: number,
                    diskMebibyteMinutes: number,
                    diskCost: number
                },
                afterWarmup: {
                    cpuCoreMinutes: number,
                    cpuCost: number,
                    memoryMebibyteMinutes: number,
                    memoryCost: number,
                    diskMebibyteMinutes: number,
                    diskCost: number
                }
            }
        }[]
    },

    /** If failed */
    error?: {
        code: 'bad_credentials' | 'too_many_requests' | 'payment_required' | 'unknown'
    } | {
        code: 'invalid_parameter',
        parameterName: string,
        reason: 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.user.getBillingStats()
        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()

Product

  • Documentation
  • Pricing
  • API reference
  • Guides

Company

  • Support

Get going!

Sign up
  • Terms and conditions
  • Privacy policy
  • Cookie policy
  • GitHub
  • LinkedIn

This website uses cookies to enhance the experience.

Learn more