MIGHTY DEVELOPERS
Submit a job
POST /v1/mic/jobs. MIC API request examples, required scopes and response schemas. Sandbox access requires an approved application.
Request access
Service access is reviewed before credentials are issued. Public documentation and the read-only demo do not grant private sandbox or production access.
POST /v1/mic/jobs
Operation ID: createMicJob
Authenticate your application
After access approval, sandbox provisioning and license activation, create client credentials in your workspace. Keep MIGHTY_CLIENT_ID and MIGHTY_CLIENT_SECRET in your server environment. Exchange them for an access token with the required scope. This example uses a POSIX shell such as Bash.
curl --request POST "https://www.pradiota.com/sandbox/oauth/token" \ --user "$MIGHTY_CLIENT_ID:$MIGHTY_CLIENT_SECRET" \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'scope=mic.jobs:run'
Set MIGHTY_ACCESS_TOKEN to the returned access_token. Send it as Authorization: Bearer and request a new token when it expires. MIC API access is not enabled yet; request sandbox access to prepare your integration.
Send a request
After sandbox access is approved, use an access token for your application. Set MIGHTY_ACCESS_TOKEN. After MIC access is approved, open the MIC console at /developers/console/mic, choose the application and credential, then Load current workspace. Use the returned micws_ ID as MIC_WORKSPACE_ID and replace the other MIC variables with your workspace’s resource IDs. The example sends Bearer authentication and required query parameters; copying it does not send a request.
Required scope: mic.jobs:run. Additional permissions: none.
curl --request POST "https://www.pradiota.com/sandbox/v1/mic/jobs" \
--header "Authorization: Bearer ${MIGHTY_ACCESS_TOKEN}" \
--header 'Accept: application/json' \
--header "Idempotency-Key: ${MIC_IDEMPOTENCY_KEY}" \
--header 'Content-Type: application/json' \
--data-binary '@createMicJob.json'Use a stable MIC_IDEMPOTENCY_KEY for this exact command and retained body.
Save this JSON as createMicJob.json and replace the placeholders with your application’s resource IDs. Job parameterValues must match the offered recipe schema. For file processing requests, permission is reviewed before a job can run.
{
"workspaceId": "<current sandbox workspace ID>",
"recipeVersionId": "<offered micrecipev_ ID>",
"inputBindings": [
{
"port": "<published recipe input port>",
"inputId": "<owned MIC input ID>"
}
],
"parameterValues": {}
}Request body schema
{
"$ref": "#/$defs/BatchCreate",
"$defs": {
"BatchCreate": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9_.:-]*$"
},
"recipeVersionId": {
"type": "string",
"minLength": 43,
"maxLength": 43,
"pattern": "^micrecipev_[a-f0-9]{32}$"
},
"inputBindings": {
"type": "array",
"minItems": 1,
"maxItems": 32,
"items": {
"$ref": "#/$defs/InputBinding"
},
"x-native-unique-ports-and-input-ids": true
},
"parameterValues": {
"type": "object",
"x-native-validation": "Exact published recipe parameter schema; no implicit defaults or caller plan"
},
"clientReference": {
"oneOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 160,
"pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
"x-native-max-utf16-units": 160,
"x-native-nonblank-required": true
},
{
"type": "null"
}
]
}
},
"required": [
"workspaceId",
"recipeVersionId",
"inputBindings",
"parameterValues"
],
"additionalProperties": false
},
"InputBinding": {
"type": "object",
"properties": {
"port": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[A-Za-z][A-Za-z0-9_-]*$"
},
"inputId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9_.:-]*$"
}
},
"required": [
"port",
"inputId"
],
"additionalProperties": false
}
}
}Query & header schemas
{
"query": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"headers": {
"Idempotency-Key": {
"type": "string",
"minLength": 4,
"maxLength": 160,
"pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
"x-native-min-utf16-units": 8,
"x-native-max-utf16-units": 160,
"x-native-nonblank-required": true
}
}
}Success response schema
HTTP 202
{
"$ref": "#/$defs/JobEnvelope",
"$defs": {
"JobEnvelope": {
"type": "object",
"properties": {
"data": {
"$ref": "#/$defs/Job"
},
"meta": {
"type": "object",
"properties": {
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"required": [
"requestId"
],
"additionalProperties": false
}
},
"required": [
"data",
"meta"
],
"additionalProperties": false
},
"Job": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"workspaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"environment": {
"type": "string",
"enum": [
"SANDBOX",
"PRODUCTION"
]
},
"state": {
"type": "string",
"enum": [
"PREPARING",
"QUEUED",
"RUNNING",
"WAITING_REVIEW",
"PAUSED",
"SUCCEEDED",
"FAILED",
"CANCELLED"
]
},
"resourceVersion": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"createdAt": {
"type": "string",
"format": "date-time",
"maxLength": 40
},
"updatedAt": {
"type": "string",
"format": "date-time",
"maxLength": 40
},
"recipeVersionId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"processingState": {
"type": "string",
"enum": [
"PREPARING",
"QUEUED",
"RUNNING",
"WAITING_REVIEW",
"PAUSED",
"SUCCEEDED",
"FAILED",
"CANCELLED"
]
},
"publicationState": {
"type": "string",
"enum": [
"NOT_REQUESTED",
"AWAITING_RELEASE",
"BUILDING",
"ACTIVE",
"WITHDRAWN"
]
},
"outputDatasetVersionId": {
"oneOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 128
},
{
"type": "null"
}
]
},
"reviewState": {
"type": "string",
"enum": [
"NOT_REQUIRED",
"PENDING",
"APPROVED",
"REJECTED"
]
},
"stages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"stage": {
"type": "string",
"enum": [
"GATHER",
"SIFT",
"REFINE",
"BLEND",
"CHURN",
"TASTE",
"FREEZE",
"SCOOP",
"SERVE"
]
},
"state": {
"type": "string",
"enum": [
"PENDING",
"RUNNING",
"WAITING_REVIEW",
"SUCCEEDED",
"FAILED",
"CANCELLED",
"NOT_REQUIRED"
]
},
"attemptCount": {
"type": "integer",
"minimum": 0,
"maximum": 1000
},
"completedUnits": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"totalUnits": {
"oneOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"stage",
"state",
"attemptCount",
"completedUnits",
"totalUnits"
],
"additionalProperties": false
},
"minItems": 0,
"maxItems": 9
},
"retryOfBatchId": {
"oneOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 128
},
{
"type": "null"
}
]
},
"failure": {
"oneOf": [
{
"$ref": "#/$defs/Problem"
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"workspaceId",
"environment",
"state",
"resourceVersion",
"createdAt",
"updatedAt",
"recipeVersionId",
"processingState",
"publicationState",
"outputDatasetVersionId",
"reviewState",
"stages",
"retryOfBatchId",
"failure"
],
"additionalProperties": false
},
"Problem": {
"type": "object",
"properties": {
"type": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"retryable": {
"type": "boolean"
},
"fieldErrors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"pointer": {
"type": "string",
"minLength": 0,
"maxLength": 512
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
},
"required": [
"pointer",
"code",
"message"
],
"additionalProperties": false
},
"minItems": 0,
"maxItems": 100
}
},
"required": [
"type",
"title",
"status",
"code",
"requestId",
"retryable",
"fieldErrors"
],
"additionalProperties": false
}
}
}Use cURL or install the MIC SDK and follow the language examples.
Browse MIC methods