Create assets - Precisely Data Integrity Suite

Data Integrity Suite APIs

Product
Data_Integrity
Spatial_Analytics
Data_Enrichment
geo_addressing_1
Services
Spatial Analytics
Data Enrichment
Geo Addressing
ft:title
Data Integrity Suite APIs
ft:locale
en-US
PublicationType
pt_developer
copyrightfirst
2023
copyrightlast
2026

Create new assets.

HTTP

POST https://hostname/v2/catalog/assets

Request

Request headers

Key Required Type Description
x-batch No boolean

Required only for batch processing.

Set this key to true to enable asynchronous batch processing. When true, queues the operation for background execution and returns immediately with 202 Accepted. Use for bulk operations (>100 items) or when immediate response is not required. Batch jobs are processed via BullMQ with retry logic.

Set this to true for asynchronous processing of more than 250 assets, or set x-force-batch to true for smaller loads.

x-batch-size No integer

Number of items to process per batch chunk. Controls memory usage and throughput. Larger batches (1000-5000) improve throughput but increase memory usage. Smaller batches (100-500) reduce memory footprint but take longer. Maximum: 5000.

x-batch-callback-url No string Webhook URL to receive batch completion notification. Server sends POST request with execution results when batch finishes. Useful for long-running operations where client needs async notification. Must be publicly accessible HTTPS endpoint.
externalExecutionId No string Client-provided unique identifier for tracking external batch operations. Allows correlation between client systems and data catalog batch jobs. Useful for audit trails and reconciliation. Must be unique per batch operation.

Request body properties

The request body contains an array of oobjects that define new assets.

Ancestors Property Required Type Description
  parentId No string

The parent ID is required when the assetType defines a parent, for example when the schema requires a database parent, or a table requires a schema parent.

  • Format: objectId
  • Pattern: ^[a-fA-F\d]{24}$

Omit the parent ID when the assetType has no parent type, such as occurs for root-level assets like a database or business term.

  assetTypeId Yes string
  • Format: objectId
  • Pattern: ^[a-fA-F\d]{24}$
  xref No array

An array of cross-reference identifiers used for idempotent upserts.

  • Format: array<string> ≥ 1 items
  • Pattern: [1, 1024] character

This array is auto generated if omitted as a random 6-byte hex string (such as, a3f7c2891de). For recurring ingestion, supply a SHA-256 hash of the asset's full path (source::database::schema::table) to enable updates instead of duplicates.

  scoresValues No  

Data quality/governance scores (0–1 range). Keys are Quality, Governance, Trust. This property is populated by automated profiling or quality jobs.

  scoresUpdated No  

ISO timestamps for when each score was last calculated. Keys much match the entries in scoresValues.

  counter No object

Numeric counter for aggregate statistics (row count, file size, and so forth).

counter value Yes number

Numeric value. Maximum value is 2,147,483,647.

counter valueWithPrefix No string

A human readable string, such as 4.25M rows.

  color No string  
  properties No array
  • Format: array<object>
  tags No array  
  semanticType No object  
semanticType qualifier Yes string  
  triggersWorkflow No boolean

This property may be set to true or false. The default is true.

Request body examples

A single asset demonstrating selected fields.

[
  {
    "parentId": "4efeaCfe9FC55abcCB5Da0fb",
    "assetTypeId": "d3AbCeBE2a1F760f22FCc78F",
    "counter": {
      "value": 32630529.364159733,
      "valueWithPrefix": "exercitation"
    },
    "color": "Sample color",
    "properties": [
      {
        "name": "Name",
        "value": "Test_2"
      }
    ],
    "xref": [
      "ON4Hr2P9gsV0R6akRx2Hsw=="
    ],
    "tags": []
  }
]

A single asset demonstrating every available field.

[
  {
    // Required
    "assetTypeId": "653b82b54264fef0f9a52a06",
    
    // Conditional (required if assetType has a parent type)
    "parentId": "64fc3a2a1b9e4c0012d34abc",
    
    // Optional — cross-reference identifiers for idempotent upserts
    "xref": [
      "salesforce:Account:001Dn000007gMEn",
      "crm::customers::v2"
    ],
    
    // Optional — property values
    "properties": [
      { "name": "Name", "value": "Customers" },
      { "name": "Description", "value": "Master customer entity" },
      { "name": "Owner", "value": "Data Engineering" }
    ],
    
    // Optional — tag assignments
    "tags": [
      { "tagTypeId": "7b3f210a9c4e5d8b1f2a3c6e", "value": "PII" },
      { "tagTypeId": "9c4d321b8e5f6a9c2b3d4e7f", "value": "Certified" }
    ],
    
    // Optional — semantic type qualifier
    "semanticType": {
      "qualifier": "PersonName"
    },
    
    // Optional — quality/governance scores (0-1 range)
    "scoresValues": {
      "Quality": 0.94,
      "Governance": 0.78,
      "Trust": 0.89
    },
    
    // Optional — score calculation timestamps
    "scoresUpdated": {
      "Quality": "2026-03-06T02:00:00.000Z",
      "Governance": "2026-02-20T14:30:00.000Z",
      "Trust": "2026-02-28T09:15:00.000Z"
    },
    
    // Optional — aggregate counter (row count, file size, etc)
    "counter": {
      "value": 4250000,
      "valueWithPrefix": "4.25M rows"
    },
    
    // Optional — UI color
    "color": "#3A86FF",
    
    // Optional — whether to trigger workflows (defaults to true)
    "triggersWorkflow": true
  }
]

The Database assetType has no parent type, so the parentId is omitted. Set the x-batch key in the request header to true.

[
  {
    "assetTypeId": "653b82b54264fef0f9a52a06",
    "properties": [
      { "name": "Name", "value": "Production Database" }
    ]
    // xref omitted — backend will auto-generate a random hex string
    // Not recommended for recurring ingestion (will create duplicates)
  },
  {
    "assetTypeId": "653b82b54264fef0f9a52a06",
    "properties": [
      { "name": "Name", "value": "Staging Database" }
    ]
  }
]

Three table assets with stable xrefs. Resubmitting this payload will update the existing assets instead of creating duplicates. Set the x-batch key in the request header to true.

[
  {
    "assetTypeId": "653b82b54264fef0f9a52a06",
    // xref: SHA-256 hash or namespace-based stable identifier for idempotent upsert
    "xref": ["snowflake::PROD_DB::PUBLIC::CUSTOMERS"],
    "properties": [
      { "name": "Name", "value": "CUSTOMERS" },
      { "name": "Description", "value": "Master customer table" }
    ]
  },
  {
    "assetTypeId": "653b82b54264fef0f9a52a06",
    "xref": ["snowflake::PROD_DB::PUBLIC::ORDERS"],
    "properties": [
      { "name": "Name", "value": "ORDERS" },
      { "name": "Description", "value": "Transactional orders" }
    ]
  },
  {
    "assetTypeId": "653b82b54264fef0f9a52a06",
    "xref": ["snowflake::PROD_DB::PUBLIC::PRODUCTS"],
    "properties": [
      { "name": "Name", "value": "PRODUCTS" },
      { "name": "Description", "value": "Product catalogue" }
    ]
  }
]

One Database (root) followed by two Schema children. Schema assetType defines the database as its parent type, so parentId is required and points to the parent database asset. Set the x-batch key in the request header to true.

Note: If the parent asset does not yet exist, submit it in a prior request, get its id from the response, then use that id as parentId in the child payload.
[
  {
    // Parent asset (Database) — no parentId because Database has no parent type
    "assetTypeId": "653b82b54264fef0f9a52a06",
    "xref": ["prod-db"],
    "properties": [
      { "name": "Name", "value": "Production DB" }
    ]
  },
  {
    // Child asset (Schema) — parentId REQUIRED because Schema assetType has a parent
    "assetTypeId": "7a4c91e03b72dfa1c8b03d14",
    "parentId": "64fc3a2a1b9e4c0012d34abc",  // ObjectId of the parent Database asset
    "xref": ["prod-db::public"],
    "properties": [
      { "name": "Name", "value": "public" }
    ]
  },
  {
    "assetTypeId": "7a4c91e03b72dfa1c8b03d14",
    "parentId": "64fc3a2a1b9e4c0012d34abc",  // Same parent Database
    "xref": ["prod-db::audit"],
    "properties": [
      { "name": "Name", "value": "audit" }
    ]
  }
]

Add assets from an automated quality/profiling job that computes scores and row counts. Set the x-batch key in the request header to true.

[
  {
    "assetTypeId": "653b82b54264fef0f9a52a06",
    "xref": ["dbt::prod::customers"],
    "properties": [
      { "name": "Name", "value": "customers" },
      { "name": "Schema", "value": "public" }
    ],
    
    // scoresValues: Data quality/governance scores (0-1 range)
    "scoresValues": {
      "Quality": 0.96,      // 96% quality score
      "Governance": 0.82,   // 82% governance compliance
      "Trust": 0.91         // 91% trust/confidence
    },
    
    // scoresUpdated: When each score was last calculated
    "scoresUpdated": {
      "Quality": "2026-03-06T02:00:00.000Z",
      "Governance": "2026-03-05T18:00:00.000Z",
      "Trust": "2026-03-06T02:00:00.000Z"
    },
    
    // counter: Row count or other aggregate metric
    "counter": {
      "value": 4250000,                   // Raw count
      "valueWithPrefix": "4.25M rows"     // Human-readable display string
    }
  },
  {
    "assetTypeId": "653b82b54264fef0f9a52a06",
    "xref": ["dbt::prod::orders"],
    "properties": [
      { "name": "Name", "value": "orders" }
    ],
    "scoresValues": {
      "Quality": 0.88,
      "Governance": 0.70,
      "Trust": 0.83
    },
    "scoresUpdated": {
      "Quality": "2026-03-06T02:00:00.000Z",
      "Governance": "2026-03-05T18:00:00.000Z",
      "Trust": "2026-03-06T02:00:00.000Z"
    },
    "counter": {
      "value": 18920000,
      "valueWithPrefix": "18.9M rows"
    }
  }
]

Response

The result for this method is returned in the response body.

Response body properties

Ancestors Property Required Type Description
  data   array(object) Data envelope for response.
data id No string
  • Format: objectId
  • Pattern: ^[a-fA-F\d]{24}$
data parentId No string
  • Format: objectId
  • Pattern: ^[a-fA-F\d]{24}$
data assetTypeId No string
  • Format: objectId
  • Pattern: ^[a-fA-F\d]{24}$
data xref No array  
data scoresValues No    
data scoresUpdated No    
data counter No object  
data/counter value Yes number  
data/counter valueWithPrefix No string  
data color No string  
data class No string

This property is an enumerated string type (enum) set to one of these values:

  • Business
  • Model
  • Policy
  • Reference
  • Technical
  • Rule
  • Diagram
  • Generic
  • Configuration
  • Domain
  • Internal
data properties No array  
data tags No array  
data displayValue No string
  • Maximum length: 100 characters
data assetTypeName No string  
data path No array  
data assetGroups No array  
data semanticType No object  
data/semanticType qualifier Yes string  
data/semanticType overridden No boolean

This property may be set to true or false.

data/semanticType updatedAt No string
  • Format: date-time
data createdBy No string  
data createdAt No string
  • Format: date-time
data updatedBy No string  
data updatedAt No string
  • Format: date-time
data metrics No array  
data assetTypeXrefs No array  
data isPlaceholder No boolean

This property may be set to true or false.

data keyPath No string  
data level No number  
data displayPath No string  
data location No string  
data isLeaf No boolean

This property may be set to true or false.

Response body examples

Example status code responses for this method are shown here. To view the response schemas, you can download the Data Catalog APIs Open API Specification from the Precisely Developer Portal..

Examples
{
  "data": [
     {
        "id": "fEdE078426900844f0944Ecc",
        "assetTypeId": "d3AbCeBE2a1F760f22FCc78F",
        "class": "Technical",
        "createdBy": "nostrud",
        "createdAt": "1999-03-25T00:16:12.949Z",
        "updatedBy": "Sample User",
        "updatedAt": "1979-04-22T15:43:26.664Z",
        "parentId": "4efeaCfe9FC55abcCB5Da0fb",
        "xref": [
          Sample xref
        ]
        "color": "Sample color",
        "counter": {
          "value": "32630529.364159733",
          "valueWithPrefix": "exercitation"
        }
        "metrics": [
          {
            "metricTypeId": "870DDB0EbaCFfC4cca56DbBe",
            "value": "98854747.6530267", 
            "lastUpdatedOn": "1974-02-21T23:02:09.797Z"
          }
        ]
        "assetTypeXrefs": "Sample assetTypeXref 1",
        "assetTypeXrefs": "Sample assetTypeXref 2",
        "isPlaceholder": "false",
        "keyPath": "Sample keyPath",
        "level": "-54930120.069365576"
     }
  ]
  "links": {
    "self": "https://api.cloud.precisely.com/assets"
  }
}
{
  "statusCode": 400,
  "error": "Bad Request",
  "message": "Bad Request"
}
{
  "statusCode": 401,
  "error": "Unauthorized",
  "message": "Authentication required"
}
{
  "statusCode": 404,
  "error": "Not Found",
  "message": "Resource not found"
}
{
  "statusCode": 429,
  "error": "Too Many Requests",
  "message": "Rate limit exceeded"
}
{
  "statusCode": 500,
  "error": "Internal Server Error",
  "message": "An unexpected error occurred"
}
{
  "statusCode": 503,
  "error": "Service Unavailable",
  "message": "Service temporarily unavailable"
}
{
  "statusCode": 504,
  "error": "Gateway Timeout",
  "message": "Request timeout"
}