Download OpenAPI specification:Download
VisionLabs Luna Sender API.
OpenAPI specification is the only valid document providing up-to-date information about the service API.
The specification can be used:
All the documents and code generated using this specification can include inaccuracies and should be carefully checked.
OpenAPI specification can be received using the "/docs/spec" resource. The "Accept" header should be set to "application/x-yaml".
get versions of services
| Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4...   Example:  1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a external request id. Helps to uniquely identify messages that correspond to particular requests, in system logs. If it was not set, system will set it in default format is "{timestamp},{uuid}". It will be returned with response.  | 
{- "api": 1,
 - "major": 0,
 - "minor": 0,
 - "patch": 0
 
}| sources | string   Example:  sources=cam1,cam2 Comma-separated list of sources. Each event from result will contain one of the given sources.  | ||||||||||||||||
| matching_candidates_labels | string   Example:  matching_candidates_labels=matching_label Matching candidates labels. Each event from result will contain one or more given labels.  | ||||||||||||||||
| object_similarity__gte | number   Example:  object_similarity__gte=0.5 Similar object similarity lower included bound (boudary for top matching candidate).  | ||||||||||||||||
| object_similarity__lt | number   Example:  object_similarity__lt=0.5 Top similar object similarity upper excluded bound (boudary for top matching candidate).  | ||||||||||||||||
| age__lt | integer   Example:  age__lt=50 age upper excluded bound.  | ||||||||||||||||
| age__gte | integer   Example:  age__gte=50 age lower included bound.  | ||||||||||||||||
| gender | integer  Enum: 0 1    Example:  gender=1 Gender. 1 - male, 0 - female.  | ||||||||||||||||
| ethnic_groups | string <list of integer (1, 2, 3, 4)>    Example:  ethnic_groups=1,2 comma-separated list of dominant ethnic group. Each event from result will contain one of the given ethnic groups. 
  | ||||||||||||||||
| liveness | string <list of integer (1, 2, 3)>    Example:  liveness=0,2 comma-separated list of dominant liveness. Each event from result will contain one of the given liveness state. 
  | ||||||||||||||||
| masks | string <list of integer (1, 2, 3)>    Example:  masks=1,2,3 comma-separated list of predominant masks. Each event from result will contain one of the given mask state. 
  | ||||||||||||||||
| emotions | string <list of integer (1, 2, 3, 4, 5, 6, 7)>    Example:  emotions=1,2,3 comma-separated list of predominant emotions. Each event from result will contain one of the given emotions. 
  | ||||||||||||||||
| tags | Array of strings (tag)   >= 0 items    Example:  tags=tag_1,tag_2 A comma-separated list of tags. Each event from result will contain all of the given tags. Each tag can be at most 36 characters.  | ||||||||||||||||
| cities | string   Example:  cities=moscow,New-York Comma-separated list of cities. Each event from result will contain one of the given cities in location.  | ||||||||||||||||
| areas | string   Example:  areas=CAO,central park Comma-separated list of areas. Each event from result will contain one of the given areas in location.  | ||||||||||||||||
| districts | string   Example:  districts=mitino,central park Comma-separated list of districts. Each event from result will contain one of the given districts in location.  | ||||||||||||||||
| streets | string   Example:  streets=arbat,schepkina Comma-separated list of streets. Each event from result will contain one of the given streets in location.  | ||||||||||||||||
| house_numbers | string   Example:  house_numbers=1,1/2str3 Comma-separated list of house numbers. Each event from result will contain one of the given house numbers in location.  | ||||||||||||||||
| handler_ids | string <list of uuid.>    Example:  handler_ids=8950722f-3fd4-4223-b48f-03f95f0e8dfb,346a5645-ec89-4806-820a-dbcb6e0dc38 a list of comma-separated handler ids.  | 
| Luna-Account-Id  required   | string <uuid> ^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4...   Example:  8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a account id. Specify an account id to be noticed about events in the account.  | 
| Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4...   Example:  1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a external request id. Helps to uniquely identify messages that correspond to particular requests, in system logs. If it was not set, system will set it in default format is "{timestamp},{uuid}". It will be returned with response.  | 
from luna3.sender.wsclient import LunaWSClient senderAPI = LunaWSClient(origin="http://127.0.0.1:5080", api=2, accountId="8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a") # Note filtering by gender! with senderAPI.connect(gender=1) as ws: for _ in range(3): resp = ws.recv() print(resp)
{- "event": {
- "face_attributes": {
- "attribute_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
 - "basic_attributes": {
- "age": 50,
 - "gender": 0,
 - "ethnicities": {
- "estimations": {
- "african_american": 1.92238889737406e-12,
 - "asian": 0.954671621322632,
 - "caucasian": 0.045328326523304,
 - "indian": 7.65100649502415e-10
 
}, - "predominant_ethnicity": "asian"
 
} 
}, - "score": 0,
 - "url": "/0/attributes/24d405ce-bc56-4bf7-98e1-bdc962b4cf34",
 - "samples": [
- "a3e8716f-70dc-42ad-8428-7a552e800a37"
 
] 
}, - "body_attributes": {
- "score": 0,
 - "samples": [
- "a3e8716f-70dc-42ad-8428-7a552e800a37"
 
] 
}, - "source": "3rd Avenue",
 - "tags": [
- "tag1",
 - "tag2"
 
], - "event_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
 - "url": "/0/events/24d405ce-bc56-4bf7-98e1-bdc962b4cf34",
 - "matches": [
- {
- "label": "good guys",
 - "candidates": [
- {
- "face": {
- "face_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c6",
 - "external_id": "2xQ2gprbMUePw1s9gw9fvA==",
 - "account_id": "904e635f-3a47-4832-b4d6-d2d72ba78451",
 - "user_data": "fox1991",
 - "create_time": "2021-08-18T02:43:37.196724+03:00",
 - "lists": [
- "429b0e78-4616-426a-b57f-02baa72d638d",
 - "6d037c33-31ec-4d73-b3b3-ec80b09446c2"
 
], - "event_id": "f9687459-986b-406d-9c1f-0d6289be5256"
 
}, - "similarity": 0.5
 
} 
] 
}, - {
- "label": "bad guys",
 - "candidates": [
- {
- "event": {
- "event_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c7",
 - "external_id": "2xQ2gprbMUePw1s9gw9fvA==",
 - "user_data": "fox1991",
 - "create_time": "2018-08-11T09:11:41.674Z",
 - "handler_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c7",
 - "source": "426542d6-5509-4e5b-8a01-e2abd5c0a8c7"
 
}, - "similarity": 0.3
 
} 
] 
} 
], - "external_id": "external id",
 - "user_data": "some event",
 - "location": {
- "city": "Moscow",
 - "area": "CAO",
 - "district": "mitino",
 - "street": "schepkina",
 - "house_number": "1/2str3",
 - "geo_position": {
- "longitude": 36.616,
 - "latitude": 55.752
 
} 
}, - "detections": [
- {
- "filename": "penelope.jpeg",
 - "samples": {
- "face": {
- "sample_id": "b668c4a5-2191-476e-a261-3b4f9ce2e25e",
 - "detection": {
- "attributes": {
- "liveness": {
- "prediction": "spoof",
 - "estimations": {
- "score": 0.5108324766,
 - "quality": 0.7190976739
 
} 
}, - "mouth_attributes": {
- "occluded": 0,
 - "score": 0.999999165534973,
 - "smile": 0
 
}, - "emotions": {
- "estimations": {
- "anger": 0.00894705578684807,
 - "disgust": 0.00000965219624049496,
 - "fear": 0.00121302821207792,
 - "happiness": 0.00129503419157118,
 - "neutral": 0.986027479171753,
 - "sadness": 0.00187553185969591,
 - "surprise": 0.000632198702078313
 
}, - "predominant_emotion": "neutral"
 
}, - "mask": {
- "estimations": {
- "medical_mask": 0.7108324766,
 - "missing": 0.0700698048,
 - "occluded": 0.2190976739
 
}, - "predominant_mask": "medical_mask"
 
}, - "head_pose": {
- "pitch": 18.6827487945557,
 - "roll": -10.3542232513428,
 - "yaw": 15.4102487564087
 
}, - "gaze": {
- "pitch": 10.7074518203735,
 - "yaw": -14.6733160018921
 
} 
}, - "quality": {
- "light": 0.87,
 - "dark": 0.13,
 - "saturation": 0.93,
 - "blurriness": 0.2
 
}, - "rect": {
- "height": 240,
 - "width": 209,
 - "x": 170,
 - "y": 198
 
}, - "landmarks5": [
- [
- 23,
 - 72
 
], - [
- 82,
 - 71
 
], - [
- 42,
 - 114
 
], - [
- 29,
 - 140
 
], - [
- 79,
 - 138
 
] 
], - "landmarks68": [
- [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
], - [
- 12,
 - 13
 
] 
] 
}, - "url": "/0/samples/a16c8b6c-2818-4bae-9fd5-65acc8d4bb5c"
 
}, - "body": {
- "sample_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
 - "detection": {
- "rect": {
- "height": 240,
 - "width": 209,
 - "x": 170,
 - "y": 198
 
} 
}, - "url": "/0/samples/a16c8b6c-2818-4bae-9fd5-65acc8d4bb5c"
 
} 
}, - "detect_time": "2018-08-11T09:11:41.674Z",
 - "image_origin": "/6/images/b668c4a5-2191-476e-a261-3b4f9ce2e25e"
 
} 
], - "aggregate_estimations": {
- "face": {
- "attributes": {
- "liveness": {
- "prediction": "spoof",
 - "estimations": {
- "quality": 0.2,
 - "score": 0.7
 
} 
}, - "mask": {
- "estimations": {
- "medical_mask": 0,
 - "missing": 0,
 - "occluded": 0
 
}, - "predominant_mask": "medical_mask"
 
}, - "emotions": {
- "estimations": {
- "anger": 0,
 - "disgust": 0,
 - "fear": 0,
 - "happiness": 0,
 - "neutral": 0,
 - "sadness": 0,
 - "surprise": 0
 
}, - "predominant_emotion": "surprise"
 
} 
} 
} 
}, - "track_id": "useful_track_id_number_1",
 - "face": {
- "external_id": "external id",
 - "face_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
 - "url": "string",
 - "lists": [
- "557d54ec-29ad-4f3c-93b4-c9092ef12515"
 
], - "user_data": "face of person",
 - "avatar": "",
 - "event_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515"
 
} 
}, - "handler_id": "557d54ec-29ad-4f3c-93b4-c9092ef12515",
 - "event-create-time": "2019-08-24T14:15:22Z",
 - "event-end-time": "2019-08-24T14:15:22Z",
 - "Luna-Request-id": "1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a"
 
}Get service OpenApi documentation. If Accept request header is of type application/x-yaml,
returns documentation in yaml format or returns html documentation, if Accept-Type is text/html
| Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4...   Example:  1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a external request id. Helps to uniquely identify messages that correspond to particular requests, in system logs. If it was not set, system will set it in default format is "{timestamp},{uuid}". It will be returned with response.  | 
| Accept  required   | string (accept_docs_handler)   Enum: "application/x-yaml" "text/html"   acceptable type of receiving data  | 
{- "error_code": 12024,
 - "detail": "Bad/incomplete input data",
 - "desc": "Unsupported media type"
 
}Get sphinx documentation - Development Manual. After the request you will be redirected to the page /docs/dev/index.html
| Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4...   Example:  1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a external request id. Helps to uniquely identify messages that correspond to particular requests, in system logs. If it was not set, system will set it in default format is "{timestamp},{uuid}". It will be returned with response.  | 
{- "error_code": 1,
 - "detail": "internal server error",
 - "desc": "internal server error"
 
}Get service configuration. Passwords and tokens will be hidden in the response.
| Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4...   Example:  1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a external request id. Helps to uniquely identify messages that correspond to particular requests, in system logs. If it was not set, system will set it in default format is "{timestamp},{uuid}". It will be returned with response.  | 
| Accept | string  Enum: "application/json" "text/plain"   acceptable type of receiving data  | 
{- "INFLUX_MONITORING": {
- "SEND_DATA_FOR_MONITORING": 0,
 - "VERSION": 2,
 - "ORGANIZATION": "ORGANIZATION_NAME",
 - "TOKEN": "********",
 - "BUCKET": "luna_monitoring",
 - "HOST": "127.0.0.1",
 - "PORT": 8086,
 - "USE_SSL": 0,
 - "FLUSHING_PERIOD": 1
 
} 
}get health of service
| Luna-Request-Id | string^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4...   Example:  1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a external request id. Helps to uniquely identify messages that correspond to particular requests, in system logs. If it was not set, system will set it in default format is "{timestamp},{uuid}". It will be returned with response.  | 
{- "execution_time": 0.123
 
}