openapi: 3.2.0 info: version: '1.0' title: Airtel IoT Inventory Management API contact: email: m2m.support@airtel.com description: "# Overview\n ## Introduction\n
Airtel IoT Developer Portal showcases APIs that allows you\n to access data of the CMP Billable account from any external application. Using the APIs, you\n can perform almost all the operations that you perform through the CMP portal including Managing\n SIM Inventory, Changing SIM state (Test Mode, Activate, Change Plan, Safe custody), Monitoring\n data usage, Performing bulk operations and so on.
\n \n In this section, you’ll learn Airtel IoT Developer Portal Dashboard.\n\n ## API Credentials\n This section provide static details of Customer which will be used for accessing APIs.\n\n \n
Key Authentication
\n
A Unique Identification Secret Key per Customer, must be passed in Headers while calling API and will be used for Authentication purpose.
\n \n\n
Customer Information
\n
Customer Information will show details of Customer Developer Account. This shows Customer Id, Customer Account No, Email Id, iv-user, Name, Developer Created By and Developer Created On. Some of these information will be used in accessing APIs.
\n\n\n
OAuth2.0
\n
Customer has to use unique Client Id and Client Secret mentioned in OAuth Credential table for Authentication of APIs.
\n \n\n ## Usage Information\n This section provide Customer API usages details. This can show details based on different timestamps: \n \n ## Activating your first SIM \n\n

Generating OAuth 2.0 token

\n The OAuth 2.0 authorization code grant will be used by customer to gain access to protected\n resources, such as APIs.\n This set of APIs shall allow user to generate Access Token and refresh Access Token to perform\n any action on CMP via the API gateway.\n

Request an Access Token

To get a token by using the client Id & Client Secret, send a POST request to the /developer/generate/authtoken

Sample Request

curl -X POST \"https://openapi.airtel.in/iot/api/developer/generate/authtoken\"\n         -H \"accept: application/json\"\n         -H \"apikey: XXXXXXXXXXXXXXXXXXXXXX\"\n         -H \"iv-user: XXXXXXXXXXXXXXXXXXXXXX\"\n         -H \"Content-Type: application/x-www-form-urlencoded\"\n         -d \"client_id=XXXXXXXXXXXXXXXXXXXXXX&client_secret=XXXXXXXXXXXXXXXXXXXXXX\"\n       

Sample Response

{\n           \"data\": {\n             \"refresh_token\": \"XXXXXXXXXXXXXXXXXXXXXX\",\n             \"token_type\": \"bearer\",\n             \"access_token\": \"XXXXXXXXXXXXXXXXXXXXXX\",\n             \"expires_in\": 1800\n           }\n         }\n         
       You can generate same request response from Airtel IoT Developer Portal. To do so :\n
\n\n

Fetch SIM Inventory

\n This API shall allow user to fetch the details of SIMs on that Customer\n Account. It can fetch the details of one or more SIMs at a time.\n

Sample Request

\n
curl -X GET \"https://openapi.airtel.in/iot/api/customer/details/basket/0/sims\n       ?pageNo=1&pageSize=1&simStatus=INITIAL\"\n       -H \"accept: application/json\"\n       -H \"Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXX\"\n       -H \"apikey: XXXXXXXXXXXXXXXXXXXXXX\"\n       -H \"customer-id: XXXX\"\n       -H \"iv-user: XXXXXXXXXXXXXXXXXXXXXX\"\n     

Sample Response

{\n       \"data\":\n       {\n         \"sims\": [\n         {\n           \"simId\": \"5165173\",\n           \"mobileNo\": \"51967694502\",\n           \"simNo\": \"9999000000000000000\",\n           \"imsi\": \"30811010404043400\",\n           \"lsi\": \" \",\n           \"status\": \"INITIAL\",\n           \"isPaired\": \"0\",\n           \"isPrepaidSim\": \"0\",\n           \"circleName\": \"DELHI\",\n           \"planCode\": \"M2M_PLN_0324\",\n           \"planName\": \"VTS 49 special plan(without voice with sms)\",\n           \"description\": \"VTS 49 special plan(without voice with sms)\",\n           \"dataType\": \"2G\",\n           \"dataUnits\": \"250\",\n           \"planType\": \"0\"\n         }\n         ],\n         \"total\": \"10000\"\n       }\n     }\n     
\n        You can generate same request response from Airtel IoT Developer Portal. To do so :\n
\n \n

Fetch Plans

\n This API shall allow user to fetch the details of Plans that are associated with the Customer\n Account. It returns the Plan code, plan name, plan description and whether it is a test plan or\n actual plan as defined on the account.\n

Sample Request

curl -X GET \"https://openapi.airtel.in/iot/api/customer/details/plans\"\n         -H \"accept: application/json\"\n         -H \"Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXX\"\n         -H \"apikey: XXXXXXXXXXXXXXXXXXXXXX\"\n         -H \"customer-id: XXXX\"\n         -H \"iv-user: XXXXXXXXXXXXXXXXXXXXXX\"\n       

Sample Response

{\n         \"data\": [\n         {\n           \"planCode\": \"M2M_PLN_0001\",\n           \"planName\": \"M2M-2G-1GB PLAN\",\n           \"planDescription\": \"M2M-2G-1GB PLAN\",\n           \"testPlan\": false\n         },\n         {\n           \"planCode\": \"M2M_PLN_0003\",\n           \"planName\": \"M2M 3G - 100 MB PLAN\",\n           \"planDescription\": \"M2M 3G - 100 MB PLAN\",\n           \"testPlan\": true\n         }\n         ]\n       }\n     
       You can generate same request response from Airtel IoT Developer Portal. To do so :\n
\n

Perform Activation

\n This API shall allow user to change the state of SIM from Available (Initial to Activate) to\n Active with Plan that is associated with the Billable account. It requires inputs as mobile\n number and plan code.\n

Sample Request

curl -X POST \"https://openapi.airtel.in/iot/api/om/job/sim/activate\"\n         -H \"accept: application/json\"\n         -H \"Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXX\"\n         -H \"apikey: XXXXXXXXXXXXXXXXXXXXXXXXX\"\n         -H \"customer-id: XXXX\"\n         -H \"iv-user: XXXXXXXXXXXXXXXXXXXXXXXXX\"\n         -H \"Content-Type: application/json\"\n         -d \"{ \\\"simDOList\\\": [ { \\\"mobileNO\\\": \\\"51967694502\\\",\n         \\\"planDO\\\": { \\\"planCode\\\": \\\"M2M_PLN_0001\\\" } } ]}\"\n       

Sample Response

{\n       \"data\": {\n           \"jobId\": 795405,\n           \"jobType\": \"ACTIVATE_SIM\",\n           \"orderCount\": 0,\n           \"successCount\": 0,\n           \"failureCount\": 0,\n           \"inProgressCount\": 0,\n           \"rejectedCount\": 0,\n           \"orderInitiateDate\": \"25-04-2019 03:35:40 PM\",\n           \"statusMessage\": \"Your request is in progress\"\n       }\n   }\n   
       You can generate same request response from Airtel IoT Developer Portal. To do so :\n

NOTE
\n The JobId in the response is important to track the status of activation order. The details of JobId can be fetched from Fetch Jobs API. There shall be Order ID(s) within a JobId to view status of specific Order(s) in a JobId.


\n" servers: - url: https://m2m.airteliot.co.in/iot/api/ security: [] tags: - name: Inventory Management description: This set of APIs fetch various details about Sim details, Basket details and so on in the account. paths: /bulk/download/history: get: tags: - Inventory Management summary: Download History description: This API call is used to get the records for downloading files from Download History page that are processed for Download on the portal. It returns the Download Type, Requested and Completion date, status of download, and file name. operationId: fetchDownloadHistoryUsingGET parameters: - name: Authorization in: header description: Authorization Header (Value must be like Bearer ) required: true schema: type: string default: Bearer XXXXXXXXXXXXXX - name: apikey in: header description: Developer API Key required: true schema: type: string - name: customer-id in: header description: 'Unique ID to identify Customer (shared during On-Boarding process) ' required: true schema: type: integer format: int64 - name: iv-user in: header description: Developer Account User ID required: true schema: type: string - name: pageNo in: query description: Page Number in case of pagination. Default Page No. is 1. allowEmptyValue: false schema: type: integer format: int32 default: 1 - name: pageSize in: query description: Page Size in pagination. Default Page Size is 25 and Maximum is 100. allowEmptyValue: false schema: type: integer format: int32 default: 25 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DownloadHistoriesVo' '400': description: Request Message is not correct content: {} '500': description: Internal Server Error. content: {} deprecated: false /bulk/download/{downloadFileId}: get: tags: - Inventory Management summary: Download File description: This API call is used to download the file which is available or ready to download after processing from Download History Page. operationId: downloadTemplateFileUsingGET parameters: - name: Authorization in: header description: Authorization Header (Value must be like Bearer ) required: true schema: type: string default: Bearer XXXXXXXXXXXXXX - name: apikey in: header description: Developer API Key required: true schema: type: string - name: customer-id in: header description: 'Unique ID to identify Customer (shared during On-Boarding process) ' required: true schema: type: integer format: int64 - name: downloadFileId in: path description: downloadFileId required: true schema: type: integer format: int64 - name: iv-user in: header description: Developer Account User ID required: true schema: type: string responses: '200': description: OK content: application/vnd.ms-excel: schema: type: string format: byte '400': description: Request Message is not correct content: {} '500': description: Internal Server Error. content: {} deprecated: false /bulk/sim/inventory/download: get: tags: - Inventory Management summary: Download SIM Inventory description: This API call returns the SIM inventory file in excel format for that Billable account. operationId: downloadSimInventoryOrderUsingGET parameters: - name: Authorization in: header description: Authorization Header (Value must be like Bearer ) required: true schema: type: string default: Bearer XXXXXXXXXXXXXX - name: apikey in: header description: Developer API Key required: true schema: type: string - name: customer-id in: header description: 'Unique ID to identify Customer (shared during On-Boarding process) ' required: true schema: type: integer format: int64 - name: iv-user in: header description: Developer Account User ID required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DownloadHistoryVO' '400': description: Request Message is not correct content: {} '500': description: Internal Server Error. content: {} deprecated: false /details/baskets: get: tags: - Inventory Management summary: Fetch Customer Baskets description: This API shall allow user to fetch the details of Baskets that are created on that Customer Account. It can fetch the details of a particular basket at any given point. It returns the SIM details in that basket with different states (Active, Available, Safe Custody, Test Mode, Suspended) along with Basket description and user details to whom that basket is assigned. operationId: fetchCustomerBasketsUsingGET parameters: - name: Authorization in: header description: Authorization Header (Value must be like Bearer ) required: true schema: type: string default: Bearer XXXXXXXXXXXXXX - name: apikey in: header description: Developer API Key required: true schema: type: string - name: basketId in: query description: Basket ID allowEmptyValue: false schema: type: integer format: int64 - name: basketName in: query description: Basket Name allowEmptyValue: false schema: type: string - name: customer-id in: header description: 'Unique ID to identify Customer (shared during On-Boarding process) ' required: true schema: type: integer format: int64 - name: detailedView in: query description: ${detailedView.notes} allowEmptyValue: false schema: type: boolean default: true - name: iv-user in: header description: Developer Account User ID required: true schema: type: string - name: myBaskets in: query description: My Baskets(Basket Onwer) allowEmptyValue: false schema: type: boolean default: false example: false - name: pageNo in: query description: Page Number in case of pagination. Default Page No. is 1. allowEmptyValue: false schema: type: integer format: int32 default: 1 - name: pageSize in: query description: Page Size in pagination. Default Page Size is 25 and Maximum is 100. allowEmptyValue: false schema: type: integer format: int32 default: 25 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Baskets' '400': description: Request Message is not correct content: {} '500': description: Internal Server Error. content: {} deprecated: false /details/basket/{basketId}/sims: get: tags: - Inventory Management summary: Fetch SIMs. description: This API shall allow user to fetch the details of SIMs in a particular Basket on that Customer Account. It can fetch the details of one or more SIMs at a time from a particular basket including SIM details, Plan details, SIM status, and other required details of SIMs in basket as it is shown on the CMP portal. operationId: fetchCustomerSimsUsingGET parameters: - name: Authorization in: header description: Authorization Header (Value must be like Bearer ) required: true schema: type: string default: Bearer XXXXXXXXXXXXXX - name: apikey in: header description: Developer API Key required: true schema: type: string - name: basketId in: path description: Basket ID required: true schema: type: integer format: int64 default: 0 - name: customer-id in: header description: 'Unique ID to identify Customer (shared during On-Boarding process) ' required: true schema: type: integer format: int64 - name: filterValue in: query description: Value on which Sims to be filtered allowEmptyValue: false schema: type: string - name: iv-user in: header description: Developer Account User ID required: true schema: type: string - name: pageNo in: query description: Page Number in case of pagination. Default Page No. is 1. allowEmptyValue: false schema: type: integer format: int32 default: 1 - name: pageSize in: query description: Page Size in pagination. Default Page Size is 25 and Maximum is 100. allowEmptyValue: false schema: type: integer format: int32 default: 25 - name: simFilterType in: query description: 'Filter Type on which Sims to be filtered. The allowed types are MSISDN / SIM ' allowEmptyValue: false schema: type: string enum: - MSISDN - SIM_NO - IMSI - name: simStatus in: query description: Status of SIM(s) being fetched from a basket allowEmptyValue: false schema: type: string enum: - INITIAL - ACTIVE - SAFE_CUSTODY - ACTIVATED_ON_TEST_MODE - IN_PROGRESS - SUSPENDED - TEMP_DISCONNECT - ACTIVE_AND_SAFE_CUSTODY - ACTIVE_AND_TEMP_DISCONNECT responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Sims' '400': description: Request Message is not correct content: {} '500': description: Internal Server Error. content: {} deprecated: false components: schemas: DownloadHistoriesVo: title: DownloadHistoriesVo type: object properties: downloadHistories: type: array items: $ref: '#/components/schemas/DownloadHistoryView' total: type: string DownloadHistoryView: title: DownloadHistoryView type: object properties: basketName: type: string description: Basket Name completionDate: type: string description: Download Request Completion Date and Time creationDate: type: string description: Download Request Creation Date and Time downloadFileId: type: integer description: Download Request ID format: int64 downloadType: type: string description: Download Type extension: type: string description: File Extension fileName: type: string description: File Name progress: type: integer description: File Download Progress format: int32 status: type: string description: Download Status DownloadHistoryVO: title: DownloadHistoryVO type: object properties: basketName: type: string description: Basket Name completionDate: type: string description: Download Request Completion Date and Time creationDate: type: string description: Download Request Creation Date and Time downloadFileId: type: integer description: Download Request ID format: int64 downloadType: type: string description: Download Type extension: type: string description: File Extension fileName: type: string description: File Name progress: type: integer description: File Download Progress format: int32 status: type: string description: Download Status SimApnVO: title: SimApnVO type: object properties: attachedApnIp: type: string attachedApnIpType: type: string attachedApnName: type: string attchedApnType: type: string SimDetailsVO: title: SimDetailsVO type: object properties: activationDate: type: string basketId: type: string circleName: type: string dataType: type: string dataUnits: type: string description: type: string imsi: type: string inProgressJob: type: string inProgressJobOrder: type: string isPaired: type: string isPrepaidSim: type: string lsi: type: string mobileNo: type: string onboardingDate: type: string parentBasketId: type: string planCode: type: string planName: type: string planType: type: string safeCustodyDate: type: string simApnVO: type: array items: $ref: '#/components/schemas/SimApnVO' simId: type: string simInfo1: type: string simInfo2: type: string simInfo3: type: string simNo: type: string simTrailEndTime: type: string simTrailStartTime: type: string status: type: string Baskets: title: Baskets type: object properties: baskets: type: array items: $ref: '#/components/schemas/BasketDetailsVO' totalActiveSims: type: string totalAvailableSims: type: string totalBaskets: type: string totalInActiveSims: type: string totalInProgressSims: type: string totalSafeCustodySims: type: string totalSims: type: string totalSuspendedSims: type: string totalTestModeSims: type: string Sims: title: Sims type: object properties: sims: type: array items: $ref: '#/components/schemas/SimDetailsVO' total: type: string BasketDetailsVO: title: BasketDetailsVO type: object properties: activeSims: type: string availableSims: type: string basketId: type: string basketName: type: string basketPermission: type: string creationDate: type: string customerId: type: string emailId: type: string firstName: type: string inActiveSims: type: string inProgressSims: type: string lastName: type: string managedBy: type: string mobileNo: type: string parentBasketId: type: string remarks: type: string safeCustodySims: type: string suspendedSims: type: string testModeSims: type: string totalSims: type: string x-tagGroups: - name: Manage Customer APIs tags: - Account Authorization - Account Details - Inventory Management - name: New Orders APIs tags: - SIM LifeCycle - name: Bulk Orders APIs tags: - SIM LifeCycle Bulk - name: Jobs APIs tags: - Job Status - name: Device Details APIs tags: - Device & Session Information - name: Whitelisting APIs tags: - Whitelisting - name: KYC APIs tags: - KYC Manager - name: Messaging Centre APIs tags: - Messaging Centre