Discovery needs no key. Ratings and market analysis are Pro.
Get an API 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.
openapi: 3.2.0
info:
title: Quartzy Public Inventory Items Webhooks API
description: 'The Quartzy Public API lets life science teams manage lab inventory and ordering programmatically. With it you can list and update inventory items and their instances, create and advance order requests, read item types and labs, inspect the current user, and register webhooks for inventory and order-request events. The API is generally available to all Quartzy accounts.
Base URL: https://api.quartzy.com. Requests are authenticated with a per-user AccessToken passed in the `Access-Token` header (generated in Quartzy under Profile > Access Tokens) or via OAuth2. Responses are JSON. List endpoints are paginated with a `page` query parameter.
Endpoint paths, methods, and query parameters in this document are grounded in the public reference at https://docs.quartzy.com/api/. Request and response object fields are modeled from Quartzy''s documented resources and example payloads; verify exact field names and enumerations against the live reference before relying on them in production.'
version: '1.0'
contact:
name: Quartzy Support
url: https://docs.quartzy.com/api/
email: support@quartzy.com
x-endpointsConfirmed: true
x-endpointsModeled: true
servers:
- url: https://api.quartzy.com
description: Quartzy Public API
security:
- accessToken: []
- oauth2: []
tags:
- name: Webhooks
description: Event subscriptions for inventory and order-request changes.
paths:
/webhooks:
get:
operationId: listWebhooks
tags:
- Webhooks
summary: List webhooks
description: Lists the webhooks registered for an organization.
parameters:
- name: organization_id
in: query
description: Filter webhooks to a specific organization.
schema:
type: string
- $ref: '#/components/parameters/Page'
responses:
'200':
description: A paginated list of webhooks.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Webhook'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createWebhook
tags:
- Webhooks
summary: Create a webhook
description: Registers a webhook that Quartzy calls when a subscribed event occurs on inventory items or order requests.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookCreate'
responses:
'201':
description: The created webhook.
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/ValidationError'
/webhooks/{id}:
get:
operationId: getWebhook
tags:
- Webhooks
summary: Retrieve a webhook
description: Retrieves a single webhook by its identifier.
parameters:
- $ref: '#/components/parameters/IdPath'
responses:
'200':
description: The requested webhook.
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: updateWebhook
tags:
- Webhooks
summary: Update a webhook
description: Updates a webhook, for example to enable or disable it.
parameters:
- $ref: '#/components/parameters/IdPath'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookUpdate'
responses:
'200':
description: The updated webhook.
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
responses:
Unauthorized:
description: The AccessToken is missing or invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
ValidationError:
description: The request body failed validation.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: The requested resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
Page:
name: page
in: query
description: The page number for paginated results.
schema:
type: integer
minimum: 1
default: 1
IdPath:
name: id
in: path
required: true
description: The unique identifier of the resource.
schema:
type: string
schemas:
WebhookCreate:
type: object
required:
- url
- event
properties:
organization_id:
type: string
format: uuid
url:
type: string
format: uri
event:
type: string
Webhook:
type: object
properties:
id:
type: string
format: uuid
organization_id:
type: string
format: uuid
url:
type: string
format: uri
event:
type: string
description: The event that triggers the webhook.
example: order_request.updated
is_enabled:
type: boolean
created_at:
type: string
format: date-time
Error:
type: object
properties:
message:
type: string
code:
type: string
WebhookUpdate:
type: object
properties:
url:
type: string
format: uri
is_enabled:
type: boolean
securitySchemes:
accessToken:
type: apiKey
in: header
name: Access-Token
description: Per-user AccessToken generated in Quartzy under Profile > Access Tokens and sent in the Access-Token header.
oauth2:
type: oauth2
description: OAuth2 authorization for Quartzy API access.
flows:
authorizationCode:
authorizationUrl: https://app.quartzy.com/oauth/authorize
tokenUrl: https://api.quartzy.com/oauth/token
scopes: {}