openapi: 3.2.0 info: title: Gumlet Billing API description: Gumlet helps developers deliver online video and images. This API encompasses Gumlet Video, Image and Video Analytics functionality to help you build your products better and faster than ever before. version: '1.4' contact: name: Gumlet Support Team url: https://www.gumlet.com/contact/ email: support@gumlet.com termsOfService: https://www.gumlet.com/terms/ license: name: Apache 2.0 url: https://opensource.org/license/apache-2.0 x-scalar-sdk-installation: - lang: TypeScript description: '```sh npm install @gumlet/nodejs-sdk ```' - lang: Python description: '```sh pip install gumlet ```' servers: - url: https://api.gumlet.com/v1 security: - API_KEY: [] tags: - name: Billing description: Get / change all details about billing and invoices. paths: /mixed/billing/invoice/history: get: responses: '200': description: Successful response content: application/json: schema: type: object properties: unpaid_invoices: type: boolean description: Flag which shows if this account has any unpaid invoices. stripe_invoices: type: array items: type: object properties: id: type: string description: Invoice ID as per stripe. This is not invoice number. status: type: string description: Current status of the invoice enum: - draft - open - paid - uncollectible - void x-apidog-enum: - value: draft name: '' description: '' - value: open name: '' description: '' - value: paid name: '' description: '' - value: uncollectible name: '' description: '' - value: void name: '' description: '' created: type: integer description: Created timestamp of invoice in seconds since epoch amount_due: type: integer description: Amount due for invoice in the lowest denomination of the given currency. For example if the invoice is in USD, the amount shown here is in cents. Therefore, a value like 10000 means the invoice is $100. hosted_invoice_url: type: string description: URL of the invoice page where you can pay the invoice invoice_pdf: type: string description: URL of the page from where you can download the invoice PDF x-apidog-orders: - id - status - created - amount_due - hosted_invoice_url - invoice_pdf required: - id - status - created - amount_due - hosted_invoice_url - invoice_pdf description: List of invoices x-apidog-orders: - unpaid_invoices - stripe_invoices required: - unpaid_invoices - stripe_invoices '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' summary: List Invoices tags: - Billing operationId: list-invoices description: Liost all invoices that are generated so far. x-codeSamples: - label: TypeScript lang: TypeScript source: "import Gumlet from '@gumlet/nodejs-sdk';\n\nconst client = new Gumlet({\n apiKey: process.env['API_KEY'], // defaults to the API_KEY env var\n});\n\nconst billing = await client.billing.listInvoices();\n\nconsole.log(billing);" - label: Python lang: Python source: "import os\n\nfrom gumlet import Gumlet\n\nclient = Gumlet(\n api_key=os.environ.get(\"API_KEY\"),\n)\n\nbilling = client.billing.list_invoices()\n\nprint(billing)" /mixed/billing/details: get: responses: '200': description: Successful response content: application/json: schema: type: object properties: company_name: type: string description: Company name gst_number: type: string description: GST / VAT number address_line: type: string description: Address line 1 city: type: string description: City state_code: type: string description: ISO code of the state postal: type: string description: Postal code country_code: type: string description: ISO code of country. For example, it's "US" for USA. x-apidog-orders: - company_name - gst_number - address_line - city - state_code - postal - country_code required: - company_name - gst_number - address_line - city - state_code - postal - country_code '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' summary: Get Billing Details tags: - Billing operationId: fetch-billing-details description: Get billing details for this organization. x-codeSamples: - label: TypeScript lang: TypeScript source: "import Gumlet from '@gumlet/nodejs-sdk';\n\nconst client = new Gumlet({\n apiKey: process.env['API_KEY'], // defaults to the API_KEY env var\n});\n\nconst billing = await client.billing.fetchDetails();\n\nconsole.log(billing);" - label: Python lang: Python source: "import os\n\nfrom gumlet import Gumlet\n\nclient = Gumlet(\n api_key=os.environ.get(\"API_KEY\"),\n)\n\nbilling = client.billing.fetch_details()\n\nprint(billing)" post: summary: Update Billing Details responses: '200': description: Successful response content: application/json: schema: type: object properties: address_line: type: string description: Address line 1 city: type: string description: Name of the city company_name: type: string description: Company name country_code: type: string description: ISO country code gst_number: type: string description: GST / VAT details of the company postal: type: string description: Postal code of the company state_code: type: string description: ISO code of the state / region x-apidog-orders: - company_name - address_line - city - country_code - gst_number - postal - state_code required: - company_name - address_line - city - country_code - gst_number - postal - state_code '400': description: Bad Request content: application/json: examples: Result: value: error: code: invalid_parameter message: Invalid parameter value. schema: type: object properties: error: type: object properties: code: type: string example: invalid_parameter message: type: string example: Invalid parameter value. required: - code - message required: - error '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' operationId: update-billing-details description: Update billing details requestBody: content: application/json: schema: type: object properties: address_line: type: string description: Address line 1 city: type: string description: Name of the city company_name: type: string description: Company name country_code: type: string description: ISO country code gst_number: type: string description: GST / VAT details of the company postal: type: string description: Postal code of the company state_code: type: string description: ISO code of the state / region x-apidog-orders: - address_line - city - company_name - country_code - gst_number - postal - state_code required: - address_line - city - company_name - country_code - gst_number - postal - state_code tags: - Billing x-codeSamples: - label: TypeScript lang: TypeScript source: "import Gumlet from '@gumlet/nodejs-sdk';\n\nconst client = new Gumlet({\n apiKey: process.env['API_KEY'], // defaults to the API_KEY env var\n});\n\nconst billing = await client.billing.updateDetails({\n address_line: '',\n city: '',\n company_name: '',\n country_code: '',\n gst_number: '',\n postal: '',\n state_code: '',\n});\n\nconsole.log(billing);" - label: Python lang: Python source: "import os\n\nfrom gumlet import Gumlet\n\nclient = Gumlet(\n api_key=os.environ.get(\"API_KEY\"),\n)\n\nbilling = client.billing.update_details(\n address_line=\"\",\n city=\"\",\n company_name=\"\",\n country_code=\"\",\n gst_number=\"\",\n postal=\"\",\n state_code=\"\",\n)\n\nprint(billing)" /mixed/billing/invoice/upcoming: get: responses: '200': description: Successful response content: application/json: schema: type: object properties: invoice_start_date: type: string description: Invoice start date in DD MMM YYYY format invoice_last_date: type: string description: Invoice end date in DD MMM YYYY format next_invoice_date: type: string description: Next invoice date in DD MMM format trial_end_date: type: - string - 'null' description: Trial end date current_month_usage: type: string description: Current month total amount in given currency. upcoming_invoice: type: object properties: subtotal: type: string description: Upcoming invoice amount without tax lines: type: object properties: data: type: array items: type: object properties: description: type: string description: Description about invoice line item quantity: type: string description: User friendly quantity of the line item unit_price: type: number description: Price per unit for the given item in given currency. amount: type: string description: Total amount of the line item x-apidog-orders: - description - quantity - unit_price - amount required: - description - quantity - unit_price - amount x-apidog-orders: - data required: - data description: Invoice line items x-apidog-orders: - subtotal - lines description: Upcoming invoice details required: - subtotal - lines x-apidog-orders: - invoice_start_date - invoice_last_date - next_invoice_date - trial_end_date - current_month_usage - upcoming_invoice required: - invoice_start_date - invoice_last_date - next_invoice_date - current_month_usage - upcoming_invoice '400': description: Bad Request — no active subscription content: application/json: examples: Result: value: error: code: no_active_subscription message: No active subscription found for this user. schema: type: object properties: error: type: object properties: code: type: string example: no_active_subscription message: type: string example: No active subscription found for this user. required: - code - message required: - error '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' summary: Upcoming Invoice tags: - Billing operationId: fetch-upcoming-invoice description: Get details about upcoming invoice. x-codeSamples: - label: TypeScript lang: TypeScript source: "import Gumlet from '@gumlet/nodejs-sdk';\n\nconst client = new Gumlet({\n apiKey: process.env['API_KEY'], // defaults to the API_KEY env var\n});\n\nconst billing = await client.billing.fetchUpcomingInvoice();\n\nconsole.log(billing);" - label: Python lang: Python source: "import os\n\nfrom gumlet import Gumlet\n\nclient = Gumlet(\n api_key=os.environ.get(\"API_KEY\"),\n)\n\nbilling = client.billing.fetch_upcoming_invoice()\n\nprint(billing)" components: schemas: Error: type: object required: - error properties: error: type: object required: - code - message properties: code: type: string description: Machine-readable error code message: type: string description: Human-readable error message param: type: string description: Optional parameter name related to the error responses: Forbidden: description: Forbidden — unpaid account or insufficient role permissions content: application/json: examples: Result: value: error: code: unauthorized message: You don't have access to this feature. Please contact your organization owner. schema: $ref: '#/components/schemas/Error' Unauthorized: description: Unauthorized — missing or invalid API key / bearer token content: application/json: examples: Result: value: error: code: invalid_api_key message: API key supplied with request is invalid schema: $ref: '#/components/schemas/Error' InternalServerError: description: Internal Server Error content: application/json: examples: Result: value: error: code: internal_server_error message: We have encountered some server error. We have been notified and will fix it soon. schema: $ref: '#/components/schemas/Error' securitySchemes: API_KEY: type: http scheme: bearer x-tagGroups: - name: Video on Demand tags: - Video Assets - Global Search - Multipart Upload - Audio Upload - Subtitle Upload - Recycle Bin - Video Workspaces - Folders - Video Playlists - Channel Viewers - Video Usage Analytics - Video Profiles - Webhooks - name: Live Streams tags: - Live Stream Workspaces - Live Stream Assets - Live Stream Analytics - name: Image APIs tags: - Image Sources - Image Usage Analytics - name: Video Analytics tags: - Video Analytics - name: Webhooks tags: - Webhooks - name: Account Endpoints tags: - User Data - Billing - Organization Data - Audit Logs x-ext-urls: {}