openapi: 3.2.0 info: title: CityStreamâ„¢ Road Inventory Get the details of a specific road sign API description: "The CityStreamâ„¢ Road Inventory API provides a curated collection of road signs captured by the Nexar's network of cameras on the road. \n\n Before you start developing with the CityStreamâ„¢ Road Inventory API, make sure you have a valid Access Token." contact: name: Nexar url: https://getnexar.com/ email: api-support@getnexar.com license: name: 'License: Proprietary' version: '3.0' servers: - url: https://external.getnexar.com security: - Bearer: [] tags: - name: Get the details of a specific road sign paths: /api/roadinventory/v3/detections/single: post: tags: - Get the details of a specific road sign summary: Get further information for a specific road sign. description: Get a specific work zone based on a Nexar detection unique identifier. operationId: NexarPlatformAPI_GetDetection requestBody: content: application/json: schema: $ref: '#/components/schemas/nexarGetDetectionRequestParams' required: true responses: 200: description: A successful response. content: application/json: schema: $ref: '#/components/schemas/nexarGetDetectionResponse' 403: description: There's problem with your request Authorization (Insufficient permissions) content: application/json: schema: type: object 500: description: Something is broken. This is usually a temporary error due to high server load or a brief endpoint error. content: application/json: schema: type: object default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/runtimeError' security: - Bearer: [] x-codegen-request-body-name: body components: schemas: nexarOsmInfo: title: Open Street Map way identifier and metadata type: object properties: osm_node_id_from: type: string format: uint64 osm_node_id_to: type: string format: uint64 road_type: $ref: '#/components/schemas/nexarRoadType' example: osm_node_id_from: '5717622395' osm_node_id_to: '5717622398' road_type: SECONDARY nexarGetDetectionResponse: title: Detailed Road Sign Response type: object properties: road_item_detection: $ref: '#/components/schemas/nexarRoadItemDetection' display_images: title: Display Images type: array description: List of detection images for display items: $ref: '#/components/schemas/nexarDisplayImage' example: road_item_detection: item_id: id: 34.0516754064_-118.2455985276_MUTCD__R3_18__NO_U_AND_LEFT_TURN-021dcd01:1671408000000:RS road_sign: location: point: latitude: 34.05167540639005 longtitude: -118.24559852760652 altitude: 0.0 course: 128.38238435177138 detection_element: road_sign_type: MUTCD__R3_18__NO_U_AND_LEFT_TURN impact: {} evidence_frames: - frame_id: b2adbe07239b21dac7841b763468f756 image_ref: timelapses/8fe73f8b-8817-4313-8978-66079a1738a7.mov/frame_b2adbe07239b21dac7841b763468f756.jpg raw_gps_signal_of_camera: timestamp: 1667082338089 longitude: 34.051632166666664 latitude: -118.24554099999999 horizontal_accuracy: 10.0 speed: 8.179666666666668 course: 127.61937713623047 vertical_accuracy: 0.0 altitude: 0.0 producer: DEVICE gps_timestamp: 0 producer_timestamp: 0 location_of_camera: latitude: 34.051632166666664 longtitude: -118.24554099999999 altitude: 0.0 course_of_camera: 127.79973749554028 detection_locations: - location: latitude: 34.051632166666664 longtitude: -118.245541 altitude: 0.0 course: 127.79973749554028 bbox: x1: 182.0 y1: 175.0 x2: 208.0 y2: 210.0 tag: MUTCD__R3_18__NO_U_AND_LEFT_TURN confidence: 0.9404761904761905 h3_indices: h3_index_res10: '622229149845880831' h3_index_res11: '626732749473222655' h3_index_res12: '631236349100590079' osm_info: osm_node_id_from: 68214600 osm_node_id_to: 4014854508 road_type: SECONDARY earliest_evidence_millis: 1665066580000 status: EXISTING_DETECTION timezone_offset: -28800 created_at_millis: 1671408000000 display_images: - image_url: https://images-cdn-api.getnexar.com/aod/full/timelapses/8fe73f8b-8817-4313-8978-66079a1738a7.mov/frame_b2adbe07239b21dac7841b763468f756.jpg timestamp_millis: 1673017825538 width: 1280 height: 720 imageRef: timelapses/8fe73f8b-8817-4313-8978-66079a1738a7.mov/frame_b2adbe07239b21dac7841b763468f756.jpg frame_id: b2adbe07239b21dac7841b763468f756 - image_url: https://images-cdn-api.getnexar.com/aod/thumbnail/timelapses/8fe73f8b-8817-4313-8978-66079a1738a7.mov/frame_b2adbe07239b21dac7841b763468f756.jpg timestamp_millis: 1673017825538 width: 160 height: 90 imageRef: timelapses/8fe73f8b-8817-4313-8978-66079a1738a7.mov/frame_b2adbe07239b21dac7841b763468f756.jpg frame_id: b2adbe07239b21dac7841b763468f756 runtimeError: type: object properties: error: type: string code: type: integer format: int32 message: type: string details: type: array items: $ref: '#/components/schemas/protobufAny' nexarGeoPoint: title: GPS point enriched with Open Street Map node identifier type: object properties: point: $ref: '#/components/schemas/nexarGPSPoint' course: title: Nexar car heading value type: number format: double osm_info: $ref: '#/components/schemas/nexarOsmInfo' nexarRoadSignImpact: title: Filter predicate by road sign status (unsupported) type: object properties: damaged: title: Damaged type: boolean description: Is damaged logical nexarGPSPoint: title: A basic GPS point type: object properties: latitude: title: Latitude type: number description: GPS Point latitude format: double longtitude: title: Longiutde type: number description: GPS Point longitude format: double altitude: title: Altitude type: number description: GPS Point altitude format: double example: latitude: 40.7380653 longtitude: -73.9800164 nexarRoadItemEvidenceFrame: type: object properties: frame_id: title: Frame Id type: string description: Unique frame identifier image_ref: title: Image Ref type: string description: URL to the frame raw_gps_signal_of_camera: $ref: '#/components/schemas/nexarGPSSignal' location_of_camera: $ref: '#/components/schemas/nexarGPSPoint' course_of_camera: title: Course Of Camera type: number description: Course of the camera capturing the frame format: double detection_locations: title: Detection Locations type: array description: List of detection locations of a given type in this frame items: $ref: '#/components/schemas/nexarDetectionLocation' h3_indices: $ref: '#/components/schemas/nexarPointH3Indices' osm_info: $ref: '#/components/schemas/nexarOsmInfo' nexarPointH3Indices: title: Uber H3 index list type: object properties: h3_index_res0: title: Res0 type: string description: H3 resolution 0 identifier h3_index_res1: title: Res1 type: string description: H3 resolution 1 identifier h3_index_res2: title: Res2 type: string description: H3 resolution 2 identifier h3_index_res3: title: Res3 type: string description: H3 resolution 3 identifier h3_index_res4: title: Res4 type: string description: H3 resolution 4 identifier h3_index_res5: title: Res5 type: string description: H3 resolution 5 identifier h3_index_res6: title: Res6 type: string description: H3 resolution6 identifier h3_index_res7: title: Res7 type: string description: H3 resolution 7 identifier h3_index_res8: title: Res08 type: string description: H3 resolution 8 identifier h3_index_res9: title: Res9 type: string description: H3 resolution 9 identifier h3_index_res10: title: Res10 type: string description: H3 resolution 10 identifier h3_index_res11: title: Res11 type: string description: H3 resolution 11 identifier h3_index_res12: title: Res12 type: string description: H3 resolution 12 identifier h3_index_res13: title: Res13 type: string description: H3 resolution 13 identifier h3_index_res14: title: Res14 type: string description: H3 resolution 14 identifier h3_index_res15: title: Res15 type: string description: H3 resolution 15 identifier example: h3_index_res0: '577199624117288959' h3_index_res1: '581698825698148351' h3_index_res2: '586198577034821631' h3_index_res3: '590702107942715391' h3_index_res4: '595205690390216703' h3_index_res5: '599709288943845375' h3_index_res6: '604212888034344959' h3_index_res7: '608716487544274943' h3_index_res8: '613220087161159679' h3_index_res9: '617723686786695167' h3_index_res10: '622227286413836287' h3_index_res11: '626730886041182207' h3_index_res12: '631234485668551679' h3_index_res13: '635738085295921855' h3_index_res14: '640241684923292319' h3_index_res15: '644745284550662814' nexarGPSSignal: title: GPS measurement type: object properties: timestamp: title: Timestamp type: string description: Timestamp in milliseconds (UTC) format: uint64 longitude: title: Longitude type: number description: GPS Point longitude format: double latitude: title: Latitude type: number description: GPS Point latitude format: double horizontal_accuracy: title: Horizontal Accuracy type: number description: GPS horizontal accuracy in meters format: double vertical_accuracy: title: Vertical Accuracy type: number description: GPS vertical accuracy in Meters format: double altitude: title: Altitude type: number description: GPS detected altitude format: double speed: title: Speed type: number description: GPS detected speed in meters per second format: double course: title: Course type: number description: GPS heading direction format: double producer: $ref: '#/components/schemas/GPSSignalGPSProducer' gps_timestamp: type: string format: int64 producer_timestamp: type: string format: int64 example: latitude: 40.7380653 longtitude: -73.9800164 timestamp: 1562979339998 horizontal_accuracy: 8.0012082736 course: 6.91280832 altitude: 725.5895027 speed: 11.34940719 nexarDisplayImage: title: URL and metadata for the head frame best representing the road item type: object properties: image_url: title: URL type: string description: URL to the source image file (valid for 24 hours) timestamp_millis: title: Timestamp type: string description: Timestamp in milliseconds for when the image was taken (UTC) format: uint64 width: title: Width type: string description: Image width in pixels format: uint64 height: title: Height type: string description: Image height in pixels format: uint64 imageRef: title: Ref type: string description: HTML a tag target href frame_id: title: Frame Id type: string description: Unique generated frame id example: image_url: https://d1fd2w0efmqqe1.cloudfront.net/fit-in/276x155/fod_6BB685FD-9646-48F8-90BB-1297ADCEB60E_anon.jpg?Expires=1568828292&Signature=DrBXr5sb0lhgL timestamp_millis: 1568824692031 width: 276 height: 155 nexarRoadType: title: Open Street Map road types type: string default: UNKNOWN_ROAD_TYPE enum: - UNKNOWN_ROAD_TYPE - MOTORWAY - TRUNK - PRIMARY - SECONDARY - TERTIARY - UNCLASSIFIED - RESIDENTIAL - SERVICE - MOTORWAY_LINK - TRUNK_LINK - PRIMARY_LINK - SECONDARY_LINK - TERTIARY_LINK - LIVING_STREET - PEDESTRIAN - TRACK - BUS_GUIDEWAY - ESCAPE - RACEWAY - ROAD - FOOTWAY - BRIDLEWAY - STEPS - PATH - CYCLEWAY - CONSTRUCTION - ABANDONED - ACCESS - PROPOSED - REST_AREA nexarRoadItemDetection: type: object title: Road Sign Detection properties: item_id: $ref: '#/components/schemas/nexarObjectId' road_sign: $ref: '#/components/schemas/nexarRoadSignDetection' timezone_offset: title: Timezone Offset type: integer description: Timezone offset in seconds from UTC format: int32 created_at_millis: title: Created at millis type: string description: UTC Timestamp in milliseconds of the earliest evidence format: uint64 expired_at_millis: title: expired at millis type: string description: UTC Timestamp in milliseconds of the detection expiration format: uint64 nexarObjectId: title: Wrapper for Nexar unique identifier type: object properties: id: type: string example: id: bed8dfe80331c3062c6893ac8c08146d nexarChangeDetectionStatus: title: Describing the status of the construction zone lane impact (e.g. new / removed detections) type: string default: DETECTION_STATUS_NONE enum: - DETECTION_STATUS_NONE - NEW_DETECTION - EXISTING_DETECTION - REMOVED_DETECTION nexarRoadSignDetectionElement: title: Road sign detection type: object properties: road_sign_type: $ref: '#/components/schemas/nexarRoadSignType' impact: $ref: '#/components/schemas/nexarRoadSignImpact' evidence_frames: title: Evidence Frames type: array description: List of evidence frames showing the road sign items: $ref: '#/components/schemas/nexarRoadItemEvidenceFrame' negative_image_ref: title: Negative Image Ref type: string description: URL to the frame giving the best view of the location without the sign earliest_evidence_millis: title: Earliest Evidence Millis type: string description: Timestamp of earliest evidence frame for this detection format: uint64 nexarDetectionLocation: title: Detection location and metadata type: object properties: location: $ref: '#/components/schemas/nexarGPSPoint' course: title: Course type: number description: Aggregated course of the detection format: double bbox: $ref: '#/components/schemas/nexarBBox' confidence: title: Confidence type: number description: Detection confidence format: double h3_indices: $ref: '#/components/schemas/nexarPointH3Indices' nexarGetDetectionRequestParams: required: - item_id type: object properties: item_id: $ref: '#/components/schemas/nexarObjectId' example: item_id: id: 34.0516754064_-118.2455985276_MUTCD__R3_18__NO_U_AND_LEFT_TURN-021dcd01:1671408000000:RS protobufAny: type: object properties: type_url: type: string description: "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." value: pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$ type: string description: Must be a valid serialized protocol buffer of the above specified type. format: byte description: "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(&foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := &pb.Foo{...}\n any, err := ptypes.MarshalAny(foo)\n ...\n foo := &pb.Foo{}\n if err := ptypes.UnmarshalAny(any, foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": ,\n \"lastName\": \n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" nexarRoadSignDetection: title: Aggregated road sign detections type: object properties: location: $ref: '#/components/schemas/nexarGeoPoint' detection_element: $ref: '#/components/schemas/nexarRoadSignDetectionElement' status: $ref: '#/components/schemas/nexarChangeDetectionStatus' nexarBBox: title: Location of detected element on the image, where (X1,Y1),(X2,Y2) describes the SW,NE corners accordingly type: object properties: x1: type: number format: double y1: type: number format: double x2: type: number format: double y2: type: number format: double tag: type: string example: x1: 246 y1: 426 x2: 290 y2: 492 tag: grabber_cone GPSSignalGPSProducer: title: GPS signal source (Camera or external mount) type: string default: DEVICE enum: - DEVICE - CAMERA_MOUNT nexarRoadSignType: type: string default: UNKNOWN enum: - UNKNOWN - STOP - NO_RIGHT_TURN - NO_LEFT_TURN - NO_U_TURN - BUS_STOP - SPEED_LIMIT_25 - SCHOOL - DO_NOT_ENTER - ISR_STOP_SIGN - ISR_NO_LEFT_TURN - ISR_NO_RIGHT_TURN - ISR_NO_U_TURN - ISR_GIVE_WAY - ISR_BICYCLE_LANE - ISR_SPEED_LIMIT_50 - ISR_SPEED_LIMIT_70 - ISR_SPEED_LIMIT_30 - ISR_PEDESTRIAN - ISR_PARKING - ISR_URBAN_AREA - ISR_NO_ENTER - ISR_HANDICAP - ISR_ROAD_WORKS - ONE_WAY - ROAD_WORK - STOP_AHEAD - PEDESTRIAN_CROSSING - EU_BICYCLE_LANE - EU_GIVE_WAY - EU_HANDICAP - EU_ONE_WAY - EU_PARKING - EU_PARKING_PORHIBITED - EU_PASS_LEFT - EU_PASS_LEFT_OR_RIGHT - EU_PASS_RIGHT - EU_PEDESTRIAN - EU_ROAD_WORKS - EU_SPEED_LIMIT_30 - EU_SPEED_LIMIT_50 - EU_SPEED_LIMIT_70 - EU_STOP - EU_URBAN_AREA - US_BUS_STOP - US_LEFT_ARROW_ONE_WAY - US_PEDESTRIAN_CROSSING - US_RIGHT_ARROW_ONE_WAY - US_SCHOOL - US_SPEED_LIMIT_25 - US_STOP - NO_ENTER - OHIO_EXIT - MUTCD__R3_18__NO_U_AND_LEFT_TURN - OHIO_ROUTE_33 - MUTCD__W20_7__FLAGGER_AHEAD - MUTCD__R2_1__SPEED_LIMIT_20 - MUTCD__R2_1__SPEED_LIMIT_30 - MUTCD__R2_1__SPEED_LIMIT_35 - MUTCD__R2_1__SPEED_LIMIT_40 - MUTCD__R2_1__SPEED_LIMIT_45 - MUTCD__R2_1__SPEED_LIMIT_50 - MUTCD__R2_1__SPEED_LIMIT_55 - MUTCD__R2_1__SPEED_LIMIT_60 - MUTCD__R2_1__SPEED_LIMIT_65 - MUTCD__R2_1__SPEED_LIMIT_70 - MUTCD__R1_2__YIELD - MUTCD__W1_8_LEFT - MUTCD__W1_8_RIGHT - VIENNA__B1__GIVE_WAY - VIENNA__B2__STOP - VIENNA__C14__SPEED_LIMIT_30 - VIENNA__C14__SPEED_LIMIT_50 - VIENNA__C14__SPEED_LIMIT_70 - VIENNA__C18__PARKING_PROHIBITED - VIENNA__D2__PASS_LEFT - VIENNA__D2__PASS_LEFT_OR_RIGHT - VIENNA__D2__PASS_RIGHT - VIENNA__D4__BICYCLE_LANE - VIENNA__E12A__PEDESTRIAN - VIENNA__E14__PARKING - VIENNA__EA__ONE_WAY - HANDICAP - URBAN_AREA - MUTCD__R1_1__STOP - MUTCD__R2_1__SPEED_LIMIT_25 - MUTCD__R3_2__NO_LEFT_TURN - MUTCD__R3_1__NO_RIGHT_TURN - MUTCD__R3_4__NO_U_TURN - MUTCD__R6_1__ONEWAY_LEFT - MUTCD__R6_1__ONEWAY_RIGHT - MUTCD__R7_8__HANDICAPPED - MUTCD__R8_3A__NO_PARKING - MUTCD__S1_1__SCHOOL_ZONE - MUTCD__W11_2__PEDESTRIAN_CROSSING - MUTCD__XX__NYC_BUS_STOP - VIENNA__C1A__NO_ENTER - VIENNA__C11A__NO_LEFT_TURN - VIENNA__C11B__NO_RIGHT_TURN - VIENNA__C12__NO_U_TURN - VIENNA__E3A__ONE_WAY - ISRAEL__B24__URBAN_AREA - MUTCD__R5_1__DO_NOT_ENTER securitySchemes: Bearer: type: apiKey name: Authorization in: header