REST APIs

Utilize our easy-to-use RESTful APIs to automate your Microsoft 365 organizations. Our APIs can be consumed in any scripting language that consumes REST APIs like Node.js, Django, .NET, or Laravel.


Deployment

Deployment

In case you want to manage your Microsoft 365 tenants through GUI based menus, deploy Hosting Controller on any Windows server, on-premises or in the cloud, and start administering your Microsoft 365 tenants with ease. Recommended Azure VMs for the installation of Hosting Controller include:

  • check_circle A4
  • check_circle A8V2
  • check_circle A4V2
  • check_circle D2V4

  • For a complete listing and more details on the Hosting Controller deployment See

    Security

  • check_circle API Server to Microsoft 365
  • Hosting Controller uses an advanced authentication mechanism to connect to the Microsoft 365 tenant. It doesn't use a username and password for connectivity, rather it uses token based authentication. It uses app-only access for connectivity with the Microsoft 365 tenant account and therefore requires the Client-Id, Tenant-Id, and Certificate Thumbprint.

  • check_circle HC Control Panel to API Server
  • For secure communication between the control panel and API, Hosting Controller uses HTTPS and for authentication it uses tokens.

    API Security
    Audit Trail

    Audit Trail

    The audit logs in Hosting Controller provide a convenient way to track down operations performed by the API for example creating a new user in the Microsoft 365 organization. The audit trail includes the actions performed, IP logs, time stamps, and HTTP verbs besides other useful details.

    Control Panel Features

    Our API is part of a complete control panel offering:

  • check_circle GUI Based Dashboards
  • check_circle Self-Serve Portals
  • check_circle Extra Layer of Multi-Tenancy
  • check_circle Reporting and Analytics
  • check_circle Audit Logs
  • check_circle Necessary Import Tools
  • Control Panel Features

    Some Sample Scripts

    On the Postman UI, hit the import button in the left pane and paste the cURL code in it. This generates a complete request in Postman. Just replace the dummy values with actual values to send a valid request to the endpoint.

    Update user licenses

    - PUT /office365/{organizationId}/users/{userId}/licenses
    Updates user licenses and enables/disables service plans within a license.
    
    curl --location --request PUT 'http://localhost:8798/office365/{OrganizationId}/users/{UserId}/licenses' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Basic aGNhZG1pbjpoY2FkbWlu' \
    --data '{
        "SelectedSubscriptions": [ 
        { 
           "ServicePlans": [ 
             {  
               "ServicePlanId": "{ServicePlanId}"
             } 
           ], 
           "O365SubscriptionId": {O365SubscriptionId}, 
           "UpdateOnlyServicePlans": true 
         } 
       ],
       "UserLicenses": [ 
         1  
       ]
    }'
    
    
    
                            

    Add organization user

    - POST /office365/organizations/{organizationId}/users
    Creates new user in the organization.
    
    curl --location 'http://localhost:8798/office365/organizations/{OrganizationId}/users' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Basic aGNhZG1pbjpoY2FkbWlu' \
    --data-raw '{
        "DisplayName": "Example User", 
        "EmailAddress": "example@domain.onmicrosoft.com",
        "FirstName": "example",
        "LastName": "user",
        "MailDomainName": "domain.onmicrosoft.com", 
        "Password": "P@ssw0rd",
        "SelectedSubscriptions": [ 
         {
           "O365SubscriptionId": {O365SubscriptionId}
         }
       ],
        "UserName": "example",
        "UserSubscriptions": [ 
         1
       ]
    }'
    
    
    
                            

    Update user password

    - PUT /office365/users/{o365UserId}/password
    Updates user password.
    
    curl --location --request PUT 'http://localhost:8798/office365/users/{UserId}/password' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Basic aGNhZG1pbjpoY2FkbWlu' \
    --data-raw '{
        "Password":"P@ssw0rd"
    }'
    
    
    
    
    
                            

    Why Hosting Controller?


    Hosting Controller provides the necessary business layer over the otherwise distinct, unique, and secluded Microsoft 365 tenants. In other words, it serves as a face for any sizable enterprise or government organization offering Microsoft 365. It provides a full spectrum of services including domain, user, and subscription management for Microsoft 365 organizations, and enables a single enterprise to manage multiple 365 tenants through a single interface.

    Contact Us

    Take Your Business to the
    Next Level


    SCHEDULE A CONSULTATION