Emporix · Schema

Stream

A stream that extracts from a source, maps fields, and upserts into an Emporix target type.

CompanyCommerceE-CommerceB2B CommerceHeadless CommerceComposable CommerceCommerce OrchestrationAgentic CommerceiPaaSSoftware-as-a-Service

Properties

Name Type Description
id string The stream identifier.
configId string The parent configuration.
name string The stream name.
sourceEntity string The logical source entity or record.
targetWriter string The target writer code, for example `emporix.customEntity`.
targetType string The default target type (custom-entity type identifier).
mode string How the stream contributes to the target.
deltaField string The source field whose value is tracked as the delta watermark. A delta run extracts only the records whose value is newer than the last run's.
deltaFieldFormat string How the delta field's values are formatted, so they can be compared correctly.
compositeParent string For a composite child stream, the name of the stream it contributes to.
linkingField string For a composite child stream, the source field holding its parent's key.
embedAttribute string For a composite child stream, the parent attribute its records are embedded into.
childStrategy string How a composite child's records reach the parent object.
writeStrategy string How an existing target object is updated. `PATCH` changes only the mapped fields and preserves everything else; `REPLACE_PUT` replaces the whole object, so fields this import does not manage are clear
discriminatorField string A source field whose value routes each record to a different target type, as defined by `discriminatorMap`.
discriminatorMap object Maps a discriminator value to the target type that receives those records.
deleteConfig object How deletes are detected in the source and propagated to the target. Omit for an upsert-only stream. `MARKER`: a field on the record flags it as deleted. `TOMBSTONE`: a separate source record lists th
healthThresholds object
createdAt string When the stream was created.
enabled boolean Whether the stream is active.
View JSON Schema on GitHub

JSON Schema

emporix-import-stream-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/emporix/main/json-schema/emporix-import-stream-schema.json",
  "title": "Stream",
  "description": "A stream that extracts from a source, maps fields, and upserts into an Emporix target type.",
  "x-generated": "2026-10-18",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/emporix-import-service-openapi.yml#/components/schemas/ImportStream",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "The stream identifier."
    },
    "configId": {
      "type": "string",
      "format": "uuid",
      "description": "The parent configuration."
    },
    "name": {
      "type": "string",
      "description": "The stream name."
    },
    "sourceEntity": {
      "type": "string",
      "description": "The logical source entity or record."
    },
    "targetWriter": {
      "type": "string",
      "description": "The target writer code, for example `emporix.customEntity`."
    },
    "targetType": {
      "type": "string",
      "description": "The default target type (custom-entity type identifier)."
    },
    "mode": {
      "type": "string",
      "enum": [
        "STANDALONE",
        "COMPOSITE_CHILD",
        "COMPOSITE_MERGE"
      ],
      "description": "How the stream contributes to the target."
    },
    "deltaField": {
      "type": "string",
      "description": "The source field whose value is tracked as the delta watermark. A delta run extracts only the records whose value is newer than the last run's."
    },
    "deltaFieldFormat": {
      "type": "string",
      "enum": [
        "DATE",
        "UNIX_SECONDS",
        "UNIX_MILLIS"
      ],
      "description": "How the delta field's values are formatted, so they can be compared correctly."
    },
    "compositeParent": {
      "type": "string",
      "description": "For a composite child stream, the name of the stream it contributes to."
    },
    "linkingField": {
      "type": "string",
      "description": "For a composite child stream, the source field holding its parent's key."
    },
    "embedAttribute": {
      "type": "string",
      "description": "For a composite child stream, the parent attribute its records are embedded into."
    },
    "childStrategy": {
      "type": "string",
      "enum": [
        "EMBED",
        "PATCH"
      ],
      "description": "How a composite child's records reach the parent object."
    },
    "writeStrategy": {
      "type": "string",
      "enum": [
        "PATCH",
        "MERGE_PUT",
        "REPLACE_PUT"
      ],
      "description": "How an existing target object is updated. `PATCH` changes only the mapped fields and preserves everything else; `REPLACE_PUT` replaces the whole object, so fields this import does not manage are cleared."
    },
    "discriminatorField": {
      "type": "string",
      "description": "A source field whose value routes each record to a different target type, as defined by `discriminatorMap`."
    },
    "discriminatorMap": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "description": "Maps a discriminator value to the target type that receives those records."
    },
    "deleteConfig": {
      "type": "object",
      "description": "How deletes are detected in the source and propagated to the target. Omit for an upsert-only\nstream. `MARKER`: a field on the record flags it as deleted. `TOMBSTONE`: a separate source\nrecord lists the deleted IDs.",
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "MARKER",
            "TOMBSTONE"
          ],
          "description": "How a deleted record is recognised."
        },
        "markerField": {
          "type": "string",
          "description": "`MARKER` only. The source field that flags a record as deleted."
        },
        "markerValues": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "`MARKER` only. The values of `markerField` that mean deleted."
        },
        "record": {
          "type": "string",
          "description": "`TOMBSTONE` only. The explicit name of the source record that lists deleted IDs. Omit this\nproperty when the name can be derived from the imported record by adding a prefix or suffix —\nfor example, `invoice_deleted` for an `invoice` stream. Specify it when the deletion record\ndoes not follow that naming convention."
        }
      }
    },
    "healthThresholds": {
      "$ref": "#/$defs/HealthThresholds"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "When the stream was created."
    },
    "enabled": {
      "type": "boolean",
      "description": "Whether the stream is active."
    }
  },
  "$defs": {
    "HealthThresholds": {
      "title": "Health thresholds",
      "type": "object",
      "description": "The limits that decide whether a stream is reported as `GREEN`, `AMBER`, or `RED`. Each field is optional and resolves independently. An unset field falls back through the hierarchy, from the most specific level to the least specific: stream, configuration, tenant, then the built-in default.",
      "properties": {
        "failureRatioAmber": {
          "type": "number",
          "format": "double",
          "description": "The share of failed records (0..1) at or above which the stream is `AMBER`."
        },
        "failureRatioRed": {
          "type": "number",
          "format": "double",
          "description": "The share of failed records (0..1) at or above which the stream is `RED`."
        },
        "staleAmberHours": {
          "type": "integer",
          "description": "The age threshold, in hours, for the stream's newest data. The stream is `AMBER` when the data's age reaches or exceeds this threshold."
        },
        "staleRedHours": {
          "type": "integer",
          "description": "The age threshold, in hours, for the stream's newest data. The stream is `RED` when the data's age reaches or exceeds this threshold."
        },
        "failedRunIsRed": {
          "type": "boolean",
          "description": "Whether a failed most-recent run makes the stream `RED` regardless of the other limits."
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/emporix-import-stream"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.