Search
26 routes. Paths are relative to https://api.intersink.com/v1.
- GET/search/channels/{channelId}/alertsLatency and refusal alerts for the channel's search (?days=, at most 90)
- GET/search/channels/{channelId}/indexesPlatform content indexed for the channel and the channel's own indexes, with document counts
- GET/search/channels/{channelId}/overviewSearch status, quotas, storage and this month's usage (channel managers)
- PUT/search/channels/{channelId}/quotaSet a channel's search quotas (platform only)
- GET/search/channels/{channelId}/slow-logThe channel's slowest recent search requests, newest first (?limit=, at most 200; what was searched for is not kept)
- GET/search/channels/{channelId}/synonymsThe channel's synonym rules
- POST/search/channels/{channelId}/synonymsAdd a rule: { kind: equivalent, terms } or { kind: oneway, inputs, terms }
- PATCH/search/channels/{channelId}/synonyms/{id}Change a rule (the same body as adding one, plus enabled)
- DELETE/search/channels/{channelId}/synonyms/{id}Delete a rule
- GET/search/channels/{channelId}/synonyms/previewWhat the channel's synonym rules turn a query into (?q=)
- GET/search/channels/{channelId}/usageDaily searches, suggests, writes, bulk bytes, refusals, slow requests and p50/p95 latency (?days=, at most 90)
- POST/search/v1/bulkBulk ingest: OpenSearch NDJSON (application/x-ndjson) with logical _index names
- GET/search/v1/healthThe search engine as this channel sees it: { status: green | yellow | red }
- GET/search/v1/indicesThe channel's own indexes with document counts and sizes
- GET/search/v1/indices/{name}One index: { name, exists, docs, size_bytes, schema_version, migration? }
- PUT/search/v1/indices/{name}Create or change an index from { schema_version, settings, mappings, sizing, access? }
- DELETE/search/v1/indices/{name}Delete an index (unreachable at once, kept 7 days, then dropped)
- POST/search/v1/indices/{name}/countCount documents matching { query? }
- POST/search/v1/indices/{name}/delete_by_queryDelete documents matching filter clauses (term, terms, range, ids, exists, bool); big deletes answer { task }
- POST/search/v1/indices/{name}/mgetDocuments by id: { ids: [...] } (at most 1000)
- POST/search/v1/indices/{name}/refreshMake recent writes searchable now (at most once a second)
- POST/search/v1/indices/{name}/searchSearch with a checked subset of the OpenSearch query DSL; answer: OpenSearch's search response
- POST/search/v1/indices/{name}/suggestCompletion suggester: { suggest: { s: { prefix, completion: { field, size ≤ 20 } } } }
- GET/search/v1/slowlogThis channel's slowest recent requests (?limit=, at most 200), newest first
- GET/search/v1/tasks/{id}Progress of a big delete_by_query
- GET/search/v1/usageThis channel's search storage, documents, requests this month, latency (last 24 hours), alerts and quotas
Latency and refusal alerts for the channel's search (?days=, at most 90)
GET/search/channels/{channelId}/alerts
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| daysrequired | string, query |
Response
200. The payload in data is not described in the spec yet.
Platform content indexed for the channel and the channel's own indexes, with document counts
GET/search/channels/{channelId}/indexes
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Search status, quotas, storage and this month's usage (channel managers)
GET/search/channels/{channelId}/overview
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Set a channel's search quotas (platform only)
PUT/search/channels/{channelId}/quota
Needs a signed-in user (Bearer token or access_token cookie).
storage_gb, docs, indices, qps, suggest_qps, concurrent, bulk_mb_per_min, bulk_actions_per_sec, slow_ms, enabled, note. null returns a value to the platform default.
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
200. The payload in data is of type object.
The channel's slowest recent search requests, newest first (?limit=, at most 200; what was searched for is not kept)
GET/search/channels/{channelId}/slow-log
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| limitrequired | string, query |
Response
200. The payload in data is not described in the spec yet.
The channel's synonym rules
GET/search/channels/{channelId}/synonyms
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Add a rule: { kind: equivalent, terms } or { kind: oneway, inputs, terms }
POST/search/channels/{channelId}/synonyms
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
201. The payload in data is not described in the spec yet.
Change a rule (the same body as adding one, plus enabled)
PATCH/search/channels/{channelId}/synonyms/{id}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Delete a rule
DELETE/search/channels/{channelId}/synonyms/{id}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
What the channel's synonym rules turn a query into (?q=)
GET/search/channels/{channelId}/synonyms/preview
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| qrequired | string, query |
Response
200. The payload in data is not described in the spec yet.
Daily searches, suggests, writes, bulk bytes, refusals, slow requests and p50/p95 latency (?days=, at most 90)
GET/search/channels/{channelId}/usage
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| daysrequired | string, query |
Response
200. The payload in data is not described in the spec yet.
Bulk ingest: OpenSearch NDJSON (application/x-ndjson) with logical _index names
POST/search/v1/bulk
Needs a signed-in user (Bearer token or access_token cookie).
index, create, update (doc, doc_as_upsert; no scripts) and delete. Up to 8 MB and 2000 actions. Answer: OpenSearch's bulk response.
Response
200. The payload in data is not described in the spec yet.
The search engine as this channel sees it: { status: green | yellow | red }
GET/search/v1/health
Public: no sign-in needed.
At most 10 calls a second per channel (then 429); the status is at most 2 seconds old.
Response
200. The payload in data is not described in the spec yet.
The channel's own indexes with document counts and sizes
GET/search/v1/indices
Public: no sign-in needed.
Response
200. The payload in data is not described in the spec yet.
One index: { name, exists, docs, size_bytes, schema_version, migration? }
GET/search/v1/indices/{name}
Public: no sign-in needed.
Parameters
| Name | Type | Description |
|---|---|---|
| namerequired | string, path |
Response
200. The payload in data is of type object.
Create or change an index from { schema_version, settings, mappings, sizing, access? }
PUT/search/v1/indices/{name}
Needs a signed-in user (Bearer token or access_token cookie).
Same schema_version: additive (new fields only). Higher: a new generation is built and reindexed in the background, then swapped in atomically (progress in migration). Shards and replicas are the platform's choice from sizing.
Parameters
| Name | Type | Description |
|---|---|---|
| namerequired | string, path |
Response
200. The payload in data is of type object.
Delete an index (unreachable at once, kept 7 days, then dropped)
DELETE/search/v1/indices/{name}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| namerequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Count documents matching { query? }
POST/search/v1/indices/{name}/count
Public: no sign-in needed.
Parameters
| Name | Type | Description |
|---|---|---|
| namerequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Delete documents matching filter clauses (term, terms, range, ids, exists, bool); big deletes answer { task }
POST/search/v1/indices/{name}/delete_by_query
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| namerequired | string, path |
Response
200. The payload in data is of type object.
Documents by id: { ids: [...] } (at most 1000)
POST/search/v1/indices/{name}/mget
Public: no sign-in needed.
Parameters
| Name | Type | Description |
|---|---|---|
| namerequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Make recent writes searchable now (at most once a second)
POST/search/v1/indices/{name}/refresh
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| namerequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Search with a checked subset of the OpenSearch query DSL; answer: OpenSearch's search response
POST/search/v1/indices/{name}/search
Public: no sign-in needed.
No scripts, regexp, leading wildcards or query_string; from+size ≤ max_result_window, search_after for deep paging; aggregations bounded. See docs/search.md.
Parameters
| Name | Type | Description |
|---|---|---|
| namerequired | string, path |
Response
200. The payload in data is of type object.
Completion suggester: { suggest: { s: { prefix, completion: { field, size ≤ 20 } } } }
POST/search/v1/indices/{name}/suggest
Public: no sign-in needed.
Parameters
| Name | Type | Description |
|---|---|---|
| namerequired | string, path |
Response
200. The payload in data is of type object.
This channel's slowest recent requests (?limit=, at most 200), newest first
GET/search/v1/slowlog
Needs a signed-in user (Bearer token or access_token cookie).
Requests at or above the channel's slow threshold (quotas.slowMs). The query is kept with what was searched for taken out: field and clause names stay, typed values become "?".
Parameters
| Name | Type | Description |
|---|---|---|
| limitrequired | string, query |
Response
200. The payload in data is not described in the spec yet.
Progress of a big delete_by_query
GET/search/v1/tasks/{id}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
This channel's search storage, documents, requests this month, latency (last 24 hours), alerts and quotas
GET/search/v1/usage
Needs a signed-in user (Bearer token or access_token cookie).
latency.search and latency.suggest give count, p50_ms, p95_ms and p99_ms of end-to-end time through the API; alerts lists the last 7 days.
Response
200. The payload in data is not described in the spec yet.