Containerized extractor service#
The Containerized Extractor service provides functionality for creating, updating, and archiving containerized extractors.
OpenAPI file: ContainerizedExtractorService.json
Endpoints#
Register containerized extractor#
POST /extractors/v1/container
Registers a containerized extractor for a given set of containerized files.
Body
namestring required
descriptionstring
imageDockerImageSourcedeprecatedDeprecated: use containerImageRid instead for self-hosted images. Container image for the extractor. Used for external registries. Ignored when containerImageRid is set. Deprecated: Use containerImageRid for self-hosted images.
Fields of
DockerImageSourceregistrystring requiredThe container registry where the image is hosted.
repositorystring requiredThe repository name of the image.
tagDetailsTagDetailsrequired
Fields of
TagDetailstagsarray of string
defaultTagstring required
authenticationAuthenticationrequiredOptional authentication for accessing private container registries.
Set
typeto"userAndPassword".userAndPasswordUserAndPasswordAuthentication
Fields of
UserAndPasswordAuthenticationusernamestring requiredUsername for registry authentication.
passwordSecretRidstring (RID) requiredThe RID of the secret containing the password for registry authentication.
Set
typeto"public".publicPublicAuthentication
commandstring
containerImageRidstring (RID)RID of a self-hosted container image. When set, the extractor uses the internal registry and the image field is ignored.
inputsarray ofFileExtractionInputpayload must match input defined in containerized extraction
Fields of
FileExtractionInputenvironmentVariablestring requiredThe environment variable that stores the path to the input file.
namestring requiredName of the input file which users will be prompted with
descriptionstringDescription of the input file which users will be prompted with
fileFiltersarray ofFileFilterOptionally filter files for file selection
Set
typeto"suffix".suffixstring
requiredbooleanWhether the input file is required for the extractor to run.
parametersarray ofFileExtractionParameterDescribes the parameters of the extractor.
Fields of
FileExtractionParameterenvironmentVariablestring requiredThe environment variable that stores the argument
namestring requiredName of the parameter which users will be prompted with
descriptionstringDescription of the parameter which users will be prompted with
requiredbooleanWhether the parameter is required for the extractor to run.
propertiesmap ofPropertyNameto string
labelsarray of string
workspacestring (RID) requiredThe workspace in which to create the extractor
timestampMetadataTimestampMetadataMetadata about the intermediate parquet this extractor will produce. If not set, timestamp metadata must be provided at ingest time.
Fields of
TimestampMetadataseriesNamestring required
timestampTypeTimestampTyperequired
Set
typeto"relative".relativeRelativeTimestamp
Fields of
RelativeTimestamptimeUnitTimeUnitrequired
Values of
TimeUnitDAYS
HOURS
MINUTES
SECONDS
MILLISECONDS
MICROSECONDS
NANOSECONDS
offsetstring (date-time)Starting timestamp to use when indexing the file. This field is required when uploading a new file to an existing dataset.
Set
typeto"absolute".absoluteAbsoluteTimestamp
Set
typeto"iso8601".iso8601Iso8601Timestamp
Set
typeto"epochOfTimeUnit".epochOfTimeUnitEpochTimestamp
Fields of
EpochTimestamptimeUnitTimeUnitrequired
Set
typeto"customFormat".customFormatCustomTimestamp
Fields of
CustomTimestampformatstring requiredThe format string should be in the format of the
DateTimeFormatterclass in Java.defaultYearintegerDefault year is accepted as an optional field for cases like IRIG time format and will be overridden by year in time format.
defaultDayOfYearintegerDefault day of year is accepted as an optional field for cases like IRIG time format and will be overridden by day of year in time format.
outputFileFormatFileOutputFormatThe format of the output file. Currently only “parquet”, “csv”, “parquet.tar” are supported
Values of
FileOutputFormatPARQUET
CSV
PARQUET_TAR
AVRO_STREAM
JSON_L
MANIFEST
Response
extractorRidstring (RID)
Request
curl -X POST "https://api.gov.nominal.io/api/extractors/v1/container" \
-H "Authorization: Bearer <api key>" \
-H "Content-Type: application/json" \
--data '{
"name": "<name>",
"workspace": "<workspace rid>"
}'
import requests
response = requests.post(
"https://api.gov.nominal.io/api/extractors/v1/container",
headers={"Authorization": "Bearer <api key>"},
json={"name": "<name>", "workspace": "<workspace rid>"},
)
response.raise_for_status()
print(response.json())
import httpx
response = httpx.post(
"https://api.gov.nominal.io/api/extractors/v1/container",
headers={"Authorization": "Bearer <api key>"},
json={"name": "<name>", "workspace": "<workspace rid>"},
)
response.raise_for_status()
print(response.json())
import asyncio
import aiohttp
async def main() -> None:
async with aiohttp.ClientSession() as session:
async with session.post(
"https://api.gov.nominal.io/api/extractors/v1/container",
headers={"Authorization": "Bearer <api key>"},
json={"name": "<name>", "workspace": "<workspace rid>"},
) as response:
response.raise_for_status()
print(await response.json())
asyncio.run(main())
Response: 200
{
"extractorRid": "<containerized extractor rid>"
}
Get containerized extractor#
GET /extractors/v1/container/{extractorRid}
Get a containerized extractor by its RID.
Path parameters
extractorRidstring (RID) required
Response
ridstring (RID)Unique resource identifier for the extractor.
namestringThe name of the extractor as defined by the user.
descriptionstringOptional description of the extractor.
imageDockerImageSourcedeprecatedDeprecated: use containerImageRid instead for self-hosted images. Container image used to run the extractor via an external registry. When containerImageRid is set, this field contains placeholder values and should be ignored. Deprecated: Use containerImageRid for self-hosted images.
Fields of
DockerImageSourceregistrystringThe container registry where the image is hosted.
repositorystringThe repository name of the image.
tagDetailsTagDetails
Fields of
TagDetailstagsarray of string
defaultTagstring
authenticationAuthenticationOptional authentication for accessing private container registries.
Set
typeto"userAndPassword".userAndPasswordUserAndPasswordAuthentication
Fields of
UserAndPasswordAuthenticationusernamestringUsername for registry authentication.
passwordSecretRidstring (RID)The RID of the secret containing the password for registry authentication.
Set
typeto"public".publicPublicAuthentication
commandstring
containerImageRidstring (RID)RID of a self-hosted container image in the internal registry. When set, the extractor uses the internal registry; when absent, the legacy image field is used.
inputsarray ofFileExtractionInputThe input files that this extractor requires, mapped to environment variables that store the path to the file.
Fields of
FileExtractionInputenvironmentVariablestringThe environment variable that stores the path to the input file.
namestringName of the input file which users will be prompted with
descriptionstringDescription of the input file which users will be prompted with
fileFiltersarray ofFileFilterOptionally filter files for file selection
Set
typeto"suffix".suffixstring
requiredbooleanWhether the input file is required for the extractor to run.
parametersarray ofFileExtractionParameterDescribes the parameters of the extractor.
Fields of
FileExtractionParameterenvironmentVariablestringThe environment variable that stores the argument
namestringName of the parameter which users will be prompted with
descriptionstringDescription of the parameter which users will be prompted with
requiredbooleanWhether the parameter is required for the extractor to run.
propertiesmap ofPropertyNameto stringAdditional properties associated with this extractor.
labelsarray of stringSet of labels applied to this extractor.
createdAtstring (date-time)Timestamp when this extractor was created.
isArchivedbooleanWhether this extractor is archived.
timestampMetadataTimestampMetadataMetadata about the intermediate parquet this extractor will produce. If not set, timestamp metadata must be provided at ingest time.
Fields of
TimestampMetadataseriesNamestring
timestampTypeTimestampType
Set
typeto"relative".relativeRelativeTimestamp
Fields of
RelativeTimestamptimeUnitTimeUnit
Values of
TimeUnitDAYS
HOURS
MINUTES
SECONDS
MILLISECONDS
MICROSECONDS
NANOSECONDS
offsetstring (date-time)Starting timestamp to use when indexing the file. This field is required when uploading a new file to an existing dataset.
Set
typeto"absolute".absoluteAbsoluteTimestamp
Set
typeto"iso8601".iso8601Iso8601Timestamp
Set
typeto"epochOfTimeUnit".epochOfTimeUnitEpochTimestamp
Fields of
EpochTimestamptimeUnitTimeUnit
Set
typeto"customFormat".customFormatCustomTimestamp
Fields of
CustomTimestampformatstringThe format string should be in the format of the
DateTimeFormatterclass in Java.defaultYearintegerDefault year is accepted as an optional field for cases like IRIG time format and will be overridden by year in time format.
defaultDayOfYearintegerDefault day of year is accepted as an optional field for cases like IRIG time format and will be overridden by day of year in time format.
outputFileFormatFileOutputFormatThe format of the output file. Currently only “parquet”, “csv”, “parquet.tar” are supported
Values of
FileOutputFormatPARQUET
CSV
PARQUET_TAR
AVRO_STREAM
JSON_L
MANIFEST
exitCodeMappingsarray ofExitCodeMappingFallback exit-code-to-error mappings for extractors that cannot emit a structured termination-log document. Populated from the active container image for v2 extractors; empty otherwise.
Fields of
ExitCodeMappingexitCodeintegerThe container process exit code this mapping applies to.
codestringMachine-readable error code. Extractor-defined codes must fall outside the reserved platform namespace.
messagestringHuman-readable error message.
retryablebooleanWhether the platform may retry the ingest for this failure.
resourcesContainerResourcesCompute resources declared on the extractor’s container image. Read-only: set at image build time and never accepted on register or update. Absent, and absent per field, for an image that declares none, in which case the deployment-wide default configured on combined-service applies.
Fields of
ContainerResourcescpuCoresintegerCPU cores requested for the extractor container.
memoryGibintegerMemory in GiB, applied as both the request and the limit.
diskGibintegerSize in GiB of each of the ephemeral input and output volumes.
Request
curl "https://api.gov.nominal.io/api/extractors/v1/container/<extractor rid>" \
-H "Authorization: Bearer <api key>"
import requests
response = requests.get(
"https://api.gov.nominal.io/api/extractors/v1/container/<extractor rid>",
headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
print(response.json())
import httpx
response = httpx.get(
"https://api.gov.nominal.io/api/extractors/v1/container/<extractor rid>",
headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
print(response.json())
import asyncio
import aiohttp
async def main() -> None:
async with aiohttp.ClientSession() as session:
async with session.get(
"https://api.gov.nominal.io/api/extractors/v1/container/<extractor rid>",
headers={"Authorization": "Bearer <api key>"},
) as response:
response.raise_for_status()
print(await response.json())
asyncio.run(main())
Response: 200
{
"rid": "<containerized extractor rid>",
"name": "<name>",
"description": "<description>",
"image": {
"registry": "<registry>",
"repository": "<repository>",
"tagDetails": {
"tags": [
"<tags>"
],
"defaultTag": "<default tag>"
},
"authentication": {
"type": "userAndPassword",
"userAndPassword": {
"username": "<username>",
"passwordSecretRid": "<secret rid>"
}
},
"command": "<command>"
},
"containerImageRid": "<container image rid>",
"inputs": [
{
"environmentVariable": "<environment variable>",
"name": "<name>",
"description": "<description>",
"fileFilters": [
{
"type": "suffix",
"suffix": "<file suffix>"
}
],
"required": true
}
],
"parameters": [
{
"environmentVariable": "<environment variable>",
"name": "<name>",
"description": "<description>",
"required": true
}
],
"properties": {
"<key>": "<property value>"
},
"labels": [
"<label>"
],
"createdAt": "2026-01-01T00:00:00Z",
"isArchived": true,
"timestampMetadata": {
"seriesName": "<series name>",
"timestampType": {
"type": "relative",
"relative": {
"timeUnit": "DAYS",
"offset": "2026-01-01T00:00:00Z"
}
}
},
"outputFileFormat": "PARQUET",
"exitCodeMappings": [
{
"exitCode": 1,
"code": "<code>",
"message": "<message>",
"retryable": true
}
],
"resources": {
"cpuCores": 1,
"memoryGib": 1,
"diskGib": 1
}
}
Update containerized extractor#
PUT /extractors/v1/container/{extractorRid}
Update a containerized extractor. Only the fields that are set in the request will be updated.
Path parameters
extractorRidstring (RID) required
Body
namestring
descriptionstring
inputsarray ofFileExtractionInput
Fields of
FileExtractionInputenvironmentVariablestring requiredThe environment variable that stores the path to the input file.
namestring requiredName of the input file which users will be prompted with
descriptionstringDescription of the input file which users will be prompted with
fileFiltersarray ofFileFilterOptionally filter files for file selection
Set
typeto"suffix".suffixstring
requiredbooleanWhether the input file is required for the extractor to run.
parametersarray ofFileExtractionParameter
Fields of
FileExtractionParameterenvironmentVariablestring requiredThe environment variable that stores the argument
namestring requiredName of the parameter which users will be prompted with
descriptionstringDescription of the parameter which users will be prompted with
requiredbooleanWhether the parameter is required for the extractor to run.
propertiesmap ofPropertyNameto string
labelsarray of string
timestampMetadataTimestampMetadata
Fields of
TimestampMetadataseriesNamestring required
timestampTypeTimestampTyperequired
Set
typeto"relative".relativeRelativeTimestamp
Fields of
RelativeTimestamptimeUnitTimeUnitrequired
Values of
TimeUnitDAYS
HOURS
MINUTES
SECONDS
MILLISECONDS
MICROSECONDS
NANOSECONDS
offsetstring (date-time)Starting timestamp to use when indexing the file. This field is required when uploading a new file to an existing dataset.
Set
typeto"absolute".absoluteAbsoluteTimestamp
Set
typeto"iso8601".iso8601Iso8601Timestamp
Set
typeto"epochOfTimeUnit".epochOfTimeUnitEpochTimestamp
Fields of
EpochTimestamptimeUnitTimeUnitrequired
Set
typeto"customFormat".customFormatCustomTimestamp
Fields of
CustomTimestampformatstring requiredThe format string should be in the format of the
DateTimeFormatterclass in Java.defaultYearintegerDefault year is accepted as an optional field for cases like IRIG time format and will be overridden by year in time format.
defaultDayOfYearintegerDefault day of year is accepted as an optional field for cases like IRIG time format and will be overridden by day of year in time format.
outputFileFormatFileOutputFormat
Values of
FileOutputFormatPARQUET
CSV
PARQUET_TAR
AVRO_STREAM
JSON_L
MANIFEST
registrystring
repositorystring
tagsarray of string
defaultTagstring
authenticationAuthentication
Set
typeto"userAndPassword".userAndPasswordUserAndPasswordAuthentication
Fields of
UserAndPasswordAuthenticationusernamestring requiredUsername for registry authentication.
passwordSecretRidstring (RID) requiredThe RID of the secret containing the password for registry authentication.
Set
typeto"public".publicPublicAuthentication
commandstring
Response
ridstring (RID)Unique resource identifier for the extractor.
namestringThe name of the extractor as defined by the user.
descriptionstringOptional description of the extractor.
imageDockerImageSourcedeprecatedDeprecated: use containerImageRid instead for self-hosted images. Container image used to run the extractor via an external registry. When containerImageRid is set, this field contains placeholder values and should be ignored. Deprecated: Use containerImageRid for self-hosted images.
Fields of
DockerImageSourceregistrystringThe container registry where the image is hosted.
repositorystringThe repository name of the image.
tagDetailsTagDetails
Fields of
TagDetailstagsarray of string
defaultTagstring
authenticationAuthenticationOptional authentication for accessing private container registries.
Set
typeto"userAndPassword".userAndPasswordUserAndPasswordAuthentication
Fields of
UserAndPasswordAuthenticationusernamestringUsername for registry authentication.
passwordSecretRidstring (RID)The RID of the secret containing the password for registry authentication.
Set
typeto"public".publicPublicAuthentication
commandstring
containerImageRidstring (RID)RID of a self-hosted container image in the internal registry. When set, the extractor uses the internal registry; when absent, the legacy image field is used.
inputsarray ofFileExtractionInputThe input files that this extractor requires, mapped to environment variables that store the path to the file.
Fields of
FileExtractionInputenvironmentVariablestringThe environment variable that stores the path to the input file.
namestringName of the input file which users will be prompted with
descriptionstringDescription of the input file which users will be prompted with
fileFiltersarray ofFileFilterOptionally filter files for file selection
Set
typeto"suffix".suffixstring
requiredbooleanWhether the input file is required for the extractor to run.
parametersarray ofFileExtractionParameterDescribes the parameters of the extractor.
Fields of
FileExtractionParameterenvironmentVariablestringThe environment variable that stores the argument
namestringName of the parameter which users will be prompted with
descriptionstringDescription of the parameter which users will be prompted with
requiredbooleanWhether the parameter is required for the extractor to run.
propertiesmap ofPropertyNameto stringAdditional properties associated with this extractor.
labelsarray of stringSet of labels applied to this extractor.
createdAtstring (date-time)Timestamp when this extractor was created.
isArchivedbooleanWhether this extractor is archived.
timestampMetadataTimestampMetadataMetadata about the intermediate parquet this extractor will produce. If not set, timestamp metadata must be provided at ingest time.
Fields of
TimestampMetadataseriesNamestring
timestampTypeTimestampType
Set
typeto"relative".relativeRelativeTimestamp
Fields of
RelativeTimestamptimeUnitTimeUnit
Values of
TimeUnitDAYS
HOURS
MINUTES
SECONDS
MILLISECONDS
MICROSECONDS
NANOSECONDS
offsetstring (date-time)Starting timestamp to use when indexing the file. This field is required when uploading a new file to an existing dataset.
Set
typeto"absolute".absoluteAbsoluteTimestamp
Set
typeto"iso8601".iso8601Iso8601Timestamp
Set
typeto"epochOfTimeUnit".epochOfTimeUnitEpochTimestamp
Fields of
EpochTimestamptimeUnitTimeUnit
Set
typeto"customFormat".customFormatCustomTimestamp
Fields of
CustomTimestampformatstringThe format string should be in the format of the
DateTimeFormatterclass in Java.defaultYearintegerDefault year is accepted as an optional field for cases like IRIG time format and will be overridden by year in time format.
defaultDayOfYearintegerDefault day of year is accepted as an optional field for cases like IRIG time format and will be overridden by day of year in time format.
outputFileFormatFileOutputFormatThe format of the output file. Currently only “parquet”, “csv”, “parquet.tar” are supported
Values of
FileOutputFormatPARQUET
CSV
PARQUET_TAR
AVRO_STREAM
JSON_L
MANIFEST
exitCodeMappingsarray ofExitCodeMappingFallback exit-code-to-error mappings for extractors that cannot emit a structured termination-log document. Populated from the active container image for v2 extractors; empty otherwise.
Fields of
ExitCodeMappingexitCodeintegerThe container process exit code this mapping applies to.
codestringMachine-readable error code. Extractor-defined codes must fall outside the reserved platform namespace.
messagestringHuman-readable error message.
retryablebooleanWhether the platform may retry the ingest for this failure.
resourcesContainerResourcesCompute resources declared on the extractor’s container image. Read-only: set at image build time and never accepted on register or update. Absent, and absent per field, for an image that declares none, in which case the deployment-wide default configured on combined-service applies.
Fields of
ContainerResourcescpuCoresintegerCPU cores requested for the extractor container.
memoryGibintegerMemory in GiB, applied as both the request and the limit.
diskGibintegerSize in GiB of each of the ephemeral input and output volumes.
Request
curl -X PUT "https://api.gov.nominal.io/api/extractors/v1/container/<extractor rid>" \
-H "Authorization: Bearer <api key>" \
-H "Content-Type: application/json" \
--data '{
"name": "<name>",
"description": "<description>",
"inputs": [
{
"environmentVariable": "<environment variable>",
"name": "<name>"
}
],
"parameters": [
{
"environmentVariable": "<environment variable>",
"name": "<name>"
}
],
"properties": {
"<key>": "<property value>"
},
"labels": [
"<label>"
],
"timestampMetadata": {
"seriesName": "<series name>",
"timestampType": {
"type": "relative",
"relative": {
"timeUnit": "DAYS"
}
}
},
"outputFileFormat": "PARQUET",
"registry": "<registry>",
"repository": "<repository>",
"tags": [
"<tags>"
],
"defaultTag": "<default tag>",
"authentication": {
"type": "userAndPassword",
"userAndPassword": {
"username": "<username>",
"passwordSecretRid": "<secret rid>"
}
},
"command": "<command>"
}'
import requests
response = requests.put(
"https://api.gov.nominal.io/api/extractors/v1/container/<extractor rid>",
headers={"Authorization": "Bearer <api key>"},
json={
"name": "<name>",
"description": "<description>",
"inputs": [{"environmentVariable": "<environment variable>", "name": "<name>"}],
"parameters": [
{"environmentVariable": "<environment variable>", "name": "<name>"},
],
"properties": {"<key>": "<property value>"},
"labels": ["<label>"],
"timestampMetadata": {
"seriesName": "<series name>",
"timestampType": {"type": "relative", "relative": {"timeUnit": "DAYS"}},
},
"outputFileFormat": "PARQUET",
"registry": "<registry>",
"repository": "<repository>",
"tags": ["<tags>"],
"defaultTag": "<default tag>",
"authentication": {
"type": "userAndPassword",
"userAndPassword": {
"username": "<username>",
"passwordSecretRid": "<secret rid>",
},
},
"command": "<command>",
},
)
response.raise_for_status()
print(response.json())
import httpx
response = httpx.put(
"https://api.gov.nominal.io/api/extractors/v1/container/<extractor rid>",
headers={"Authorization": "Bearer <api key>"},
json={
"name": "<name>",
"description": "<description>",
"inputs": [{"environmentVariable": "<environment variable>", "name": "<name>"}],
"parameters": [
{"environmentVariable": "<environment variable>", "name": "<name>"},
],
"properties": {"<key>": "<property value>"},
"labels": ["<label>"],
"timestampMetadata": {
"seriesName": "<series name>",
"timestampType": {"type": "relative", "relative": {"timeUnit": "DAYS"}},
},
"outputFileFormat": "PARQUET",
"registry": "<registry>",
"repository": "<repository>",
"tags": ["<tags>"],
"defaultTag": "<default tag>",
"authentication": {
"type": "userAndPassword",
"userAndPassword": {
"username": "<username>",
"passwordSecretRid": "<secret rid>",
},
},
"command": "<command>",
},
)
response.raise_for_status()
print(response.json())
import asyncio
import aiohttp
async def main() -> None:
async with aiohttp.ClientSession() as session:
async with session.put(
"https://api.gov.nominal.io/api/extractors/v1/container/<extractor rid>",
headers={"Authorization": "Bearer <api key>"},
json={
"name": "<name>",
"description": "<description>",
"inputs": [
{"environmentVariable": "<environment variable>", "name": "<name>"},
],
"parameters": [
{"environmentVariable": "<environment variable>", "name": "<name>"},
],
"properties": {"<key>": "<property value>"},
"labels": ["<label>"],
"timestampMetadata": {
"seriesName": "<series name>",
"timestampType": {
"type": "relative",
"relative": {"timeUnit": "DAYS"},
},
},
"outputFileFormat": "PARQUET",
"registry": "<registry>",
"repository": "<repository>",
"tags": ["<tags>"],
"defaultTag": "<default tag>",
"authentication": {
"type": "userAndPassword",
"userAndPassword": {
"username": "<username>",
"passwordSecretRid": "<secret rid>",
},
},
"command": "<command>",
},
) as response:
response.raise_for_status()
print(await response.json())
asyncio.run(main())
Response: 200
{
"rid": "<containerized extractor rid>",
"name": "<name>",
"description": "<description>",
"image": {
"registry": "<registry>",
"repository": "<repository>",
"tagDetails": {
"tags": [
"<tags>"
],
"defaultTag": "<default tag>"
},
"authentication": {
"type": "userAndPassword",
"userAndPassword": {
"username": "<username>",
"passwordSecretRid": "<secret rid>"
}
},
"command": "<command>"
},
"containerImageRid": "<container image rid>",
"inputs": [
{
"environmentVariable": "<environment variable>",
"name": "<name>",
"description": "<description>",
"fileFilters": [
{
"type": "suffix",
"suffix": "<file suffix>"
}
],
"required": true
}
],
"parameters": [
{
"environmentVariable": "<environment variable>",
"name": "<name>",
"description": "<description>",
"required": true
}
],
"properties": {
"<key>": "<property value>"
},
"labels": [
"<label>"
],
"createdAt": "2026-01-01T00:00:00Z",
"isArchived": true,
"timestampMetadata": {
"seriesName": "<series name>",
"timestampType": {
"type": "relative",
"relative": {
"timeUnit": "DAYS",
"offset": "2026-01-01T00:00:00Z"
}
}
},
"outputFileFormat": "PARQUET",
"exitCodeMappings": [
{
"exitCode": 1,
"code": "<code>",
"message": "<message>",
"retryable": true
}
],
"resources": {
"cpuCores": 1,
"memoryGib": 1,
"diskGib": 1
}
}
Search containerized extractors#
POST /extractors/v1/container/search
Search for containerized extractors based on query parameters.
Body
querySearchContainerizedExtractorsQueryrequired
Set
typeto"searchText".searchTextstring
Set
typeto"label".labelstring
Set
typeto"property".propertyProperty
Fields of
Propertynamestring required
valuestring required
Set
typeto"and".andarray ofSearchContainerizedExtractorsQuery
Set
typeto"or".orarray ofSearchContainerizedExtractorsQuery
Set
typeto"workspace".workspacestring (RID)
Response
The body is an array of ContainerizedExtractor.
Fields of ContainerizedExtractor
ridstring (RID)Unique resource identifier for the extractor.
namestringThe name of the extractor as defined by the user.
descriptionstringOptional description of the extractor.
imageDockerImageSourcedeprecatedDeprecated: use containerImageRid instead for self-hosted images. Container image used to run the extractor via an external registry. When containerImageRid is set, this field contains placeholder values and should be ignored. Deprecated: Use containerImageRid for self-hosted images.
Fields of
DockerImageSourceregistrystringThe container registry where the image is hosted.
repositorystringThe repository name of the image.
tagDetailsTagDetails
Fields of
TagDetailstagsarray of string
defaultTagstring
authenticationAuthenticationOptional authentication for accessing private container registries.
Set
typeto"userAndPassword".userAndPasswordUserAndPasswordAuthentication
Fields of
UserAndPasswordAuthenticationusernamestringUsername for registry authentication.
passwordSecretRidstring (RID)The RID of the secret containing the password for registry authentication.
Set
typeto"public".publicPublicAuthentication
commandstring
containerImageRidstring (RID)RID of a self-hosted container image in the internal registry. When set, the extractor uses the internal registry; when absent, the legacy image field is used.
inputsarray ofFileExtractionInputThe input files that this extractor requires, mapped to environment variables that store the path to the file.
Fields of
FileExtractionInputenvironmentVariablestringThe environment variable that stores the path to the input file.
namestringName of the input file which users will be prompted with
descriptionstringDescription of the input file which users will be prompted with
fileFiltersarray ofFileFilterOptionally filter files for file selection
Set
typeto"suffix".suffixstring
requiredbooleanWhether the input file is required for the extractor to run.
parametersarray ofFileExtractionParameterDescribes the parameters of the extractor.
Fields of
FileExtractionParameterenvironmentVariablestringThe environment variable that stores the argument
namestringName of the parameter which users will be prompted with
descriptionstringDescription of the parameter which users will be prompted with
requiredbooleanWhether the parameter is required for the extractor to run.
propertiesmap ofPropertyNameto stringAdditional properties associated with this extractor.
labelsarray of stringSet of labels applied to this extractor.
createdAtstring (date-time)Timestamp when this extractor was created.
isArchivedbooleanWhether this extractor is archived.
timestampMetadataTimestampMetadataMetadata about the intermediate parquet this extractor will produce. If not set, timestamp metadata must be provided at ingest time.
Fields of
TimestampMetadataseriesNamestring
timestampTypeTimestampType
Set
typeto"relative".relativeRelativeTimestamp
Fields of
RelativeTimestamptimeUnitTimeUnit
Values of
TimeUnitDAYS
HOURS
MINUTES
SECONDS
MILLISECONDS
MICROSECONDS
NANOSECONDS
offsetstring (date-time)Starting timestamp to use when indexing the file. This field is required when uploading a new file to an existing dataset.
Set
typeto"absolute".absoluteAbsoluteTimestamp
Set
typeto"iso8601".iso8601Iso8601Timestamp
Set
typeto"epochOfTimeUnit".epochOfTimeUnitEpochTimestamp
Fields of
EpochTimestamptimeUnitTimeUnit
Set
typeto"customFormat".customFormatCustomTimestamp
Fields of
CustomTimestampformatstringThe format string should be in the format of the
DateTimeFormatterclass in Java.defaultYearintegerDefault year is accepted as an optional field for cases like IRIG time format and will be overridden by year in time format.
defaultDayOfYearintegerDefault day of year is accepted as an optional field for cases like IRIG time format and will be overridden by day of year in time format.
outputFileFormatFileOutputFormatThe format of the output file. Currently only “parquet”, “csv”, “parquet.tar” are supported
Values of
FileOutputFormatPARQUET
CSV
PARQUET_TAR
AVRO_STREAM
JSON_L
MANIFEST
exitCodeMappingsarray ofExitCodeMappingFallback exit-code-to-error mappings for extractors that cannot emit a structured termination-log document. Populated from the active container image for v2 extractors; empty otherwise.
Fields of
ExitCodeMappingexitCodeintegerThe container process exit code this mapping applies to.
codestringMachine-readable error code. Extractor-defined codes must fall outside the reserved platform namespace.
messagestringHuman-readable error message.
retryablebooleanWhether the platform may retry the ingest for this failure.
resourcesContainerResourcesCompute resources declared on the extractor’s container image. Read-only: set at image build time and never accepted on register or update. Absent, and absent per field, for an image that declares none, in which case the deployment-wide default configured on combined-service applies.
Fields of
ContainerResourcescpuCoresintegerCPU cores requested for the extractor container.
memoryGibintegerMemory in GiB, applied as both the request and the limit.
diskGibintegerSize in GiB of each of the ephemeral input and output volumes.
Request
curl -X POST "https://api.gov.nominal.io/api/extractors/v1/container/search" \
-H "Authorization: Bearer <api key>" \
-H "Content-Type: application/json" \
--data '{
"query": {
"type": "searchText",
"searchText": "<search text>"
}
}'
import requests
response = requests.post(
"https://api.gov.nominal.io/api/extractors/v1/container/search",
headers={"Authorization": "Bearer <api key>"},
json={"query": {"type": "searchText", "searchText": "<search text>"}},
)
response.raise_for_status()
print(response.json())
import httpx
response = httpx.post(
"https://api.gov.nominal.io/api/extractors/v1/container/search",
headers={"Authorization": "Bearer <api key>"},
json={"query": {"type": "searchText", "searchText": "<search text>"}},
)
response.raise_for_status()
print(response.json())
import asyncio
import aiohttp
async def main() -> None:
async with aiohttp.ClientSession() as session:
async with session.post(
"https://api.gov.nominal.io/api/extractors/v1/container/search",
headers={"Authorization": "Bearer <api key>"},
json={"query": {"type": "searchText", "searchText": "<search text>"}},
) as response:
response.raise_for_status()
print(await response.json())
asyncio.run(main())
Response: 200
[
{
"rid": "<containerized extractor rid>",
"name": "<name>",
"description": "<description>",
"image": {
"registry": "<registry>",
"repository": "<repository>",
"tagDetails": {
"tags": [
"<tags>"
],
"defaultTag": "<default tag>"
},
"authentication": {
"type": "userAndPassword",
"userAndPassword": {
"username": "<username>",
"passwordSecretRid": "<secret rid>"
}
},
"command": "<command>"
},
"containerImageRid": "<container image rid>",
"inputs": [
{
"environmentVariable": "<environment variable>",
"name": "<name>",
"description": "<description>",
"fileFilters": [
{
"type": "suffix",
"suffix": "<file suffix>"
}
],
"required": true
}
],
"parameters": [
{
"environmentVariable": "<environment variable>",
"name": "<name>",
"description": "<description>",
"required": true
}
],
"properties": {
"<key>": "<property value>"
},
"labels": [
"<label>"
],
"createdAt": "2026-01-01T00:00:00Z",
"isArchived": true,
"timestampMetadata": {
"seriesName": "<series name>",
"timestampType": {
"type": "relative",
"relative": {
"timeUnit": "DAYS",
"offset": "2026-01-01T00:00:00Z"
}
}
},
"outputFileFormat": "PARQUET",
"exitCodeMappings": [
{
"exitCode": 1,
"code": "<code>",
"message": "<message>",
"retryable": true
}
],
"resources": {
"cpuCores": 1,
"memoryGib": 1,
"diskGib": 1
}
}
]
Archive containerized extractor#
PUT /extractors/v1/container/{extractorRid}/archive
Archive a containerized extractor.
Path parameters
extractorRidstring (RID) required
Response
No content (HTTP 204).
Request
curl -X PUT "https://api.gov.nominal.io/api/extractors/v1/container/<extractor rid>/archive" \
-H "Authorization: Bearer <api key>"
import requests
response = requests.put(
"https://api.gov.nominal.io/api/extractors/v1/container/<extractor rid>/archive",
headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
import httpx
response = httpx.put(
"https://api.gov.nominal.io/api/extractors/v1/container/<extractor rid>/archive",
headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
import asyncio
import aiohttp
async def main() -> None:
async with aiohttp.ClientSession() as session:
async with session.put(
"https://api.gov.nominal.io/api/extractors/v1/container/<extractor rid>/archive",
headers={"Authorization": "Bearer <api key>"},
) as response:
response.raise_for_status()
asyncio.run(main())
Response: 204
No content.
Unarchive containerized extractor#
PUT /extractors/v1/container/{extractorRid}/unarchive
Unarchive a containerized extractor.
Path parameters
extractorRidstring (RID) required
Response
No content (HTTP 204).
Request
curl -X PUT "https://api.gov.nominal.io/api/extractors/v1/container/<extractor rid>/unarchive" \
-H "Authorization: Bearer <api key>"
import requests
response = requests.put(
"https://api.gov.nominal.io/api/extractors/v1/container/<extractor rid>/unarchive",
headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
import httpx
response = httpx.put(
"https://api.gov.nominal.io/api/extractors/v1/container/<extractor rid>/unarchive",
headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
import asyncio
import aiohttp
async def main() -> None:
async with aiohttp.ClientSession() as session:
async with session.put(
"https://api.gov.nominal.io/api/extractors/v1/container/<extractor rid>/unarchive",
headers={"Authorization": "Bearer <api key>"},
) as response:
response.raise_for_status()
asyncio.run(main())
Response: 204
No content.
Errors#
Errors shows how these errors are sent.
Each error’s errorName is ContainerizedExtractor: followed by its name below.
Status |
Name |
Notes |
|---|---|---|
400 |
|
|
400 |
|
|
400 |
|
|
404 |
|
|
404 |
|
Types#
AbsoluteTimestamp#
Set type to the name of one of the other fields, and set only that field.
iso8601Iso8601Timestamp
epochOfTimeUnitEpochTimestamp
customFormatCustomTimestamp
Authentication#
Authentication methods for Docker registries.
Set type to the name of one of the other fields, and set only that field.
userAndPasswordUserAndPasswordAuthentication
publicPublicAuthentication
ContainerizedExtractor#
Represents a containerized extractor that processes input files using a container.
ridstring (RID) requiredUnique resource identifier for the extractor.
namestring requiredThe name of the extractor as defined by the user.
descriptionstringOptional description of the extractor.
imageDockerImageSourcerequired deprecatedDeprecated: use containerImageRid instead for self-hosted images. Container image used to run the extractor via an external registry. When containerImageRid is set, this field contains placeholder values and should be ignored. Deprecated: Use containerImageRid for self-hosted images.
containerImageRidstring (RID)RID of a self-hosted container image in the internal registry. When set, the extractor uses the internal registry; when absent, the legacy image field is used.
inputsarray ofFileExtractionInputThe input files that this extractor requires, mapped to environment variables that store the path to the file.
parametersarray ofFileExtractionParameterDescribes the parameters of the extractor.
propertiesmap ofPropertyNameto stringAdditional properties associated with this extractor.
labelsarray of stringSet of labels applied to this extractor.
createdAtstring (date-time) requiredTimestamp when this extractor was created.
isArchivedboolean requiredWhether this extractor is archived.
timestampMetadataTimestampMetadataMetadata about the intermediate parquet this extractor will produce. If not set, timestamp metadata must be provided at ingest time.
outputFileFormatFileOutputFormatrequiredThe format of the output file. Currently only “parquet”, “csv”, “parquet.tar” are supported
exitCodeMappingsarray ofExitCodeMappingFallback exit-code-to-error mappings for extractors that cannot emit a structured termination-log document. Populated from the active container image for v2 extractors; empty otherwise.
resourcesContainerResourcesCompute resources declared on the extractor’s container image. Read-only: set at image build time and never accepted on register or update. Absent, and absent per field, for an image that declares none, in which case the deployment-wide default configured on combined-service applies.
ContainerResources#
Compute resources granted to an extractor container. Every field is optional; an unset field falls back to the deployment-wide default configured on combined-service.
cpuCoresintegerCPU cores requested for the extractor container.
memoryGibintegerMemory in GiB, applied as both the request and the limit.
diskGibintegerSize in GiB of each of the ephemeral input and output volumes.
CustomTimestamp#
formatstring requiredThe format string should be in the format of the
DateTimeFormatterclass in Java.defaultYearintegerDefault year is accepted as an optional field for cases like IRIG time format and will be overridden by year in time format.
defaultDayOfYearintegerDefault day of year is accepted as an optional field for cases like IRIG time format and will be overridden by day of year in time format.
DockerImageSource#
Docker container image source definition.
registrystring requiredThe container registry where the image is hosted.
repositorystring requiredThe repository name of the image.
tagDetailsTagDetailsrequired
authenticationAuthenticationrequiredOptional authentication for accessing private container registries.
commandstring
EpochTimestamp#
timeUnitTimeUnitrequired
ExitCodeMapping#
Maps a container exit code to a structured error, for extractors that cannot emit a structured /dev/termination-log document. Applied as a fallback error tier at ingest time.
exitCodeinteger requiredThe container process exit code this mapping applies to.
codestring requiredMachine-readable error code. Extractor-defined codes must fall outside the reserved platform namespace.
messagestring requiredHuman-readable error message.
retryableboolean requiredWhether the platform may retry the ingest for this failure.
FileExtractionInput#
Defines an input file to be provided to the extractor.
environmentVariablestring requiredThe environment variable that stores the path to the input file.
namestring requiredName of the input file which users will be prompted with
descriptionstringDescription of the input file which users will be prompted with
fileFiltersarray ofFileFilterOptionally filter files for file selection
requiredbooleanWhether the input file is required for the extractor to run.
FileExtractionParameter#
Defines an input parameter to be provided to the extractor.
environmentVariablestring requiredThe environment variable that stores the argument
namestring requiredName of the parameter which users will be prompted with
descriptionstringDescription of the parameter which users will be prompted with
requiredbooleanWhether the parameter is required for the extractor to run.
FileFilter#
Set type to the name of one of the other fields, and set only that field.
suffixstring
FileOutputFormat#
PARQUET
CSV
PARQUET_TAR
AVRO_STREAM
JSON_L
MANIFEST
Iso8601Timestamp#
An empty JSON object, {}.
Property#
namestring required
valuestring required
PublicAuthentication#
An empty JSON object, {}.
RelativeTimestamp#
timeUnitTimeUnitrequired
offsetstring (date-time)Starting timestamp to use when indexing the file. This field is required when uploading a new file to an existing dataset.
SearchContainerizedExtractorsQuery#
Set type to the name of one of the other fields, and set only that field.
searchTextstring
labelstring
propertyProperty
andarray ofSearchContainerizedExtractorsQuery
orarray ofSearchContainerizedExtractorsQuery
workspacestring (RID)
TagDetails#
tagsarray of string
defaultTagstring required
TimestampMetadata#
seriesNamestring required
timestampTypeTimestampTyperequired
TimestampType#
Set type to the name of one of the other fields, and set only that field.
relativeRelativeTimestamp
absoluteAbsoluteTimestamp
TimeUnit#
DAYS
HOURS
MINUTES
SECONDS
MILLISECONDS
MICROSECONDS
NANOSECONDS
UserAndPasswordAuthentication#
Username and password authentication.
usernamestring requiredUsername for registry authentication.
passwordSecretRidstring (RID) requiredThe RID of the secret containing the password for registry authentication.
Page design based on Scalar, MIT License.