IT Glue REST API fundamentals: JSON:API request/response structure, x-api-key authentication across regional endpoints (US/EU/AU), filter and sort syntax, pagination, sideloading with includes, rate limits, CRUD operations, and error handling.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add WYRE-AI/msp-claude-plugins --skill api-patterns --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Api Patterns?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/wyre-ai-api-patterns-45901276)More formats (shields.io, HTML) on the badges page.
---
name: "IT Glue API Patterns"
description: >
IT Glue REST API fundamentals: JSON:API request/response structure,
x-api-key authentication across regional endpoints (US/EU/AU), filter and
sort syntax, pagination, sideloading with includes, rate limits, CRUD
operations, and error handling.
when_to_use: >-
When authenticating to or querying the IT Glue REST API directly, or building
integrations against it. Use when: it glue api, it glue query, json api, it glue filter, it glue
pagination, api rate limit, it glue authentication, it glue rest, it glue sideload, or it glue
include.
---
# IT Glue API Patterns
## Overview
The IT Glue API follows the JSON:API specification, providing access to organizations, configurations (assets), contacts, passwords, documents, and flexible assets. This skill covers authentication, query building, pagination, error handling, and performance optimization patterns.
## Authentication
IT Glue uses API key authentication via the `x-api-key` header:
```http
GET /organizations
x-api-key: YOUR_API_KEY
Content-Type: application/vnd.api+json
```
**Required Headers:**
| Header | Value | Description |
|--------|-------|-------------|
| `x-api-key` | Your API key | Authentication token |
| `Content-Type` | `application/vnd.api+json` | JSON:API content type |
```bash
export IT_GLUE_API_KEY="ITG.your-api-key-here"
export IT_GLUE_REGION="us" # us, eu, or au
```
IT Glue operates in multiple regions with separate base URLs — using the wrong one for a customer's account returns 401s that look like a bad key:
| Region | Base URL |
|--------|----------|
| US | `https://api.itglue.com` |
| EU | `https://api.eu.itglue.com` |
| AU | `https://api.au.itglue.com` |
## JSON:API Structure
Requests and responses follow JSON:API conventions:
```json
{
"data": {
"type": "organizations",
"attributes": {
"name": "Acme Corporation",
"organization-type-id": 12345,
"organization-status-id": 1
}
}
}
```
| Term | Description |
|------|-------------|
| `data` | Primary resource or array of resources |
| `attributes` | Resource properties |
| `relationships` | Links to related resources |
| `included` | Sideloaded related resources |
| `meta` | Pagination and metadata |
Field names in `attributes` are kebab-case (`organization-type-id`), not camelCase — this trips up integrations ported from other APIs.
## API Patterns
### Filtering
```http
GET /organizations?filter[name]=Acme
GET /organizations?filter[organization-status-id]=1
GET /configurations?filter[organization-id]=123456
```
Filters are per-endpoint (not every field is filterable). See [references/api.md](references/api.md) for the common filter parameter table, multi-filter combining, and PSA-ID cross-platform lookups.
### Sorting
```http
GET /organizations?sort=name
GET /organizations?sort=-created-at
GET /configurations?sort=name,-updated-at
```
No prefix sorts ascending; `-` prefix sorts descending. See [references/api.md](references/api.md) for common sort fields per endpoint.
### Pagination
```http
GET /organizations?page[size]=50&page[number]=1
```
| Parameter | Description | Default | Max |
|-----------|-------------|---------|-----|
| `page[size]` | Items per page | 50 | 1000 |
| `page[number]` | Page number (1-based) | 1 | - |
Check `meta['next-page']` (not `total-pages`) to decide whether to keep paging — it's `null` on the last page. See [references/examples.md](references/examples.md) for a full fetch-all-pages pattern and [references/api.md](references/api.md) for the response metadata shape.
### Sideloading with Includes
Retrieve related resources in a single request instead of N+1 calls:
```http
GET /configurations/123?include=organization,configuration-interfaces
GET /organizations/456?include=configurations,contacts,passwords
```
See [references/api.md](references/api.md) for the available includes per endpoint and an example response shape.
### CRUD and Nested Resources
Standard verbs: `POST` to create, `GET` to read, `PATCH` to update (partial — only send changed attributes), `DELETE` to remove (not all resource types support it). Resources can also be created/listed scoped to a parent organization via `/organizations/:id/relationships/:type`. See [references/api.md](references/api.md) for full request/response examples of each operation.
## Rate Limiting
| Metric | Limit |
|--------|-------|
| Requests per 5 minutes | 3000 |
| Burst limit | ~100 requests/second |
```http
X-RateLimit-Limit: 3000
X-RateLimit-Remaining: 2847
X-RateLimit-Reset: 1708012800
```
A 429 response includes a `Retry-After` header — respect it rather than a fixed backoff, and add jitter to avoid thundering-herd retries across concurrent jobs. See [references/examples.md](references/examples.md) for a retry-with-backoff implementation.
## Error Handling
| Code | Meaning | Action |
|------|---------|--------|
| 200 | Success | Process response |
| 201 | Created | Resource created successfully |
| 204 | No Content | Delete successful |
| 400 | Bad Request | Check request format |
| 401 | Unauthorized | Verify API key (and region — see Authentication) |
| 403 | Forbidden | Check permissions |
| 404 | Not Found | Resource doesn't exist |
| 422 | Unprocessable Entity | Validation errors |
| 429 | Rate Limited | Implement backoff |
| 500 | Server Error | Retry with backoff |
Validation errors (422) report the failing attribute in `error.source.pointer` (e.g. `/data/attributes/name`) — parse it to point users at the exact field. See [references/errors.md](references/errors.md) for the full error response shape and a handling pattern.
## Best Practices
1. **Use the correct regional endpoint** - Matching US/EU/AU wrong silently produces 401s
2. **Include related data** - Use `include` to avoid N+1 queries
3. **Paginate large results** - Use `page[size]` up to 1000
4. **Implement retry logic** - Respect `Retry-After` for 429s and use backoff with jitter
5. **Cache reference data** - Organization types, configuration types rarely change
6. **Filter and sort server-side** - Narrow and order results via query params, not client-side
## Related Skills
- [IT Glue Organizations](../organizations/SKILL.md) - Organization management
- [IT Glue Configurations](../configurations/SKILL.md) - Asset management
- [IT Glue Passwords](../passwords/SKILL.md) - Secure credential storage
- [IT Glue Documents](../documents/SKILL.md) - Documentation management
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!