Microsoft Teams app: the privacyUrl your manifest must carry
By Paul Cranmer, Founder · Last verified October 2026 · Microsoft Teams · app manifest developer object · Developer Portal
Teams app validation fails on the manifest before anyone looks at your tabs or bots. The developer object requires four fields: name, websiteUrl, privacyUrl and termsOfUseUrl; each URL must start with https:// (http:// is accepted by the schema, but the Store wants https) and may be up to 2,048 characters. For apps submitted to the Teams Store the values must match the information in your Teams Store listing in Partner Center. This page quotes the schema and shows where the Developer Portal and the manifest meet.
Who this is for
- Developers whose Teams app upload fails manifest validation on the developer section
- Teams submitting to the Teams Store through Partner Center
- Builders of Microsoft 365 Copilot agents, which use the same manifest
Not for
- Windows desktop apps in the Microsoft Store (see the Partner Center Properties how-to)
- Azure AD app registration consent screens
What the platform requires
- developer.privacyUrl: the https:// URL to the developer's privacy policy; required; maximum 2,048 characters.
- developer.termsOfUseUrl and developer.websiteUrl: required, same limits; developer.name up to 32 characters; mpnId optional.
- For apps submitted to the Teams Store, these values must match the information in your Teams Store listing.
- The page the URL opens must be public and describe how the app handles Microsoft 365 data it reads or writes.
Get a live URL first
A Teams app is an API/SDK integration in the wizard (free path). Name the app, note the Microsoft Graph or Teams data it reads, and paste the live URL into privacyUrl and into the Developer Portal's app details. Keep one URL across manifest versions.
Get the privacy policy URL for your Teams app (free)Step-by-step: paste your privacy policy URL
- Create the privacy policy URL. Run the wizard as API/SDK with the app's name and the Microsoft 365 data it touches (messages, files, user profiles). Copy the live HTTPS URL.
- Set it in the Developer Portal. dev.teams.microsoft.com → Apps → your app → Basic information → Developer information: Website, Privacy policy, Terms of use. These write the developer object of the manifest.
- Or edit manifest.json directly. In the developer object set websiteUrl, privacyUrl and termsOfUseUrl to https:// URLs under 2,048 characters and name under 32. Validate with the Developer Portal or the Teams Toolkit.
- Match the Partner Center listing. When submitting to the Teams Store, enter the same URLs in the Partner Center listing; mismatches are a validation failure.
Field labels to look for
- Developer Portal → Basic information
- Developer information block: website, privacy policy, terms of use.
- manifest.json developer object
- name, mpnId, websiteUrl, privacyUrl, termsOfUseUrl.
- Partner Center listing
- Must carry the same URLs for Teams Store apps.
Common reasons the form fails
- http:// URLs in a Store submission
- A privacy URL that differs between manifest and listing
- Pointing privacyUrl at the company homepage
FAQ
Is privacyUrl required in a Teams app manifest?
Yes. The developer object requires name, websiteUrl, privacyUrl and termsOfUseUrl.
How long can the URL be?
Up to 2,048 characters; it must start with http:// or https://, and the Store expects https.
Does the manifest URL have to match Partner Center?
For Teams Store apps, yes: the manifest values must match the Teams Store listing.