openapi: 3.2.0 info: version: '1.0' title: Airtel IoT Account Details 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: Account Details description: This set of APIs fetch various details about a Billable Customer Account including Customer Profile, Plan details, User details and so on. paths: /details/: get: tags: - Account Details summary: Fetch Customer Profile description: This API shall allow user to fetch the overall profile of Customer as created at the time of On-Boarding. operationId: fetchCustomerProfileUsingGET 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/CustomerDetailsVO' '400': description: Request Message is not correct content: {} '500': description: Internal Server Error. content: {} deprecated: false /details/stats: get: tags: - Account Details summary: Fetch Customer Statistics description: This API shall allow user to fetch the SIM Inventory statistics of a Customer Account at any given time. It returns the summary of SIM inventory as itâs shown on CMP portal. operationId: fetchCustomerStatsUsingGET 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/CustomerStats' '400': description: Request Message is not correct content: {} '500': description: Internal Server Error. content: {} deprecated: false /details/plans: get: tags: - Account Details summary: Fetch Customer Plans description: This API shall allow user to fetch the details of Plans that are associated with the Customer Account. It returns the Plan code, plan name and plan description as defined on the account. operationId: fetchCustomerPlansUsingGET_1 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: type: array items: $ref: '#/components/schemas/PlanDetailsVO' '400': description: Request Message is not correct content: {} '500': description: Internal Server Error. content: {} deprecated: false components: schemas: CustomerPreferencesVO: title: CustomerPreferencesVO type: object properties: additionalCustEmailId: type: string additionalCustMobileNo: type: string additionalCustName: type: string additionalCustomerEmailId: type: string additionalCustomerMobileNo: type: string additionalCustomerName: type: string alternatePhoneNumber: type: string attribute1: type: string attribute2: type: string attribute3: type: string attribute4: type: string attribute5: type: string createdBy: type: string createdOn: type: string defaultAddress: type: string defaultEmail: type: string lastUpdatedBy: type: string lastUpdatedOn: type: string notifyActivationSim: type: boolean notifyBasketCreated: type: boolean notifyByEmail: type: boolean notifyBySMS: type: boolean notifyBySms: type: boolean notifyFreshOrder: type: boolean notifyLOC: type: boolean notifyLoc: type: boolean notifyPlanChange: type: boolean notifyPlanChanged: type: boolean notifySimActivation: type: boolean prepaidCustomer: type: boolean primaryPhoneNumber: type: string primaryPhoneNumberSetDefault: type: boolean PlanDetailsVO: title: PlanDetailsVO type: object properties: planCode: type: string planDescription: type: string planName: type: string testPlan: type: boolean CustomerDetailsVO: title: CustomerDetailsVO type: object properties: aadhaarNo: type: string accountCategory: type: string accountType: type: string activeSIMs: type: integer format: int32 address: type: string alternatePhoneNumber: type: string apn: type: string attribute1: type: string attribute2: type: string availableSIMs: type: integer format: int32 billCycle: type: string billCycleCutOff: type: string billMedia: type: string billType: type: string billingAddress: type: string billingCycle: type: string caAccountNo: type: string circleId: type: string cmpType: type: string companyCode: type: string coordinatorEmailId: type: string coordinatorMobile: type: string coordinatorName: type: string createdBy: type: string createdOn: type: string creditLimit: type: string crm: type: string custClass: type: string custRank: type: string customerAccountNumber: type: string customerAddressVO: type: array items: $ref: '#/components/schemas/CustomerAddressVO' customerBillableId: type: string customerCircleId: type: string customerContactsVO: type: array items: $ref: '#/components/schemas/CustomerContactsVO' customerId: type: integer format: int32 customerName: type: string customerPreferencesVO: $ref: '#/components/schemas/CustomerPreferencesVO' customerType: type: string emailAddress: type: string groupAccount: type: string groupAccountServ: type: string gstNo: type: string inActiveSIMs: type: integer format: int32 inProgressSIMs: type: integer format: int32 kycAgreementTime: type: string kycIPAddress: type: string kycagreed: type: boolean lastUpdatedBy: type: string lastUpdatedOn: type: string liveCustomer: type: boolean localAddress: type: string m2mSolution: type: string maxBasketSize: type: integer format: int32 panNo: type: string parentAccountNumber: type: string permanentAddress: type: string preferredLanguage: type: string primaryLSI: type: string primaryPhoneNumber: type: string primaryPhoneSetDefault: type: boolean primaryServiceNo: type: string productType: type: string safeCustodySIMs: type: integer format: int32 secondaryLSI: type: string secondaryServiceNo: type: string status: type: string tanNo: type: string tdsPercentage: type: string testModeSIMs: type: integer format: int32 tinNo: type: string totalBasketCount: type: integer format: int32 totalCustomer: type: integer format: int32 totalNoOfSim: type: integer format: int32 totalSIMs: type: integer format: int32 uinNo: type: string userAcceptingKYC: type: string CustomerAddressVO: title: CustomerAddressVO type: object properties: addressLine1: type: string addressLine2: type: string addressLine3: type: string addressType: type: string billingAddress: type: string city: type: string country: type: string pincode: type: string state: type: string UserStats: title: UserStats type: object properties: firstName: type: string lastName: type: string totalUserBaskets: type: string totalUserSims: type: string userId: type: string CustomerStats: title: CustomerStats type: object properties: totalActiveSims: type: string totalAvailableSims: type: string totalBaskets: type: string totalInActiveSims: type: string totalInProgressSims: type: string totalSafeCustodySims: type: string totalSims: type: string totalSuspendedSims: type: string totalTempDisconnectedSims: type: string totalTestModeSims: type: string userStats: type: array items: $ref: '#/components/schemas/UserStats' CustomerContactsVO: title: CustomerContactsVO type: object properties: emailAddress: type: string isPrimary: type: string mobileNo: type: string type: 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