Loom exposes a GraphQL API for flexible, nested queries over the asset data model — fetch an asset together with its components and locations in a single request, selecting exactly the fields you need.
Endpoint
POST http://<host>:8092/api/v1/graphql
The endpoint accepts a JSON body with query, and optional operationName and variables fields,
and returns the standard GraphQL { "data": …, "errors": … } response shape.
Authentication & Authorization
The GraphQL endpoint reuses the REST authentication stack — a valid JWT bearer token (HttpOnly
cookie or Authorization header) is required; unauthenticated requests are rejected with 401
before the query is parsed. Obtain a token via the Authentication flow.
Authorization is enforced per field. Each resolver checks the caller’s permissions:
| Field | Required permission |
|---|---|
|
|
|
|
|
|
A denied field surfaces a GraphQL error with a code extension (UNAUTHENTICATED when no
permission context is present, FORBIDDEN with the missing permission otherwise).
Interactive Explorer (GraphiQL)
The GraphiQL explorer below is loaded with the Loom schema so you can browse every type and field via the Docs panel (top-left) and compose queries with autocomplete and validation.
|
Note
|
This embedded explorer is schema-only — it runs against the published static schema, so the
Execute button does not return live data here. To run real queries, start a Loom server (for
example the demo container) and open its built-in GraphiQL at http://<host>:8092/graphiql, which
executes authenticated queries against /api/v1/graphql.
|
Example Queries
Fetch a single asset with all of its components and locations:
query GetAsset($uuid: ID!) {
asset(uuid: $uuid) {
uuid
filename
mimeType
size
imageComponents { uuid dominantColor width height }
videoComponents { uuid source }
audioComponents { uuid source }
locations { uuid path libraryUuid mimeType }
}
}
List all assets with a minimal field selection:
query ListAssets {
assets {
uuid
filename
mimeType
size
}
}
See Also
-
REST API Reference — the primary external API with full CRUD.
-
Java Client — typed JVM HTTP client.
-
Authentication — obtaining a bearer token.