Samples · operationId:PutAnnotation, DeleteAnnotation

Update a Sample

A Sample’s data is immutable — to change it, delete the Sample and create a new one. The only mutable property is its annotation (the ground-truth Label the Function learns from). Use these calls to set or clear that annotation.

There are two ways to call this operation:

Set annotation

operationId: PutAnnotation
PUT /v1/functions/{functionId}/samples/{sampleId}/annotation

Description

Sets (or replaces) the Sample’s annotation to the given Label. If the Sample already has an annotation, it is overwritten.

Path parameters

NameTypeRequiredDescription
functionId string yes

sampleId string yes

Request body

Content type: application/json. Body schema: Annotation.

Responses

StatusDescriptionBody
200 Success Annotation

Code samples

curl
curl -X PUT \
  -H 'Authorization: Bearer <accessToken>' \
  -H 'Content-Type: application/json' \
  -d '{
  "labelId": "<labelId>",
  "labelName": "spam"
}' \
  'https://www.nyckel.com/v1/functions/<functionId>/samples/<sampleId>/annotation'
Python
import requests

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

body = """{
  "labelId": "<labelId>",
  "labelName": "spam"
}"""
response = requests.put(url, headers=headers, data=body)
print(response.json())
JavaScript
fetch('https://www.nyckel.com/v1/functions/<functionId>/samples/<sampleId>/annotation', {
  method: 'PUT',
  headers: {
    'Authorization': 'Bearer <accessToken>',
    'Content-Type': 'application/json',
  },
  body: `{
  "labelId": "<labelId>",
  "labelName": "spam"
}`,
})
  .then(response => response.json())
  .then(data => console.log(data));
PHP
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://www.nyckel.com/v1/functions/<functionId>/samples/<sampleId>/annotation');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');

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

$body = <<<'NYCKEL_BODY'
{
  "labelId": "<labelId>",
  "labelName": "spam"
}
NYCKEL_BODY;
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);

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

Clear annotation

operationId: DeleteAnnotation
DELETE /v1/functions/{functionId}/samples/{sampleId}/annotation

Description

Removes the Sample’s annotation. The Sample itself remains in the Function but no longer contributes to training until it is annotated again.

Path parameters

NameTypeRequiredDescription
functionId string yes

sampleId string yes

Responses

StatusDescriptionBody
200 Success

Code samples

curl
curl -X DELETE \
  -H 'Authorization: Bearer <accessToken>' \
  'https://www.nyckel.com/v1/functions/<functionId>/samples/<sampleId>/annotation'
Python
import requests

url = 'https://www.nyckel.com/v1/functions/<functionId>/samples/<sampleId>/annotation'
headers = {
    'Authorization': 'Bearer <accessToken>',
}

response = requests.delete(url, headers=headers)
print(response.json())
JavaScript
fetch('https://www.nyckel.com/v1/functions/<functionId>/samples/<sampleId>/annotation', {
  method: 'DELETE',
  headers: {
    'Authorization': 'Bearer <accessToken>',
  },
})
  .then(response => response.json())
  .then(data => console.log(data));
PHP
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://www.nyckel.com/v1/functions/<functionId>/samples/<sampleId>/annotation');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');

$headers = array(
    'Authorization: Bearer <accessToken>',
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

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