Add or update one or more entities in the global search index. Each item is validated then published to the internal event stream — embedding generation and indexing happen asynchronously. Returns 202 with the count of accepted operations.
Required fields: organization_id, project_id, entity_type, entity_id, title, permission_id.
embedded_text: The text used for BM25 indexing and embedding generation. For catalog entities this should be an LLM-generated contextual summary (~1000 tokens). For other entities use title + description concatenation. The embedding vector is generated asynchronously by the search handler — publishing services do not need to compute it.
search_attributes: Flat dict[str, str] of fields that support structured query syntax on POST /search/global. All values must be strings. Standard keys for catalog entities:
name — entity name
service_name — data source name (supports service.name:X)
database_name — database name (supports database.name:X)
schema_name — schema name (supports databaseSchema.name:X)
tags — space-separated tag FQNs (supports tags.tagFQN:PII*)
is_pii_tagged — ‘true’/‘false’ (supports extension.is_pii_tagged:1)
is_sensitivity_tagged — ‘true’/‘false’
has_description — ‘true’/‘false’ (supports NOT _exists_:description)
has_owners — ‘true’/‘false’ (supports NOT _exists_:owners)
has_undescribed_columns — ‘true’/‘false’ (supports NOT _exists_:columns.description)
columns_tags_tagFQN — space-separated column tag FQNs (supports _exists_:columns.tags.tagFQN:PII*)
Documentation Index
Fetch the complete documentation index at: https://docs.emergence.ai/llms.txt
Use this file to discover all available pages before exploring further.
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Organisation the entity belongs to
Project the entity belongs to
Entity type (e.g. 'table', 'agent', 'project', 'artifact')
"table"
"agent"
"project"
Stable unique identifier for the entity within its domain service
"mydb.analytics.public.users"
"agent-abc123"
Primary display label shown in search results
OpenFGA object ID used as the permission boundary for this entity. Must match the object ID registered in OpenFGA for this resource. Examples: 'data:org:proj:mypostgres' for catalog entities, project UUID for projects.
Secondary label (e.g. schema.database, asset subtype)
Deep-link to the entity's detail page
Text to BM25-index and embed. For catalog entities: LLM-generated contextual summary. For others: title + description concatenation. The search handler generates the embedding vector from this field automatically.
Per-entity weighting applied after RRF fusion. Default 1.0. Higher = more prominent.
0.1 <= x <= 10Service-defined fields for BM25 keyword search beyond embedded_text. Supports both flat keys and nested objects — use whichever matches your domain naturally. Flat: {'status': 'active', 'owner': 'data-team'}. Nested (OpenMetadata-style): {'service': {'name': 'mysql'}, 'tags': [{'tagFQN': 'PII.Sensitive'}]}. Queried via dot notation: 'service.name:mysql' or 'tags.tagFQN:PII*'.
Lightweight structured data for display and equality filtering. Not BM25-indexed. Keep under 2KB. Example: {'fqn': 'mydb.public.users', 'is_pii_tagged': True}
Successful Response
Response from POST /search/bulk/index and POST /search/bulk/delete.
Number of operations accepted and queued for processing