Make your first call
Get a key, then list the events of a Calendar Pro calendar. The other APIs work the same way.
Sign in and subscribe
Sign in with the Microsoft 365 account of your organization, then subscribe to the product of the app you want to reach. Production access requires the app's Platinum plan, bought in Admin Center. The Free Trial covers every API at 5 calls per minute and 50 per month.
See the productsCopy your key
Open your profile: each subscription has a primary and a secondary key. Use one and keep the other to rotate without downtime.
Find the ID of your calendar
Every call targets one calendar, contact list or map by its ID — a GUID. Ask your Teams Pro administrator, or contact support if you cannot find it.
Call the API
curl \ https://tp-apim-int.azure-api.net/calendar/v1/$CALENDAR_ID/events \ -H "Ocp-Apim-Subscription-Key: $KEY"
using var http = new HttpClient(); http.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", key); var events = await http.GetStringAsync( $"https://tp-apim-int.azure-api.net/calendar/v1/{calendarId}/events");
const response = await fetch( `https://tp-apim-int.azure-api.net/calendar/v1/${calendarId}/events`, { headers: { "Ocp-Apim-Subscription-Key": key } }); const events = await response.json();
import requests response = requests.get( f"https://tp-apim-int.azure-api.net/calendar/v1/{calendar_id}/events", headers={"Ocp-Apim-Subscription-Key": key}) events = response.json()
$events = Invoke-RestMethod ` -Uri "https://tp-apim-int.azure-api.net/calendar/v1/$calendarId/events" ` -Headers @{ "Ocp-Apim-Subscription-Key" = $key }
Authentication
The TeamsPro Graph APIs authenticate with your subscription key only, in the Ocp-Apim-Subscription-Key header. Keep keys out of source code and front-end apps: anyone holding a key can call the API on your plan. If a key leaks, regenerate it from your profile — the other key keeps working meanwhile.
Errors and throttling
| Status | Meaning | What to do |
|---|---|---|
401 | Missing or invalid subscription key. | Send the header with an active key. |
403 | Quota exhausted for the period: 5,000 calls per week on an app product, 50 per month on the Free Trial. | Wait for the period to roll over, or contact us for more. |
404 | The calendar, list, map or item does not exist. | Check the IDs in the URL. |
429 | Rate limit reached: 100 calls per minute on an app product, 5 on the Free Trial. | Retry after the delay in the Retry-After header. |
Power Automate connector
Each app has a Teams Pro connector in Power Automate. Add it to a flow, create a connection and paste the same subscription key: the connector exposes the operations you see in the API reference, without code.