You can use the Dissemination API to find packages in the archive, read their metadata, and download their files. You can retrieve one package by its ID, browse the file plan, or search, either with a search configuration or with your own criteria.
Most calls return package objects with only the basics at first: the ID, the type, the title, the state, and the last QA decision, if there is one. To get more, such as the metadata or the files, you ask for enrichers.
Every call needs the headers in Common headers, and errors use the shape described in Errors. Some calls don't need a specific role. Every user who can call the API can use them, and you only see what your access to the packages allows. For where roles come from, see Authentication.
Ask for more information with enrichers
Send the enrichers that you want in the enrichers header, separated by commas and with no spaces, for example enrichers: metadata,representations.
|
Enricher |
What it adds |
Where you can use it |
|---|---|---|
|
|
|
Retrieve, file plan, search |
|
|
|
Retrieve, file plan, search |
|
|
|
Retrieve, search |
|
|
|
Retrieve, file plan, search |
|
|
|
Retrieve, file plan, search |
|
|
|
Retrieve, file plan, search |
|
|
|
Retrieve, file plan, search |
|
|
|
Search, export |
Retrieve a package
You can retrieve one package, with the information that you ask for with enrichers.
GET /v2/aip/{packageId}
Required role: Any role. You need read access to the package.
|
Name |
In |
Type |
Required |
Description |
|---|---|---|---|---|
|
|
path |
string |
Yes |
The ID of the package. |
|
|
header |
string |
No |
Comma-separated list of enrichers: |
curl "https://archive.example.com/v2/aip/INV-2026-0042" \
-H "Authorization: Bearer $TOKEN" \
-H "tenant: example-tenant" \
-H "enrichers: metadata,representations,retentionstatus"
Response: 200 OK with an AIP object.
{
"packageId": "INV-2026-0042",
"packageType": "AIP",
"title": "Invoice 2026-0042",
"state": "approved",
"metadata": [
{
"schema": "dublincore",
"fields": {
"title": "Invoice 2026-0042",
"creator": "Finance department"
}
}
],
"representations": [
{
"id": "invoice-2026-0042.pdf",
"data": [
{
"name": "invoice-2026-0042.pdf",
"format": "application/pdf",
"url": "https://archive.example.com/v2/content/q8Zr2kT0bWv1yXcN4mP7sA",
"size": 48213
}
]
}
],
"retentionStatus": {
"trashed": false,
"underLegalHold": false,
"retentionRuleApplied": true,
"retentionRuleIds": ["5b1e7c2a-0d3f-4a8e-b6c9-2f7a1d0e9b44"],
"retentionRuleNames": ["Invoices: 7 years"],
"retainUntil": "2033-10-05T00:00:00.000Z",
"inDeletionList": false
}
}
-
403 DOCUMENT_ACCESS_DENIED: you don't have read access to this package. -
404 RESOURCE_NOT_FOUND: there's no package with this ID.
How a download works
You download a file through a link that the archive gives you in the package's details:
-
Retrieve the package with
GET /v2/aip/{packageId}and the headerenrichers: representations. -
In
representations, find the file in a representation'sdatalist. Itsurlis the download link. -
Call
GETon thaturl, with the sameAuthorizationandtenantheaders as any other call.
Download a file
You can download the file behind a download link. By default, a link is valid for 24 hours.
GET /v2/content/{token}
GET /v2/content/{token}/stream
Both calls give you the same file. The /stream variant handles many downloads at the same time better, so use it for large files or for many parallel downloads.
Required role: Any role. You need read access to the package.
|
Name |
In |
Type |
Required |
Description |
|---|---|---|---|---|
|
|
path |
string |
Yes |
The token at the end of the download link. |
|
|
header |
string |
No |
A byte range, for example |
Response: 200 OK with the file and its Content-Type. If the content store sends them, you also get Content-Length and a Content-Disposition with the file name.
With a Range header, you get 206 Partial Content and a Content-Range header instead.
curl "https://archive.example.com/v2/content/q8Zr2kT0bWv1yXcN4mP7sA" \
-H "Authorization: Bearer $TOKEN" \
-H "tenant: example-tenant" \
-H "Range: bytes=0-1048575" \
-o invoice-2026-0042.part
Both calls give these errors:
-
404 CONTENT_NOT_FOUND: the token isn't valid. -
410 CONTENT_LINK_EXPIRED: the link is past its validity. Retrieve the package again to get a new link.
GET /v2/content/{token} also gives these errors:
-
404 CONTENT_NOT_FOUND: the file doesn't exist. -
403 PERMISSION_DENIED: you don't have read access to the package. -
416 RANGE_NOT_SATISFIABLE: the range is outside the file.
With /stream, a missing file or a range outside the file returns a plain 404 or 416, without the CONTENT_NOT_FOUND or RANGE_NOT_SATISFIABLE reason.
Browse the file plan
The file plan is the hierarchy that the archive arranges packages in. It starts with the root packages, and each package can have sub-packages.
List the root packages
GET /v2/fileplan
Required role: Any role.
|
Name |
In |
Type |
Required |
Description |
|---|---|---|---|---|
|
|
query |
integer |
No |
The page number, starting at 0. Default: 0. |
|
|
query |
integer |
No |
The number of packages per page. Default: 100. |
|
|
header |
string |
No |
Comma-separated list of enrichers. |
Response: 200 OK with an AIPList object.
List the sub-packages of a package
GET /v2/fileplan/{packageId}
Required role: Any role.
|
Name |
In |
Type |
Required |
Description |
|---|---|---|---|---|
|
|
path |
string |
Yes |
The ID of the package whose sub-packages you want. |
|
|
query |
integer |
No |
The page number, starting at 0. Default: 0. |
|
|
query |
integer |
No |
The number of packages per page. Default: 100. |
|
|
header |
string |
No |
Comma-separated list of enrichers. |
Response: 200 OK with an AIPList object. If the package has no sub-packages, items is empty.
Tip: To see where a package sits in the file plan, retrieve it with the breadcrumb enricher.
Search with a search configuration
A search configuration is a ready-made search for your organization's packages. It decides which filters you can use and which columns each result has. You first list the search configurations, and then run a search with one of them.
List search configurations
GET /v2/search
Required role: Any role.
Response: 200 OK with an array of SearchConfig objects. Each one lists its filters and its columns.
Run a search
GET /v2/search/{searchConfig}
Required role: Any role.
|
Name |
In |
Type |
Required |
Description |
|---|---|---|---|---|
|
|
path |
string |
Yes |
The |
|
|
query |
string |
No |
A filter value. See Filter the results. |
|
|
query |
integer |
No |
The page number, starting at 0. Default: 0. |
|
|
query |
integer |
No |
The number of packages per page. Default: 100. |
|
|
query |
string |
No |
The |
|
|
query |
string |
No |
|
|
|
header |
string |
No |
Comma-separated list of enrichers. Add |
curl "https://archive.example.com/v2/search/invoices?filter.dc_title=2026&filter.dc_created_min=2026-01-01T00:00:00Z&sortBy=dc:created&sortOrder=desc&pageSize=25" \
-H "Authorization: Bearer $TOKEN" \
-H "tenant: example-tenant" \
-H "enrichers: searchcolumns"
Response: 200 OK with an AIPSearchResult object. If the search configuration has aggregate filters, aggregateBuckets gives the values that you can filter on, with the number of packages for each.
-
400 UNKNOWN_QUERY_FIELD: a filter name isn't in the search configuration. -
400 INVALID_DATE: a date filter has a value that isn't a valid date. -
404 SEARCH_CONFIG_NOT_FOUND: there's no search configuration with this name that you can use.
Filter the results
You add a filter as a query parameter, for example filter.dc_title=invoice. The name after filter. comes from the search configuration. Each filter in the search configuration has an operator that decides which name you use:
-
Most operators: use
filterName. -
BETWEEN: usefilterMinNamefor the lower bound andfilterMaxNamefor the upper bound, for examplefilter.dc_created_min=2026-01-01T00:00:00Zandfilter.dc_created_max=2026-12-31T23:59:59Z. -
AGGREGATE: usefilterName, with one of the values fromaggregateBuckets. To pick several values, send a JSON array, URL-encoded. For example,["invoice","credit note"]becomesfilter.dc_nature_agg=%5B%22invoice%22,%22credit%20note%22%5D.
When you send several filters, a package must match all of them.
The filter's dataType decides the format of the value:
-
date: a date in ISO 8601 format, for example2026-10-05. -
datetime: a date and time in ISO 8601 format, for example2026-10-05T09:00:00+02:00. Without an offset, the archive uses its own time zone.
Query string values must be URL-encoded. For example, write the + of an offset as %2B. Otherwise it arrives as a space, and you get 400 INVALID_DATE.
Export search results as CSV
You can run the same search and get the results as a CSV file, with one column for each column of the search configuration.
GET /v2/search/{searchConfig}/export
Required role: Any role.
The parameters are the same as for Run a search, without page and pageSize. Send the header enrichers: searchcolumns to fill the rows. Without it, the file holds only the row with the column labels.
Response: 200 OK with the CSV file (text/csv). The first row holds the column labels.
-
400 UNKNOWN_QUERY_FIELD: a filter name isn't in the search configuration. -
404 SEARCH_CONFIG_NOT_FOUND: there's no search configuration with this name that you can use.
Search with your own criteria
When a search configuration doesn't fit, you can build your own query: a tree of rules on package fields, combined with AND and OR. Two calls work together:
-
Call
GET /v2/query-fieldsto see which fields you can use, and which operators each field takes. -
Send your criteria to
POST /v2/search/aip.
List the fields that you can query
GET /v2/query-fields
Required role: archive-view
Response: 200 OK with a QueryFieldList. The list holds the columns and filters of the search configurations that you can use, and these fields that every package has:
|
Field |
Label |
Data type |
|---|---|---|
|
|
Package ID |
|
|
|
Profile |
|
|
|
Partition ID |
|
|
|
METS file name |
|
|
|
METS file size |
|
|
|
METS digest |
|
|
|
Title |
|
|
|
Created |
|
|
|
Modified |
|
|
|
Document ID |
|
|
|
Path |
|
|
|
Lifecycle state |
|
{
"items": [
{
"field": "dc:created",
"label": "Created",
"dataType": "datetime",
"operators": ["EQ", "GT", "GTEQ", "LT", "LTEQ", "BETWEEN", "IN_LAST", "OLDER_THAN", "IS_NULL", "IS_NOT_NULL"],
"sources": []
},
{
"field": "inv:supplier",
"label": "Supplier",
"dataType": "string",
"operators": ["EQ", "NEQ", "ILIKE", "IN", "NOT_IN", "IS_NULL", "IS_NOT_NULL"],
"sources": ["invoices"]
}
]
}
You can also query the files, the preservation actions, the signatures, and the submissions of a package. These fields aren't in the list. A rule on one of them matches when any entry matches. To find packages where no entry matches, use HAS_NONE_OF on the text fields. NEQ and NOT_IN aren't available on them.
Files
|
Field |
What it is |
Data type |
|---|---|---|
|
|
Format PUID of a file |
|
|
|
Format name of a file |
|
|
|
Format version of a file |
|
|
|
Whether a file's extension doesn't match its format |
|
|
|
MIME type of a file |
|
|
|
Size of a file |
|
|
|
Digest of a file |
|
|
|
Name of a file |
|
Preservation actions
|
Field |
What it is |
Data type |
|---|---|---|
|
|
The result of a preservation action. See Rules on preservation results. |
|
|
|
When a preservation action ran |
|
Signatures
|
Field |
What it is |
Data type |
|---|---|---|
|
|
Signature qualification |
|
|
|
Signature indication |
|
|
|
Signature time |
|
|
|
Signer name |
|
|
|
Signer organization |
|
|
|
Signer email |
|
Submissions
|
Field |
What it is |
Data type |
|---|---|---|
|
|
Submitter |
|
|
|
Submission date |
|
|
|
Removal date |
|
Run a criteria search
You can find the packages that match your criteria, a page at a time.
POST /v2/search/aip
Required role: archive-content-manager
Body: an AipCriteriaSearchRequest.
|
Name |
Type |
Required |
Description |
|---|---|---|---|
|
|
No |
The rules. If you leave it out, you get the packages that you can read that aren't in the trash. |
|
|
|
array of SortSpec |
No |
The fields to sort on, in order. Each field must be a field that you can query. |
|
|
integer |
No |
The page number, starting at 0. Default: 0. |
|
|
integer |
No |
The number of packages per page. Default: 50. |
Each rule in criteria.rules is either a condition or a nested group:
-
A condition has a
field, anoperator, and, for most operators, a value. -
A group has a
groupwith its owncombinatorandrules. Setnegatetotrueto match the packages that don't match the group.
What you send as the value depends on the operator. The operators for pluginResult are in Rules on preservation results.
|
Operators |
What you send |
|---|---|
|
|
|
|
|
|
|
|
No value. |
|
All other operators |
|
Some values need a specific format:
-
ILIKE: finds the text anywhere in the field, in any case. If your value has%or_, the archive uses it as a pattern instead. -
IN_LASTandOLDER_THAN: a period in ISO 8601 format with one unit: days, weeks, months, or years, for exampleP7D,P2W,P3M, orP2Y. The archive counts back from the moment that the search runs. -
Dates:
datefields take a date, such as2026-10-05.datetimefields take a date and time, with or without an offset, or a date alone for the start of that day. -
Booleans:
trueorfalse.
A criteria tree can have up to 100 rules in total, and groups can go up to five levels deep.
Here's a search for invoices from the last 30 days that are PDF files or that had a failed preservation action, newest first:
{
"criteria": {
"combinator": "AND",
"rules": [
{ "field": "aip:profile", "operator": "EQ", "value": "urn:example:profile:invoices" },
{ "field": "dc:created", "operator": "IN_LAST", "value": "P30D" },
{
"group": {
"combinator": "OR",
"rules": [
{
"field": "aip:representations/*/data/*/content/mime-type",
"operator": "EQ",
"value": "application/pdf"
},
{ "field": "pluginResult", "plugin": "*", "operator": "EQ", "value": "FAILURE" }
]
}
}
]
},
"sort": [{ "field": "dc:created", "direction": "DESC" }],
"page": 0,
"pageSize": 50
}
Response: 200 OK with an AipCriteriaSearchResult. Each item also gives the values of the fields in your rules, in fields, so that you can show them as columns.
{
"totalResults": 2,
"page": 0,
"pageSize": 50,
"items": [
{
"packageId": "INV-2026-0042",
"title": "Invoice 2026-0042",
"type": "AIP",
"created": "2026-10-05T09:14:10.000Z",
"fields": {
"aip:profile": "urn:example:profile:invoices",
"aip:representations/*/data/*/content/mime-type": "application/pdf"
}
},
{
"packageId": "INV-2026-0039",
"title": "Invoice 2026-0039",
"type": "AIP",
"created": "2026-09-28T15:02:51.000Z",
"fields": {
"aip:profile": "urn:example:profile:invoices",
"aip:representations/*/data/*/content/mime-type": "image/tiff"
}
}
]
}
-
400 UNKNOWN_QUERY_FIELD: a field or a sort field isn't one that you can query. -
400 OPERATOR_NOT_ALLOWED: the field doesn't take this operator. -
400 REQUIRED_FIELD: a group has nocombinatoror no rules, or a condition has nofield,operator, or value. -
400 INVALID_QUERY_CRITERIA: the tree isn't valid. For example, a rule has both a condition and a group, there are too many rules, or groups are nested too deep. Other causes are a custom field path that isn't well formed, aBETWEENwithout two values, andIN,NOT_IN, orHAS_NONE_OFwithoutvalues. -
400 INVALID_VALUE,INVALID_DATE, orINVALID_FORMAT: a value doesn't fit the field's data type, or a period isn't valid.
Rules on preservation results
The pluginResult field matches the result of one preservation action on a package. Two rule fields go with it:
-
plugin: the name of the action, or*for any action. -
The value:
SUCCESS,WARNING, orFAILURE.
It takes these operators:
-
EQwith onevalue, orINwithvalues: the action has this result. -
NEVER_WASwithvalues: the action never had any of these results. -
NEVER_RAN: the action never ran on the package. This one needs a real action name, not*.
Rules on other fields
If you need another field, set custom to true on the rule and write the field path yourself, for example inv:costCenter. The path must look like prefix:name, with optional /segment parts, or you get 400 INVALID_QUERY_CRITERIA.
The archive treats a custom field as text. It takes these operators:
EQ, NEQ, ILIKE, STARTSWITH, IN, NOT_IN, HAS_NONE_OF, IS_NULL, and IS_NOT_NULL.
Save search filters
You can save a set of filter values for a search configuration, and use it again later. Saved filters are personal: you only see your own.
List your saved filters
GET /v2/search/saved
Required role: Any role.
Response: 200 OK with an array of SavedFilter objects, newest first.
Save a filter
POST /v2/search/saved
Required role: Any role.
Body: a SavedFilterInput.
{
"name": "Invoices from 2026",
"searchConfig": "invoices",
"filters": {
"dc_title": "2026",
"dc_created_min": "2026-01-01T00:00:00Z"
}
}
Response: 200 OK with the SavedFilter, with its id.
Update a saved filter
You can replace the name, the search configuration, and the filter values of a saved filter. If you leave out filters, the filter values stay as they are.
PUT /v2/search/saved/{filterId}
Required role: Any role.
|
Name |
In |
Type |
Required |
Description |
|---|---|---|---|---|
|
|
path |
string |
Yes |
The |
Body: a SavedFilterInput.
Response: 200 OK with the updated SavedFilter.
-
404 RESOURCE_NOT_FOUND: there's no saved filter with this ID.
Delete a saved filter
DELETE /v2/search/saved/{filterId}
Required role: Any role.
|
Name |
In |
Type |
Required |
Description |
|---|---|---|---|---|
|
|
path |
string |
Yes |
The |
Response: 204 No Content.
-
404 RESOURCE_NOT_FOUND: there's no saved filter with this ID.
Schemas
AIP
A package in the archive.
|
Field |
Type |
Description |
|---|---|---|
|
|
string |
The ID of the package. |
|
|
string |
Always |
|
|
string |
The title of the package. |
|
|
string |
Where the package is in its lifecycle. See Lifecycle states. |
|
|
The last QA decision on the package. Missing until a reviewer decides. |
|
|
|
array of MetadataSection |
The descriptive metadata. Only with the |
|
|
array of Representation |
The representations and their files. Only with the |
|
|
array of Breadcrumb |
The path through the file plan. Only with the |
|
|
object |
The search configuration's column values, keyed by the column's |
|
|
Whether the package is in the trash, under a legal hold, under a retention rule, or on a deletion list. Only with the |
|
|
|
The integrity evidence. Only with the |
|
|
|
array of PluginReport |
The results of the preservation actions. Only with the |
|
|
array of string |
Your permissions on the package. Only with the |
Lifecycle states
The state of a package is one of the following:
-
ingesting: the archive is ingesting the package. -
pending_qa: the package waits for a QA reviewer. -
approved: the package passed ingest, and QA if the package needs it. -
rejected: a QA reviewer rejected the package. -
failed: the ingest failed. -
obsolete: the package is marked as obsolete. -
deleted: the package is deleted. -
legacy_approved: the package was archived before packages had a lifecycle. Treat it likeapproved.
QaDecision
|
Field |
Type |
Description |
|---|---|---|
|
|
string |
The user name of the reviewer who approved or rejected the package. |
|
|
date-time |
When the reviewer decided. |
|
|
string |
Why the reviewer rejected the package. Only for a rejection. |
MetadataSection
|
Field |
Type |
Description |
|---|---|---|
|
|
string |
The name of the metadata schema, for example |
|
|
object |
The metadata, as field names and values. |
Representation
|
Field |
Type |
Description |
|---|---|---|
|
|
string |
The ID of the representation. |
|
|
string |
The type of the representation. |
|
|
array of RepresentationFile |
The files of the representation. |
RepresentationFile
|
Field |
Type |
Description |
|---|---|---|
|
|
string |
The name of the file. |
|
|
string |
The MIME type of the file. |
|
|
string |
The link to download the file. |
|
|
integer |
The size of the file in bytes. Missing when the archive doesn't know the size. |
Breadcrumb
|
Field |
Type |
Description |
|---|---|---|
|
|
string |
The title of a package on the path. |
|
|
string |
The ID of that package. |
RetentionStatus
|
Field |
Type |
Description |
|---|---|---|
|
|
boolean |
Whether the package is in the trash. |
|
|
boolean |
Whether the package is under a legal hold. |
|
|
boolean |
Whether a retention rule applies to the package. |
|
|
array of string |
The IDs of the retention rules, when |
|
|
array of string |
The names of the retention rules, when |
|
|
date-time |
The date until which the archive keeps the package, when it's under retention. |
|
|
boolean |
Whether the package is on a deletion list. |
|
|
string |
The ID of the deletion list, when |
AipEvidence
The integrity evidence of a package. Which fields you get depends on the evidence that the package has. For the shape of the whole object, see Evidence example.
|
Field |
Type |
Description |
|---|---|---|
|
|
boolean |
Whether the package's RFC 4998 evidence record validates. Missing when the package has no such record. |
|
|
string |
Why the evidence record doesn't validate, when |
|
|
array of objects |
The archive timestamp chains of the RFC 4998 evidence record. Each has a |
|
|
object |
The Merkle proof tree of the package's files. It has a |
Evidence example
{
"valid": true,
"timestampChains": [
{
"timestamps": [
{
"genTime": "2026-10-05T09:20:00Z",
"expiryTime": "2036-10-05T09:20:00Z",
"issuer": "Example Timestamp Authority"
}
]
}
],
"tree": {
"partitionId": "2026-10",
"submissions": [
{
"timestamp": "2026-10-05T09:15:00Z",
"entries": {
"invoice-2026-0042.pdf": {
"hash": "3a7bd3e2360a3d29eea436fcfb7e44c735d117c42d1c1835420b6b9942dd4f1b",
"index": 0,
"proof": [
{ "sibling": "n4bQgYhMfWWaL+qgxVrQFaO/TxsrC4Is0V1sFbDwCgg=", "position": "right" }
]
}
}
}
]
}
}
AIPList
|
Field |
Type |
Description |
|---|---|---|
|
|
number |
The number of packages that match, on all pages. |
|
|
number |
The page number, starting at 0. |
|
|
number |
The number of packages per page. |
|
|
array of AIP |
The packages on this page. |
AIPSearchResult
An AIPList with one more field:
|
Field |
Type |
Description |
|---|---|---|
|
|
array of AggregateBucket |
One entry for each aggregate filter. |
AggregateBucket
|
Field |
Type |
Description |
|---|---|---|
|
|
string |
The name of the aggregate filter. |
|
|
array of objects |
The values that you can filter on. Each has a |
SearchConfig
|
Field |
Type |
Description |
|---|---|---|
|
|
string |
The name of the search configuration. Use it in the search path. |
|
|
array of SearchColumn |
The columns of each result. |
|
|
array of SearchFilter |
The filters that you can use. |
|
|
array of LinkedSearch |
Other search configurations that a result links to. |
|
|
array of string |
The roles that can use the search configuration. Empty when everyone can. |
|
|
boolean |
Whether the search configuration is marked as hidden. |
|
|
integer |
The page size that the search configuration is set up with. |
|
|
integer |
The offset that the search configuration is set up with. |
|
|
string |
The condition that the search configuration always applies. |
LinkedSearch
|
Field |
Type |
Description |
|---|---|---|
|
|
string |
The name of the other search configuration. |
|
|
array of objects |
Each has a |
SearchFilter
|
Field |
Type |
Description |
|---|---|---|
|
|
string |
The name to use in |
|
|
string |
For |
|
|
string |
For |
|
|
string |
The label of the filter. |
|
|
string |
|
|
|
string |
|
|
|
array of string |
For a range aggregate: the keys of the ranges. |
|
|
array of string |
The package fields that the filter searches. |
|
|
string |
The search index field for a filter on several fields. |
SearchColumn
|
Field |
Type |
Description |
|---|---|---|
|
|
string |
The package field of the column. It's also the key in |
|
|
string |
The label of the column. |
|
|
string |
|
|
|
boolean |
Whether you can sort on the column. |
|
|
boolean |
Whether the column is hidden. |
|
|
boolean |
Whether the column shows by default. |
|
|
array of string |
Other fields that the archive reads, in order, when the package has no value in |
SavedFilter
|
Field |
Type |
Description |
|---|---|---|
|
|
string |
The ID of the saved filter. |
|
|
string |
The name of the saved filter. |
|
|
string |
The name of the search configuration. |
|
|
object |
The filter names and their values. |
|
|
date-time |
When the filter was saved. |
SavedFilterInput
|
Field |
Type |
Description |
|---|---|---|
|
|
string |
Required. The name of the saved filter. |
|
|
string |
Required. The name of the search configuration. |
|
|
object |
The filter names and their values, as strings. |
QueryFieldList
|
Field |
Type |
Description |
|---|---|---|
|
|
array of QueryField |
The fields that you can query. |
QueryField
|
Field |
Type |
Description |
|---|---|---|
|
|
string |
The field path to use in a rule. |
|
|
string |
The label of the field. |
|
|
string |
|
|
|
array of string |
The operators that the field takes. |
|
|
array of string |
The search configurations that have this field. Empty for the fields that every package has. |
AipCriteriaSearchRequest
The body of Run a criteria search.
QueryCriteria
|
Field |
Type |
Description |
|---|---|---|
|
|
string |
Required. |
|
|
boolean |
Set to |
|
|
array of QueryRule |
Required. At least one rule. |
QueryRule
Has either field and operator, or group.
|
Field |
Type |
Description |
|---|---|---|
|
|
string |
The field path. |
|
|
string |
|
|
|
string |
The value, for operators that take one value. |
|
|
array of string |
The values, for |
|
|
A nested group. |
|
|
|
string |
For |
|
|
boolean |
Set to |
SortSpec
|
Field |
Type |
Description |
|---|---|---|
|
|
string |
Required. The field to sort on. |
|
|
string |
|
AipCriteriaSearchResult
|
Field |
Type |
Description |
|---|---|---|
|
|
integer |
The number of packages that match, on all pages. |
|
|
integer |
The page number, starting at 0. |
|
|
integer |
The number of packages per page. |
|
|
array of AipSearchItem |
The packages on this page. |
AipSearchItem
|
Field |
Type |
Description |
|---|---|---|
|
|
string |
The ID of the package. |
|
|
string |
The title of the package. |
|
|
string |
The type of the package. |
|
|
date-time |
When the package was created. |
|
|
object |
The values of the fields in your rules, as text, keyed by field path. The package ID, title, type, and creation date aren't repeated here, and empty values are left out. |