IT Glue API Patterns — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited IT Glue API Patterns (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
IT Glue uses API key authentication via the x-api-key header:
GET /organizations
x-api-key: YOUR_API_KEY
Content-Type: application/vnd.api+jsonRequired Headers:
| Header | Value | Description |
|---|---|---|
x-api-key | Your API key | Authentication token |
Content-Type | application/vnd.api+json | JSON:API content type |
export IT_GLUE_API_KEY="ITG.your-api-key-here"
export IT_GLUE_REGION="us" # us, eu, or auIT 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 |
Requests and responses follow JSON:API conventions:
{
"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.
GET /organizations?filter[name]=Acme
GET /organizations?filter[organization-status-id]=1
GET /configurations?filter[organization-id]=123456Filters are per-endpoint (not every field is filterable). See references/api.md for the common filter parameter table, multi-filter combining, and PSA-ID cross-platform lookups.
GET /organizations?sort=name
GET /organizations?sort=-created-at
GET /configurations?sort=name,-updated-atNo prefix sorts ascending; - prefix sorts descending. See references/api.md for common sort fields per endpoint.
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 for a full fetch-all-pages pattern and references/api.md for the response metadata shape.
Retrieve related resources in a single request instead of N+1 calls:
GET /configurations/123?include=organization,configuration-interfaces
GET /organizations/456?include=configurations,contacts,passwordsSee references/api.md for the available includes per endpoint and an example response shape.
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 for full request/response examples of each operation.
| Metric | Limit |
|---|---|
| Requests per 5 minutes | 3000 |
| Burst limit | ~100 requests/second |
X-RateLimit-Limit: 3000
X-RateLimit-Remaining: 2847
X-RateLimit-Reset: 1708012800A 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 for a retry-with-backoff implementation.
| 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 for the full error response shape and a handling pattern.
include to avoid N+1 queriespage[size] up to 1000Retry-After for 429s and use backoff with jitter~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.