Skip to content

Python SDK - fxqclient

fxqclient is the object-oriented Python client over the public HTTP API. It is the recommended way to script against fxquinox.

from fxqclient import Session

fxq = Session("http://localhost:8000", api_key="...")
shot = fxq.entity("Shot").get("shot-id")

Session

The connection and entry point. Session.entity(type) returns an EntityManager for creating and querying records.

session

Classes:

Name Description
EntityManager
Session

Classes

EntityManager

EntityManager(session: Session, entity_type: str)

Methods:

Name Description
create
get
filter
filter_raw
all
Methods:
create
create(status: str | None = None, *, project_id: str | None = None, **data) -> Entity
get
get(record_id: str) -> Entity | None
filter
filter(**kwargs) -> QuerySet
filter_raw
filter_raw(dsl: list) -> QuerySet
all
all() -> list[Entity]

Session

Session(base_url: str | None = None, *, api_key: str | None = None, client: Client | None = None)

Methods:

Name Description
entity
publish
lineage
dependencies

The enriched upstream dependency tree for a version (VAL-51).

request_sync

Queue a multi-site transfer of a representation (VAL-54).

sync_jobs

List SiteSync transfer jobs (filter by status).

process_sync_queue

Process every queued transfer job once; returns completed count.

submit_farm_job

Submit a render-farm job; returns the tracked FarmJob (VAL-47).

farm_jobs

List tracked farm jobs (filter by task_id / version_id / status).

update_farm_job

Update a farm job's status/progress (farm callback).

browse_loadable

List loadable published products for a context (VAL-45 loader).

scene_inventory

Resolve a DCC scene's loaded versions: outdated flags + update

resolve_path

Resolve a project anatomy template for an entity → path (VAL-43).

Methods:
entity
entity(entity_type: str) -> EntityManager
publish
publish(**kwargs) -> dict
lineage
lineage(version_id: str) -> dict
dependencies
dependencies(version_id: str) -> dict

The enriched upstream dependency tree for a version (VAL-51).

request_sync
request_sync(representation_id: str, target_site_id: str, **kw) -> dict

Queue a multi-site transfer of a representation (VAL-54).

sync_jobs
sync_jobs(**filters) -> list[dict]

List SiteSync transfer jobs (filter by status).

process_sync_queue
process_sync_queue() -> int

Process every queued transfer job once; returns completed count.

submit_farm_job
submit_farm_job(**job) -> dict

Submit a render-farm job; returns the tracked FarmJob (VAL-47).

farm_jobs
farm_jobs(**filters) -> list[dict]

List tracked farm jobs (filter by task_id / version_id / status).

update_farm_job
update_farm_job(job_id: str, **changes) -> dict

Update a farm job's status/progress (farm callback).

browse_loadable
browse_loadable(**filters) -> list[dict]

List loadable published products for a context (VAL-45 loader).

Filters: project_id, product_type, entity_type + entity_id (container), status, latest_only. Each item has the product, its version, and representations with resolved paths.

scene_inventory
scene_inventory(version_ids: list[str]) -> list[dict]

Resolve a DCC scene's loaded versions: outdated flags + update targets (VAL-44). Pass the version ids loaded in the scene; get back one item each with current / latest / outdated.

resolve_path
resolve_path(*, template_key: str, entity_type: str, entity_id: str, extra: dict | None = None, site_id: str | None = None, platform: str | None = None, root_name: str = 'work') -> str

Resolve a project anatomy template for an entity → path (VAL-43).

Entity

entity

Classes:

Name Description
Entity

Thin wrapper over a record dict with attribute access.

Classes

Entity

Entity(session: Session, payload: dict)

Thin wrapper over a record dict with attribute access.

Methods:

Name Description
update
delete

Attributes:

Name Type Description
id str
entity_type str
status str | None
data dict
Attributes
id property
id: str
entity_type property
entity_type: str
status property
status: str | None
data property
data: dict
Methods:
update
update(data: dict | None = None, status: str | None = None) -> Entity
delete
delete() -> None

Queries

query

Classes:

Name Description
QuerySet

Functions:

Name Description
compile_kwargs

Classes

QuerySet

QuerySet(session, entity_type: str)

Methods:

Name Description
filter
filter_raw
order_by
fields
limit
all
first
one
Methods:
filter
filter(**kwargs)
filter_raw
filter_raw(dsl: list)
order_by
order_by(*fields: str)
fields
fields(*names: str)
limit
limit(n: int)
all
all()
first
first()
one
one()

Functions:

compile_kwargs

compile_kwargs(kwargs: dict) -> list | None