Search Functions

Invoke a Search Function

POST /v1/search-functions/{functionId}/invoke

Description

Search Functions return nearest-neighbor Samples instead of a Label. Provide either data (raw input) or an existing sampleId as the query.

Path parameters

NameTypeRequiredDescription
functionId string yes

Query parameters

NameTypeRequiredDescription
sampleCount integer no

includeData boolean no

Whether to include the sample data in the response. Defaults to true

Request body

Content type: application/json.

FieldTypeRequiredDescription
sampleId string nullable no

data IFunctionInput no

Responses

StatusDescriptionBody
200 Invoke succeeded array<object>

Response body fields (200, array items):

FieldTypeRequiredDescription
sampleId string nullable no

distance number no

externalId string nullable no

data IFunctionInput no

Code samples

curl
curl -X POST \
  -H 'Authorization: Bearer <accessToken>' \
  -H 'Content-Type: application/json' \
  -d '{
  "sampleId": "<sampleId>",
  "data": {
    "size": 0
  }
}' \
  'https://www.nyckel.com/v1/search-functions/<functionId>/invoke'
Python
import requests

url = 'https://www.nyckel.com/v1/search-functions/<functionId>/invoke'
headers = {
    'Authorization': 'Bearer <accessToken>',
    'Content-Type': 'application/json',
}

body = """{
  "sampleId": "<sampleId>",
  "data": {
    "size": 0
  }
}"""
response = requests.post(url, headers=headers, data=body)
print(response.json())
JavaScript
fetch('https://www.nyckel.com/v1/search-functions/<functionId>/invoke', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer <accessToken>',
    'Content-Type': 'application/json',
  },
  body: `{
  "sampleId": "<sampleId>",
  "data": {
    "size": 0
  }
}`,
})
  .then(response => response.json())
  .then(data => console.log(data));
PHP
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://www.nyckel.com/v1/search-functions/<functionId>/invoke');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');

$headers = array(
    'Authorization: Bearer <accessToken>',
    'Content-Type: application/json',
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$body = <<<'NYCKEL_BODY'
{
  "sampleId": "<sampleId>",
  "data": {
    "size": 0
  }
}
NYCKEL_BODY;
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);

$response = curl_exec($ch);
curl_close($ch);
echo $response;