INRIX Signals Analytics API

Traffic-signal and intersection analytics served from the INRIX IQ backend: intersection metrics, intersection metadata, metrics availability, and namespace management for customer-scoped signal datasets.

OpenAPI Specification

inrix-signals-analytics-openapi-original.json Raw ↑
{
  "openapi": "3.0.1",
  "info": {
    "title": "INRIX Analytics Webservice Template API",
    "description": "Webservice template to stand up webservices on IQ Backend"
  },
  "tags": [
    {
      "name": "Namespace Management",
      "description": "APIs for managing intersection namespace subscriptions"
    }
  ],
  "paths": {
    "/v1/metrics/intersections/availability": {
      "get": {
        "operationId": "intersectionAvailability",
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "intersectionOutputMode",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "namespaces",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "travelTimeType",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "*/*": {
              "schema": {
                "$ref": "#/components/schemas/UasPrincipalRequired"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PostMetricResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ]
      }
    },
    "/v1/metadata/intersections": {
      "post": {
        "operationId": "intersectionMetadata",
        "requestBody": {
          "content": {
            "*/*": {
              "schema": {
                "$ref": "#/components/schemas/IntersectionMetadataRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PostMetadataResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ]
      }
    },
    "/v1/metrics/intersections": {
      "post": {
        "operationId": "intersectionMetrics",
        "requestBody": {
          "content": {
            "*/*": {
              "schema": {
                "$ref": "#/components/schemas/MetricRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PostMetricResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ]
      }
    },
    "/v1/namespace/{namespace}": {
      "delete": {
        "tags": [
          "Namespace Management"
        ],
        "summary": "Delete namespace",
        "description": "Delete a namespace and all its intersection subscription data",
        "operationId": "deleteNamespace",
        "parameters": [
          {
            "name": "namespace",
            "in": "path",
            "description": "Namespace identifier",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Namespace deleted successfully"
          },
          "400": {
            "description": "Bad request - invalid namespace"
          },
          "401": {
            "description": "Unauthorized - invalid or missing token"
          },
          "404": {
            "description": "Namespace not found"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ]
      },
      "patch": {
        "tags": [
          "Namespace Management"
        ],
        "summary": "Update namespace",
        "description": "Update intersection subscription status for a specific namespace",
        "operationId": "updateNamespace",
        "parameters": [
          {
            "name": "namespace",
            "in": "path",
            "description": "Namespace identifier",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Update request body",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NamespaceUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful update",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NamespaceUpdateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request - invalid parameters"
          },
          "401": {
            "description": "Unauthorized - invalid or missing token"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ]
      }
    },
    "/v1/namespace/search": {
      "post": {
        "tags": [
          "Namespace Management"
        ],
        "summary": "Search namespaces",
        "description": "Search for intersection subscription status across multiple namespaces",
        "operationId": "searchNamespaces",
        "requestBody": {
          "description": "Search request body",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NamespaceSearchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NamespaceSearchResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request - invalid parameters"
          },
          "401": {
            "description": "Unauthorized - invalid or missing token"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "ColumnHeader": {
        "type": "object",
        "properties": {
          "dimensionHeaderEntries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ColumnHeaderEntry"
            }
          },
          "metricHeaderEntries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ColumnHeaderEntry"
            }
          }
        }
      },
      "ColumnHeaderEntry": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        }
      },
      "MetricData": {
        "type": "object",
        "properties": {
          "nextCursor": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "columnHeader": {
            "$ref": "#/components/schemas/ColumnHeader"
          },
          "rows": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      },
      "PostMetricResponse": {
        "type": "object",
        "properties": {
          "createdDate": {
            "type": "string"
          },
          "responseId": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/MetricData"
          }
        }
      },
      "UasPrincipalRequired": {
        "type": "object",
        "properties": {
          "accessToken": {
            "type": "string"
          },
          "userId": {
            "type": "string",
            "format": "uuid"
          },
          "appId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "anonymous": {
            "type": "boolean"
          }
        }
      },
      "Crs": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "name",
              "link"
            ]
          },
          "properties": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          }
        }
      },
      "DateRange": {
        "type": "object",
        "properties": {
          "startDate": {
            "type": "string",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "Feature": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/GeoJsonObject"
          },
          {
            "type": "object",
            "properties": {
              "properties": {
                "type": "object",
                "additionalProperties": {
                  "type": "object"
                }
              },
              "geometry": {
                "$ref": "#/components/schemas/GeoJsonObject"
              },
              "id": {
                "type": "string"
              }
            }
          }
        ]
      },
      "FeatureCollection": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/GeoJsonObject"
          },
          {
            "type": "object",
            "properties": {
              "features": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Feature"
                }
              }
            }
          }
        ]
      },
      "FieldName": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        }
      },
      "Filter": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "operator": {
            "type": "string"
          },
          "not": {
            "type": "boolean"
          },
          "expressions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "GeoJsonObject": {
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "crs": {
            "$ref": "#/components/schemas/Crs"
          },
          "bbox": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            }
          },
          "type": {
            "type": "string"
          }
        },
        "discriminator": {
          "propertyName": "type"
        }
      },
      "GeoObjectWithRadius": {
        "type": "object",
        "properties": {
          "geometry": {
            "$ref": "#/components/schemas/GeoJsonObject"
          },
          "radiusInMeters": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "GeometryCollection": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/GeoJsonObject"
          },
          {
            "type": "object",
            "properties": {
              "geometries": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GeoJsonObject"
                }
              }
            }
          }
        ]
      },
      "IntersectionMetadataRequest": {
        "type": "object",
        "properties": {
          "nextCursor": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "offset": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "dateRanges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DateRange"
            }
          },
          "geometry": {
            "$ref": "#/components/schemas/GeoJsonObject"
          },
          "fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FieldName"
            }
          },
          "fieldFilters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Filter"
            }
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "locations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GeoObjectWithRadius"
            }
          },
          "includeGeometry": {
            "type": "boolean"
          },
          "includeMovements": {
            "type": "boolean"
          },
          "maxRank": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "LineString": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/GeoJsonObject"
          },
          {
            "type": "object",
            "properties": {
              "coordinates": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LngLatAlt"
                }
              }
            }
          }
        ]
      },
      "LngLatAlt": {
        "type": "object",
        "properties": {
          "longitude": {
            "type": "number",
            "format": "double"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "altitude": {
            "type": "number",
            "format": "double"
          },
          "additionalElements": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            }
          }
        }
      },
      "Location": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string"
          },
          "state": {
            "type": "string"
          }
        }
      },
      "Metadata": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "value": {
            "type": "object"
          },
          "valueList": {
            "type": "boolean"
          }
        }
      },
      "MultiLineString": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/GeoJsonObject"
          },
          {
            "type": "object",
            "properties": {
              "coordinates": {
                "type": "array",
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LngLatAlt"
                  }
                }
              }
            }
          }
        ]
      },
      "MultiPoint": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/GeoJsonObject"
          },
          {
            "type": "object",
            "properties": {
              "coordinates": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LngLatAlt"
                }
              }
            }
          }
        ]
      },
      "MultiPolygon": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/GeoJsonObject"
          },
          {
            "type": "object",
            "properties": {
              "coordinates": {
                "type": "array",
                "items": {
                  "type": "array",
                  "items": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/LngLatAlt"
                    }
                  }
                }
              }
            }
          }
        ]
      },
      "Point": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/GeoJsonObject"
          },
          {
            "type": "object",
            "properties": {
              "coordinates": {
                "$ref": "#/components/schemas/LngLatAlt"
              }
            }
          }
        ]
      },
      "Polygon": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/GeoJsonObject"
          },
          {
            "type": "object",
            "properties": {
              "coordinates": {
                "type": "array",
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LngLatAlt"
                  }
                }
              }
            }
          }
        ]
      },
      "CoordinateResponseItem": {
        "type": "object",
        "properties": {
          "lat": {
            "type": "number",
            "format": "double"
          },
          "lon": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "Direction": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "direction": {
            "type": "string"
          },
          "altName": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "heading": {
            "type": "integer",
            "format": "int32"
          },
          "geometry": {
            "$ref": "#/components/schemas/Geometry"
          }
        }
      },
      "Geometry": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "coordinates": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "number",
                "format": "double"
              }
            }
          }
        }
      },
      "LocationResponseItem": {
        "type": "object",
        "properties": {
          "region": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "mapVersion": {
            "type": "string"
          }
        }
      },
      "MetadataResponseItem": {
        "type": "object",
        "properties": {
          "intersectionId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "coordinates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CoordinateResponseItem"
            }
          },
          "movements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MovementResponseItem"
            }
          }
        }
      },
      "MovementResponseItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "rank": {
            "type": "integer",
            "format": "int32"
          },
          "inbound": {
            "$ref": "#/components/schemas/Direction"
          },
          "outbound": {
            "$ref": "#/components/schemas/Direction"
          },
          "movementType": {
            "type": "integer",
            "format": "int32"
          },
          "turnManeuvers": {
            "type": "string"
          },
          "turnGroupId": {
            "type": "string"
          }
        }
      },
      "PostMetadataResponse": {
        "type": "object",
        "properties": {
          "createdDate": {
            "type": "string"
          },
          "responseId": {
            "type": "string"
          },
          "locations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocationResponseItem"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MetadataResponseItem"
            }
          }
        }
      },
      "DimensionItem": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "ranges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ValueItem"
            }
          }
        }
      },
      "MetricItem": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "ranges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NamedRangeItem"
            }
          }
        }
      },
      "MetricRequest": {
        "type": "object",
        "properties": {
          "nextCursor": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "offset": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "dateRanges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DateRange"
            }
          },
          "geometry": {
            "$ref": "#/components/schemas/GeoJsonObject"
          },
          "dimensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DimensionItem"
            }
          },
          "metrics": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MetricItem"
            }
          },
          "dimensionFilters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Filter"
            }
          },
          "metadata": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Metadata"
            }
          },
          "orderBys": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderBy"
            }
          },
          "noPaging": {
            "type": "boolean"
          }
        }
      },
      "NamedRangeItem": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "startAvgControlDelay": {
            "type": "number",
            "format": "double"
          },
          "endAvgControlDelay": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "OrderBy": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "sortOrder": {
            "type": "string",
            "enum": [
              "ASCENDING",
              "DESCENDING"
            ]
          }
        }
      },
      "ValueItem": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "startTime": {
            "type": "string"
          },
          "endTime": {
            "type": "string"
          }
        }
      },
      "NamespaceData": {
        "type": "object",
        "properties": {
          "namespace": {
            "type": "string"
          },
          "mapVersion": {
            "type": "string"
          },
          "provisioned": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "pending": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "reviewRequired": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "region": {
            "$ref": "#/components/schemas/Location"
          }
        }
      },
      "NamespaceSearchResponse": {
        "type": "object",
        "properties": {
          "createdDate": {
            "type": "string"
          },
          "responseId": {
            "type": "string"
          },
          "result": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NamespaceData"
            }
          }
        }
      },
      "NamespaceSearchRequest": {
        "type": "object",
        "properties": {
          "namespaces": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "mapVersion": {
            "type": "string"
          },
          "region": {
            "$ref": "#/components/schemas/Location"
          }
        }
      },
      "NamespaceUpdateResponse": {
        "type": "object",
        "properties": {
          "createdDate": {
            "type": "string"
          },
          "responseId": {
            "type": "string"
          },
          "result": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NamespaceData"
            }
          },
          "message": {
            "type": "string"
          }
        }
      },
      "DeltaOperation": {
        "type": "object",
        "properties": {
          "add": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "remove": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "replace": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "NamespaceUpdateRequest": {
        "type": "object",
        "properties": {
          "mapVersion": {
            "type": "string"
          },
          "provisioned": {
            "$ref": "#/components/schemas/DeltaOperation"
          },
          "pending": {
            "$ref": "#/components/schemas/DeltaOperation"
          },
          "reviewRequired": {
            "$ref": "#/components/schemas/DeltaOperation"
          },
          "region": {
            "$ref": "#/components/schemas/Location"
          }
        }
      }
    },
    "securitySchemes": {
      "Bearer Token": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  }
}