GorillaDesk Invoices API
The Invoices API from GorillaDesk — 2 operation(s) for invoices.
The Invoices API from GorillaDesk — 2 operation(s) for invoices.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/gorilladesk:gorilladesk-invoices-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: GorillaDesk Invoices API
version: 1.0.0
description: '# Introduction
The GorillaDesk API is organized around REST.
Our API has predictable resource-oriented URLs, accepts JSON-encoded and form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs..
# Authentication
The GorillaDesk API uses Token authentication. API keys are per-company and can be generated and deleted in the Addons page.
# Rate Limits
We enforce API call rate limits to protect our infrastructure from excessive request rates, to keep GorillaDesk fast and stable for everyone. These limits are high enough that typical API workflows aren''t affected. However, please do code your integration to follow the rule below:
**If you receive a response status code of 429 (Too Many Requests), please sleep/pause for the number of seconds specified by the rate_reset value before making additional requests to that endpoint.**
Rate limits are enforced per endpoint group. Endpoint groups are used to provide more granular control by grouping endpoint URL paths and methods (e.g. GET, PUT, etc.) together. For instance, GETs to /v1/users/ and POSTs/PUTs to /v1/customers/ may be counted as two different API groups. This allows us to offer a higher limit on lightweight requests than we would be able to on more resource intensive request types.
API responses will have the following headers to provide rate limiting statistics about the limit it''s closest to hitting.
- `x-rate-limit-limit`: Request limit enforced for this endpoint, some endpoints may allow bursting over this limit
- `x-rate-limit-remaining`: Requests left in the enforcement window
- `x-rate-limit-reset`: Seconds remaining before this enforcement window ends (as a decimal).
# Model Context Protocol (MCP)
You can connect AI agents and tools to GorillaDesk via the Model Context Protocol. See the GorillaDesk MCP documentation.'
x-logo:
url: https://cdn.gorilladesk.com/assets/images/gorilladesk.png
altText: GorillaDesk logo
servers:
- url: https://api.gorilladesk.com/v1
security:
- Bearer: []
tags:
- name: Invoices
paths:
/invoices:
get:
summary: List invoices
tags:
- Invoices
parameters:
- in: query
name: customer_id
description: Filter to invoices for one customer.
schema:
type: string
- in: query
name: job_id
description: Filter to invoices generated for one job.
schema:
type: string
- in: query
name: state
description: Filter by lifecycle state. Default returns only active.
schema:
type: array
items:
type: string
enum:
- active
- deleted
- archived
example: active,archived
- in: query
name: status
schema:
type: array
items:
type: string
enum:
- draft
- sent
- paid
- partial
- partial_paid
- write_off
- failed
- void
example: draft,sent
- in: query
name: sign_status
description: Filter by signature workflow status.
schema:
type: array
items:
type: string
enum:
- draft
- emailed
- pending_sig
- signed
example: pending_sig,signed
- in: query
name: date[gt]
description: Return results where the date field is strictly greater than this value.
schema:
type: string
format: date-time
example: '2026-07-01T00:00:00+00:00'
- in: query
name: date[gte]
description: Return results where the date field is greater than or equal to this value.
schema:
type: string
format: date-time
- in: query
name: date[lt]
description: Return results where the date field is strictly less than this value.
schema:
type: string
format: date-time
example: '2026-07-31T23:59:59+00:00'
- in: query
name: date[lte]
description: Return results where the date field is less than or equal to this value.
schema:
type: string
format: date-time
- in: query
name: keyword
description: Free-text search across the invoice number.
schema:
type: string
- in: query
name: include
description: 'Expand related objects.
'
schema:
type: array
items:
type: string
enum:
- customer
- location
- items
example: customer,location,items
- in: query
name: sort
description: Prefix -[field] for descending order.
schema:
type: array
items:
type: string
enum:
- date
- created
example: -date
- in: query
name: limit
schema:
type: integer
default: 20
minimum: 1
maximum: 100
- in: query
name: offset
schema:
type: integer
default: 0
minimum: 0
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Invoice'
has_more:
type: boolean
'401':
$ref: '#/paths/~1jobs/get/responses/401'
'403':
$ref: '#/paths/~1jobs/get/responses/403'
operationId: getInvoices
x-operation-id-source: derived
/invoices/{invoiceId}:
get:
summary: Retrieve an invoice
tags:
- Invoices
parameters:
- in: path
name: invoiceId
description: Invoice id.
required: true
schema:
type: string
- in: query
name: include
description: 'Expand related objects.
'
schema:
type: array
items:
type: string
enum:
- customer
- location
- items
example: customer,location,items
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Invoice'
'401':
$ref: '#/paths/~1jobs/get/responses/401'
'403':
$ref: '#/paths/~1jobs/get/responses/403'
'404':
$ref: '#/paths/~1jobs~1%7BjobId%7D/get/responses/404'
operationId: getInvoicesByInvoiceId
x-operation-id-source: derived
components:
schemas:
Tax:
type: object
description: A tax applied to a line item.
properties:
id:
type: string
example: '5'
name:
type: string
example: Sales Tax
rate:
type: number
format: float
example: 10
Invoice:
type: object
description: 'An invoice. Returned from both list (`/v1/invoices`) and detail
(`/v1/invoices/{id}`) endpoints. Nested objects may be `null` or
empty arrays when not applicable.
'
allOf:
- $ref: '#/components/schemas/BaseInvoice'
- type: object
properties:
customer:
$ref: '#/components/schemas/Customer/allOf/0'
location:
$ref: '#/components/schemas/Location'
items:
type: array
items:
$ref: '#/components/schemas/InvoiceItem'
CustomerPhone:
type: object
required:
- phone
- type
properties:
id:
type: string
description: Phone Id
example: 0nk8PGvAO
phone:
type: string
example: 212-456-7890
description: Phone number
type:
type: string
description: Phone type Id
example: 0nk8PGvAO
BaseInvoice:
type: object
description: Scalar invoice fields that are always returned.
properties:
id:
type: string
description: Invoice ID.
example: Wj2k8L
number:
type: string
description: Human-readable invoice number.
example: '5308'
status:
type: string
enum:
- draft
- sent
- paid
- partial
- paid_partially
- write_off
- failed
- void
description: Payment workflow status.
example: draft
sign_status:
type: string
enum:
- draft
- emailed
- pending_sig
- signed
description: Customer-signature workflow status.
example: draft
date:
type: string
format: date-time
description: Invoice date in ISO 8601.
example: '2026-07-22T00:00:00+00:00'
total:
type: number
format: float
description: Grand total (including tax).
example: 38.5
subtotal:
type: number
format: float
description: Line-item subtotal before invoice-level adjustments.
example: 35
amount_without_tax:
type:
- number
- 'null'
format: float
description: Total before tax.
example: 35
tax_amount:
type:
- number
- 'null'
format: float
description: Total tax charged. Derived as `total - amount_without_tax`.
example: 3.5
amount_paid:
type: number
format: float
description: Sum of payments applied to the invoice.
example: 0
amount_due:
type: number
format: float
description: Outstanding balance.
example: 38.5
recurrence_summary:
type:
- string
- 'null'
description: Human-readable recurrence summary.
example: Monthly on the 6th, until 07/09/2026. Except January, April, September
created:
type:
- string
- 'null'
format: date-time
description: Created date of the invoice in ISO 8601.
example: '2026-07-22T00:00:00+00:00'
updated:
type:
- string
- 'null'
format: date-time
description: Last-updated timestamp of the invoice in ISO 8601.
example: '2026-07-22T00:00:00+00:00'
state:
type: string
enum:
- active
- deleted
- archived
description: Lifecycle state of the invoice.
example: active
Customer:
allOf:
- type: object
properties:
id:
type: string
description: The customer ID.
example: 0nk8PGvAO
account_number:
type: string
description: Numeric account identifier for the customer.
example: '5047'
last_name:
type: string
example: Doe
first_name:
type: string
example: John
profile_url:
type: string
example: https://v3.gorilladesk.com/customers/5393
email:
type: string
example: example@gmail.com
phones:
type: array
items:
type: object
$ref: '#/components/schemas/CustomerPhone'
company:
type: string
example: NL software
source:
type:
- object
- 'null'
description: Where the customer originated. Null if no source is assigned.
properties:
id:
type: string
description: Source ID.
example: aWGl2VlY78
name:
type: string
example: Facebook
tags:
type: array
description: Customer-level tag labels attached to this customer.
items:
type: string
example:
- super
- vip
state:
type: string
enum:
- active
- deleted
example: active
status:
type: string
enum:
- active
- inactive
- lead
example: active
created:
type: string
format: date-time
example: '2023-05-21T17:32:28+00:00'
description: Created date in ISO 8601.
updated:
type: string
format: date-time
description: Updated date in ISO 8601.
example: '2023-05-21T17:32:28+00:00'
- type: object
properties:
locations:
type: array
items:
type: object
$ref: '#/components/schemas/Location'
contacts:
type: array
items:
type: object
$ref: '#/components/schemas/Contact'
Location:
type: object
description: A physical location associated with a customer.
required:
- address_line_1
- city
- state
- zip
properties:
id:
description: Location ID.
type: string
example: 5aXrGzNyLY
readOnly: true
name:
description: Location name (e.g. Home, Office).
type: string
example: Home
address_to:
description: Attention line for this address.
type: string
example: John Doe
address_line_1:
description: Primary street address.
type: string
example: 523 East 72nd Street
address_line_2:
description: Secondary street address (apartment, suite, etc.).
type: string
example: ''
city:
description: City.
type: string
example: New York
state:
description: State or province.
type: string
example: NY
zip:
description: Postal / ZIP code.
type: string
example: '10021'
county:
description: County.
type: string
example: ''
billing_to:
description: Attention line for billing address.
type: string
example: John Doe
billing_address_line_1:
description: Billing street address.
type: string
example: 523 East 72nd Street
billing_address_line_2:
description: Billing secondary address.
type: string
example: ''
billing_city:
description: Billing city.
type: string
example: New York
billing_state:
description: Billing state.
type: string
example: NY
billing_zip:
description: Billing postal code.
type: string
example: '10021'
latitude:
description: Latitude coordinate.
type: string
example: ''
longitude:
description: Longitude coordinate.
type: string
example: ''
note:
description: Location notes.
type: string
example: Lorem ipsum dolor sit amet, consectetuer adipiscing eliti
InvoiceItem:
type: object
description: A single line item on an invoice.
properties:
id:
type: string
example: Lm4kP9q
name:
type: string
example: Monthly Service
quantity:
type: number
example: 1
cost:
type: number
format: float
example: 35
total:
type: number
format: float
example: 35
taxes:
type:
- array
- 'null'
description: Taxes applied to this line item.
items:
$ref: '#/components/schemas/Tax'
securitySchemes:
Bearer:
type: http
scheme: bearer
x-sidebar-links:
- label: Model Context Protocol (MCP)
url: https://api.gorilladesk.com/mcp/v1/docs
target: _blank