Skip to main content
POST
/
search
/
bulk
/
index
Bulk index entities
curl --request POST \
  --url https://api.example.com/search/bulk/index \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
[
  {
    "organization_id": "<string>",
    "project_id": "<string>",
    "entity_type": "<string>",
    "entity_id": "<string>",
    "title": "<string>",
    "permission_id": "<string>",
    "subtitle": "<string>",
    "url": "<string>",
    "embedded_text": "<string>",
    "rank_boost": 1,
    "search_attributes": {},
    "extra_metadata": {}
  }
]
'
{
  "accepted": 123
}

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.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
organization_id
string
required

Organisation the entity belongs to

project_id
string
required

Project the entity belongs to

entity_type
string
required

Entity type (e.g. 'table', 'agent', 'project', 'artifact')

Examples:

"table"

"agent"

"project"

entity_id
string
required

Stable unique identifier for the entity within its domain service

Examples:

"mydb.analytics.public.users"

"agent-abc123"

title
string
required

Primary display label shown in search results

permission_id
string
required

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.

subtitle
string | null

Secondary label (e.g. schema.database, asset subtype)

url
string | null

Deep-link to the entity's detail page

embedded_text
string | null

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.

rank_boost
number
default:1

Per-entity weighting applied after RRF fusion. Default 1.0. Higher = more prominent.

Required range: 0.1 <= x <= 10
search_attributes
Search Attributes · object

Service-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*'.

extra_metadata
Extra Metadata · object

Lightweight structured data for display and equality filtering. Not BM25-indexed. Keep under 2KB. Example: {'fqn': 'mydb.public.users', 'is_pii_tagged': True}

Response

Successful Response

Response from POST /search/bulk/index and POST /search/bulk/delete.

accepted
integer
required

Number of operations accepted and queued for processing