Network as Code Network Intelligence APIs

The network-analytics product family. Advertised capabilities are Congestion Insights, Network Aware Route Optimization, Population Density Data and Consent and Identity Management. Only two are callable in the harvested specification — /congestion-insights/v0/query and /congestion-insights/v0/subscriptions, and consent via /passthrough/camara/v1/consent-info/consent-info/v0.1/retrieve. No population-density or route-optimization path exists in the harvested specification, so those two are marketed capabilities without a published contract.

OpenAPI Specification

nokia-network-as-code-platform-openapi.json Raw ↑
{
  "openapi": "3.0.0",
  "x-rapidapi-info": {
    "apiVersionId": "apiversion_969ae0b0-88c0-4670-9353-9c09d02c076f",
    "apiId": "api_47e41e89-ab4a-40fa-87de-c528077c9945"
  },
  "x-documentation": {
    "tutorials": [],
    "spotlights": []
  },
  "x-gateways": [],
  "info": {
    "title": "Network as Code ",
    "version": "1.0.0",
    "description": "Nokia's Network as Code API for programmable networks.",
    "x-category": "Other",
    "x-long-description": "Nokia's Network as Code API for programmable networks",
    "x-website": "",
    "x-public": true,
    "x-thumbnail": "https://rapidapi-prod-prodeu-apis.s3.eu-central-1.amazonaws.com/87fa562b-c40b-4a8f-9847-108b8973ce6f.png",
    "x-version-lifecycle": "active",
    "x-badges": [],
    "termsOfService": "https://developer.networkascode.nokia.io/legal/terms-of-service",
    "x-collections": []
  },
  "servers": [
    {
      "url": "https://network-as-code.p-eu.rapidapi.com"
    }
  ],
  "tags": [
    {
      "name": "KYC Tenure v0.1"
    },
    {
      "name": "Device Swap v1.0.0"
    },
    {
      "name": "Phone number verify",
      "description": "API operation to verify a phone number received as input. It can be received either in plain text or hashed format."
    },
    {
      "name": "Device reachability status",
      "description": "Operations to get the current reachability status of a device"
    },
    {
      "name": "Device connectivity status",
      "description": "Operations to get the current connectivity status of a device"
    },
    {
      "name": "Roaming status retrieval",
      "description": "Operation to get device roaming status and country information (if roaming) synchronously"
    },
    {
      "name": "Device roaming status subscription",
      "description": "Operation to manage event subscription on device roaming status event."
    },
    {
      "name": "Check Device Swap",
      "description": "Validate if the SIM of the end-user has been installed in a different device during a past period"
    },
    {
      "name": "Location Verification v0.2.0"
    },
    {
      "name": "Geofencing subscriptions",
      "description": "Operations to manage event subscription on geofencing events for leaving and entering an area"
    },
    {
      "name": "QoS Sessions v0",
      "description": "Manage QoS sessions v0"
    },
    {
      "name": "Device status subscription",
      "description": "Operation to manage event subscription on device status event (roaming, connectivity)"
    },
    {
      "name": "Match",
      "description": "Operations to match a customer identity against the account data bound to their phone number."
    },
    {
      "name": "Retrieve Status",
      "description": "Create a request to retrieve the validity status of the data processing"
    },
    {
      "name": "Phone number share",
      "description": "API operation to return the phone number associated to the access token."
    },
    {
      "name": "Quality-of-Service on Demand v1.0.0"
    },
    {
      "name": "Location retrieval",
      "description": "Retrieve the location of a device"
    },
    {
      "name": "Device reachability status subscription",
      "description": "Operation to manage event subscription on device reachability status event."
    },
    {
      "name": "location-verification"
    },
    {
      "name": "Retrieve Device Swap Date",
      "description": "Receive the last date in which the device of the end-user was swapped"
    },
    {
      "name": "Fill-in",
      "description": "Operations to provide information related to a customer identity stored the account data bound to the customer's phone number."
    },
    {
      "name": "device-attach"
    },
    {
      "name": "Device Reachability Status Retrieve v1.1.0"
    },
    {
      "name": "Location Retrieval v0.2.0"
    },
    {
      "name": "Location Verification v1.0.0"
    },
    {
      "name": "Check Subscriber Tenure",
      "description": "Check details about the length of tenure of the subscriber"
    },
    {
      "name": "Device roaming status",
      "description": "Operation to get device roaming status and country information (if roaming) synchronously"
    },
    {
      "name": "Location verification",
      "description": "Verification of the location of a device"
    },
    {
      "name": "slice"
    },
    {
      "name": "Geofencing v0.3.0"
    },
    {
      "name": "Number Recycling v0.2"
    },
    {
      "name": "Age Verification",
      "description": "Operations to verify the age of a user."
    },
    {
      "name": "KYC Match v0.3"
    },
    {
      "name": "KYC Age Verification v0.1"
    },
    {
      "name": "Device Reachability Status Subscriptions v0.8"
    },
    {
      "name": "Call Forwarding Signal v0.3.0"
    },
    {
      "name": "location-retrieval"
    },
    {
      "name": "Number Verification v2.1"
    },
    {
      "name": "Device Reachability Status Subscriptions v0.7"
    },
    {
      "name": ".well-known"
    },
    {
      "name": "passthrough"
    },
    {
      "name": "device-status"
    },
    {
      "name": "Network Slicing v1.0.0"
    },
    {
      "name": "geofencing-subscriptions"
    },
    {
      "name": "QoS Sessions",
      "description": "Manage QoS sessions"
    },
    {
      "name": "Consent Info v0.1.0"
    },
    {
      "name": "quality-on-demand"
    },
    {
      "name": "Device Status v0.5.1"
    },
    {
      "name": "Device Roaming Status Subscriptions v0.7"
    },
    {
      "name": "congestion-insights"
    },
    {
      "name": "KYC FIll In v0.4"
    },
    {
      "name": "qod"
    },
    {
      "name": "Device Roaming Status Retrieve v1.1.0"
    },
    {
      "name": "Congestion Insights v1.0.0"
    },
    {
      "name": "NaC Authorization Server"
    },
    {
      "name": "Number Verification v1.0.0"
    },
    {
      "name": "Quality-of-Service on Demand v0.10.1"
    },
    {
      "name": "Well Known Metadata"
    },
    {
      "name": "Slice Device Attach v1.0.0"
    },
    {
      "name": "Device Roaming Status Subscriptions v0.8"
    },
    {
      "name": "SIM Swap v1.0.0"
    },
    {
      "name": "oauth2"
    }
  ],
  "paths": {
    "/quality-on-demand/v1/retrieve-sessions": {
      "post": {
        "tags": [
          "Quality-of-Service on Demand v1.0.0"
        ],
        "summary": "Retrieve sessions for a specific device",
        "operationId": "retrieveSessions-QoD-V1",
        "description": "Return all QoD sessions related to the specified device.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "Example_1": {
                    "value": [
                      {
                        "device": {
                          "phoneNumber": "+123456789",
                          "networkAccessIdentifier": "123456789@domain.com",
                          "ipv4Address": {
                            "publicAddress": "84.125.93.10",
                            "privateAddress": "84.125.93.10",
                            "publicPort": 0
                          },
                          "ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
                        },
                        "applicationServer": {
                          "ipv4Address": "192.168.0.1/24",
                          "ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
                        },
                        "devicePorts": {
                          "ranges": [
                            {
                              "from": 0,
                              "to": 0
                            }
                          ],
                          "ports": []
                        },
                        "applicationServerPorts": {
                          "ranges": [
                            {
                              "from": 0,
                              "to": 0
                            }
                          ],
                          "ports": []
                        },
                        "qosProfile": "QCI_1_voice",
                        "sink": "https://endpoint.example.com/sink",
                        "sinkCredential": {
                          "credentialType": "ACCESSTOKEN"
                        },
                        "sessionId": "",
                        "duration": 86400,
                        "startedAt": "2024-06-01T12:00:00Z",
                        "expiresAt": "2024-06-01T13:00:00Z",
                        "qosStatus": "REQUESTED",
                        "statusInfo": "DURATION_EXPIRED",
                        "messages": [
                          {
                            "severity": "INFO",
                            "description": ""
                          }
                        ]
                      }
                    ]
                  }
                },
                "schema": {
                  "items": {
                    "description": "Session related information.",
                    "allOf": [
                      {
                        "description": "Common attributes of a QoD session",
                        "type": "object",
                        "properties": {
                          "device": {
                            "description": "End-user equipment able to connect to a network. Examples of devices include smartphones or IoT sensors/actuators.\n\nThe developer can choose to provide the below specified device identifiers:\n\n* `ipv4Address`\n* `ipv6Address`\n* `phoneNumber`\n* `networkAccessIdentifier`\n\nNOTE: the MNO might support only a subset of these options. The API invoker can provide multiple identifiers to be compatible across different MNOs. In this case the identifiers MUST belong to the same device\n",
                            "type": "object",
                            "properties": {
                              "phoneNumber": {
                                "description": "A public identifier addressing a telephone subscription. In mobile networks it corresponds to the MSISDN (Mobile Station International Subscriber Directory Number). In order to be globally unique it has to be formatted in international format, according to E.164 standard, prefixed with '+'.",
                                "type": "string",
                                "pattern": "^\\+?[0-9]{5,15}$"
                              },
                              "networkAccessIdentifier": {
                                "description": "A public identifier addressing a subscription in a mobile network. In 3GPP terminology, it corresponds to the GPSI formatted with the External Identifier ({Local Identifier}@{Domain Identifier}). Unlike the telephone number, the network access identifier is not subjected to portability ruling in force, and is individually managed by each operator.",
                                "type": "string"
                              },
                              "ipv4Address": {
                                "type": "object",
                                "description": "The device should be identified by either the public (observed) IP address and port as seen by the application server, or the private (local) and any public (observed) IP addresses in use by the device (this information can be obtained by various means, for example from some DNS servers).\n\nIf the allocated and observed IP addresses are the same (i.e. NAT is not in use) then  the same address should be specified for both publicAddress and privateAddress.\n\nIf NAT64 is in use, the device should be identified by its publicAddress and publicPort, or separately by its allocated IPv6 address (field ipv6Address of the Device object)\n\nIn all cases, publicAddress must be specified, along with at least one of either privateAddress or publicPort, dependent upon which is known. In general, mobile devices cannot be identified by their public IPv4 address alone.\n",
                                "properties": {
                                  "publicAddress": {
                                    "description": "A single IPv4 address with no subnet mask",
                                    "type": "string",
                                    "format": "ipv4"
                                  },
                                  "privateAddress": {
                                    "description": "A single IPv4 address with no subnet mask",
                                    "type": "string",
                                    "format": "ipv4"
                                  },
                                  "publicPort": {
                                    "description": "TCP or UDP port number",
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 65535
                                  }
                                },
                                "anyOf": [
                                  {
                                    "required": [
                                      "publicAddress",
                                      "privateAddress"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "publicAddress",
                                      "publicPort"
                                    ]
                                  }
                                ]
                              },
                              "ipv6Address": {
                                "description": "The device should be identified by the observed IPv6 address, or by any single IPv6 address from within the subnet allocated to the device (e.g. adding ::0 to the /64 prefix).\n\nThe session shall apply to all IP flows between the device subnet and the specified application server, unless further restricted by the optional parameters devicePorts or applicationServerPorts.\n",
                                "type": "string",
                                "format": "ipv6"
                              }
                            },
                            "minProperties": 1
                          },
                          "applicationServer": {
                            "description": "A server hosting backend applications to deliver some business logic to clients.\n\nThe developer can choose to provide the below specified device identifiers:\n\n* `ipv4Address`\n* `ipv6Address`\n",
                            "type": "object",
                            "properties": {
                              "ipv4Address": {
                                "type": "string",
                                "description": "IPv4 address may be specified in form <address/mask> as:\n  - address - an IPv4 number in dotted-quad form 1.2.3.4. Only this exact IP number will match the flow control rule.\n  - address/mask - an IP number as above with a mask width of the form 1.2.3.4/24.\n    In this case, all IP numbers from 1.2.3.0 to 1.2.3.255 will match. The bit width MUST be valid for the IP version.\n"
                              },
                              "ipv6Address": {
                                "type": "string",
                                "description": "IPv6 address may be specified in form <address/mask> as:\n  - address - The /128 subnet is optional for single addresses:\n    - 2001:db8:85a3:8d3:1319:8a2e:370:7344\n    - 2001:db8:85a3:8d3:1319:8a2e:370:7344/128\n  - address/mask - an IP v6 number with a mask:\n    - 2001:db8:85a3:8d3::0/64\n    - 2001:db8:85a3:8d3::/64\n"
                              }
                            },
                            "minProperties": 1
                          },
                          "devicePorts": {
                            "description": "The ports used locally by the device for flows to which the requested QoS profile should apply. If omitted, then the qosProfile will apply to all flows between the device and the specified application server address and ports",
                            "allOf": [
                              {
                                "type": "object",
                                "minProperties": 1,
                                "properties": {
                                  "ranges": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": "object",
                                      "required": [
                                        "from",
                                        "to"
                                      ],
                                      "properties": {
                                        "from": {
                                          "description": "TCP or UDP port number",
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 65535
                                        },
                                        "to": {
                                          "description": "TCP or UDP port number",
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 65535
                                        }
                                      }
                                    }
                                  },
                                  "ports": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "description": "TCP or UDP port number",
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 65535
                                    }
                                  }
                                }
                              }
                            ]
                          },
                          "applicationServerPorts": {
                            "description": "A list of single ports or port ranges on the application server",
                            "allOf": [
                              {
                                "type": "object",
                                "minProperties": 1,
                                "properties": {
                                  "ranges": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": "object",
                                      "required": [
                                        "from",
                                        "to"
                                      ],
                                      "properties": {
                                        "from": {
                                          "description": "TCP or UDP port number",
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 65535
                                        },
                                        "to": {
                                          "description": "TCP or UDP port number",
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 65535
                                        }
                                      }
                                    }
                                  },
                                  "ports": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "description": "TCP or UDP port number",
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 65535
                                    }
                                  }
                                }
                              }
                            ]
                          },
                          "qosProfile": {
                            "description": "A unique name for identifying a specific QoS profile.\nThis may follow different formats depending on the service providers implementation.\nSome options addresses:\n\n\n\n\n\n  - A UUID style string\n  - Support for predefined profiles QOS_S, QOS_M, QOS_L, and QOS_E\n  - A searchable descriptive name\n",
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 256,
                            "format": "string",
                            "pattern": "^[a-zA-Z0-9_.-]+$"
                          },
                          "sink": {
                            "type": "string",
                            "format": "uri",
                            "description": "The address to which events about all status changes of the session (e.g. session termination) shall be delivered using the selected protocol."
                          },
                          "sinkCredential": {
                            "description": "A sink credential provides authentication or authorization information necessary to enable delivery of events to a target.",
                            "allOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "credentialType": {
                                    "type": "string",
                                    "enum": [
                                      "ACCESSTOKEN"
                                    ],
                                    "description": "The type of the credential.\nNote: Type of the credential - MUST be set to ACCESSTOKEN for now\n"
                                  }
                                },
                                "required": [
                                  "credentialType"
                                ]
                              }
                            ]
                          }
                        },
                        "required": [
                          "applicationServer",
                          "qosProfile"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "sessionId": {
                            "description": "Session ID in UUID format",
                            "type": "string",
                            "format": "uuid"
                          },
                          "duration": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 1,
                            "maximum": 2147483647
                          },
                          "startedAt": {
                            "description": "Date and time when the QoS status became \"AVAILABLE\". Not to be returned when `qosStatus` is \"REQUESTED\". Format must follow RFC 3339 and must indicate time zone (UTC or local).",
                            "type": "string",
                            "format": "date-time"
                          },
                          "expiresAt": {
                            "description": "Date and time of the QoS session expiration. Format must follow RFC 3339 and must indicate time zone (UTC or local).\n- When `qosStatus` is \"AVAILABLE\", it is the limit time when the session is scheduled to finnish, if not terminated by other means.\n- When `qosStatus` is \"UNAVAILABLE\", it is the time when the session was terminated.\n- Not to be returned when `qosStatus` is \"REQUESTED\".\nWhen the session is extended, the value is the new expiration time of the session.\n",
                            "type": "string",
                            "format": "date-time"
                          },
                          "qosStatus": {
                            "description": "The current status of the requested QoS session. The status can be one of the following:\n* `REQUESTED` - QoS has been requested by creating a session\n* `AVAILABLE` - The requested QoS has been provided by the network\n* `UNAVAILABLE` - The requested QoS cannot be provided by the network due to some reason\n",
                            "type": "string",
                            "enum": [
                              "REQUESTED",
                              "AVAILABLE",
                              "UNAVAILABLE"
                            ]
                          },
                          "statusInfo": {
                            "description": "Reason for the new `qosStatus`. Currently `statusInfo` is only applicable when `qosStatus` is 'UNAVAILABLE'.\n* `DURATION_EXPIRED` - Session terminated due to requested duration expired\n* `NETWORK_TERMINATED` - Network terminated the session before the requested duration expired\n* `DELETE_REQUESTED`- User requested the deletion of the session before the requested duration expired\n",
                            "type": "string",
                            "enum": [
                              "DURATION_EXPIRED",
                              "NETWORK_TERMINATED",
                              "DELETE_REQUESTED"
                            ]
                          },
                          "messages": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "severity": {
                                  "description": "Message severity",
                                  "type": "string",
                                  "enum": [
                                    "INFO",
                                    "WARNING"
                                  ]
                                },
                                "description": {
                                  "description": "Detailed message text",
                                  "type": "string"
                                }
                              },
                              "required": [
                                "severity",
                                "description"
                              ]
                            }
                          }
                        },
                        "required": [
                          "sessionId",
                          "duration",
                          "qosStatus"
                        ]
                      }
                    ]
                  },
                  "type": "array",
                  "title": "Response Retrievesessions"
                }
              }
            },
            "description": ""
          },
          "422": {
            "content": {
              "application/json": {
                "examples": {
                  "Example_1": {
                    "value": {
                      "detail": [
                        {
                          "loc": [],
                          "msg": "",
                          "type": ""
                        }
                      ]
                    }
                  }
                },
                "schema": {
                  "properties": {
                    "detail": {
                      "items": {
                        "properties": {
                          "loc": {
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "integer"
                                }
                              ]
                            },
                            "type": "array",
                            "title": "Location"
                          },
                          "msg": {
                            "type": "string",
                            "title": "Message"
                          },
                          "type": {
                            "type": "string",
                            "title": "Error Type"
                          }
                        },
                        "type": "object",
                        "required": [
                          "loc",
                          "msg",
                          "type"
                        ],
                        "title": "ValidationError"
                      },
                      "type": "array",
                      "title": "Detail"
                    }
                  },
                  "type": "object",
                  "title": "HTTPValidationError"
                }
              }
            },
            "description": ""
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "examples": {
                "QOS_RETRIEVE_SESSION_PHONE_NUMBER": {
                  "value": {
                    "device": {
                      "phoneNumber": "+99999991001"
                    }
                  }
                }
              },
              "schema": {
                "properties": {
                  "device": {
                    "description": "End-user equipment able to connect to a network. Examples of devices include smartphones or IoT sensors/actuators.\n\nThe developer can choose to provide the below specified device identifiers:\n\n* `ipv4Address`\n* `ipv6Address`\n* `phoneNumber`\n* `networkAccessIdentifier`\n\nNOTE: the MNO might support only a subset of these options. The API invoker can provide multiple identifiers to be compatible across different MNOs. In this case the identifiers MUST belong to the same device\n",
                    "type": "object",
                    "properties": {
                      "phoneNumber": {
                        "description": "A public identifier addressing a telephone subscription. In mobile networks it corresponds to the MSISDN (Mobile Station International Subscriber Directory Number). In order to be globally unique it has to be formatted in international format, according to E.164 standard, prefixed with '+'.",
                        "type": "string",
                        "pattern": "^\\+?[0-9]{5,15}$"
                      },
                      "networkAccessIdentifier": {
                        "description": "A public identifier addressing a subscription in a mobile network. In 3GPP terminology, it corresponds to the GPSI formatted with the External Identifier ({Local Identifier}@{Domain Identifier}). Unlike the telephone number, the network access identifier is not subjected to portability ruling in force, and is individually managed by each operator.",
                        "type": "string"
                      },
                      "ipv4Address": {
                        "type": "object",
                        "description": "The device should be identified by either the public (observed) IP address and port as seen by the application server, or the private (local) and any public (observed) IP addresses in use by the device (this information can be obtained by various means, for example from some DNS servers).\n\nIf the allocated and observed IP addresses are the same (i.e. NAT is not in use) then  the same address should be specified for both publicAddress and privateAddress.\n\nIf NAT64 is in use, the device should be identified by its publicAddress and publicPort, or separately by its allocated IPv6 address (field ipv6Address of the Device object)\n\nIn all cases, publicAddress must be specified, along with at least one of either privateAddress or publicPort, dependent upon whi

# --- truncated at 32 KB (1991 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/nokia-network-as-code/refs/heads/main/openapi/nokia-network-as-code-platform-openapi.json