Legal agreements, WIP
NOTE
This page is a work in progress. Endpoints below haven't been fully researched.
Get subscriber sponsored content agreement, WIP
Response type: SponsoredContentConsentAgreementResponse (undocumented).
GET /v5/legal-agreements/subscriber-sponsored-contentAccept subscriber sponsored content agreement, WIP
Body type: SponsoredContentAcceptConsentRequest (undocumented).
POST /v5/legal-agreements/subscriber-sponsored-contentDelete subscriber sponsored content agreement, WIP
Note: this DELETE endpoint accepts a request body.
Body type: SponsoredContentAcceptConsentRequest (undocumented).
DELETE /v5/legal-agreements/subscriber-sponsored-contentAccept ban agreement, WIP
Acknowledges the community-guideline agreement shown during a timed ban. Flips isAgreementCompleted in the session banDetails.
Body type: BanAgreementRequest (undocumented).
POST /v1/agreements/banGet accepted legal agreements, WIP
Response type: AcceptedLegalAgreementsResponse (undocumented).
GET /v3/me/legal-agreementsAccept legal agreements, WIP
Body type: AcceptLegalAgreementsRequest (undocumented).
PUT /v3/me/legal-agreementsGet vip matchmaker agreement, WIP
Response type: VipMatchmakerConsentAgreementResponse (undocumented).
GET /v5/legal-agreements/vip-matchmakerAccept vip matchmaker agreement, WIP
Body type: VipMatchmakerAcceptConsentRequest (undocumented).
POST /v5/legal-agreements/vip-matchmakerDelete vip matchmaker agreement, WIP
Body type: VipMatchmakerAcceptConsentRequest (undocumented).
DELETE /v5/legal-agreements/vip-matchmakerGet top picks agreement v4, WIP
Response type: TopPicksConsentAgreementResponse (undocumented).
GET /v4/legal-agreements/top-picksAccept top picks agreement v4, WIP
Body type: TopPicksAcceptConsentRequest (undocumented).
POST /v4/legal-agreements/top-picksDelete top picks agreement v4, WIP
DELETE /v4/legal-agreements/top-picksGet top picks agreement v5, WIP
Response type: TopPicksConsentAgreementResponse (undocumented).
GET /v5/legal-agreements/top-picksDelete top picks agreement v5, WIP
Body type: TopPicksAcceptConsentRequest (undocumented).
DELETE /v5/legal-agreements/top-picksGet right now agreement (deprecated), WIP
Removed in the official Android client v26.13.0. The client no longer fetches a Right Now consent agreement, and creating a Right Now post no longer requires accepting one.
Response type: RightNowConsentAgreementResponse (undocumented).
GET /v4/legal-agreements/right-nowAccept right now agreement (deprecated), WIP
Removed in the official Android client v26.13.0. The client no longer accepts a Right Now consent agreement, and creating a Right Now post no longer requires one.
Body type: RightNowAcceptConsentRequest (undocumented).
POST /v4/legal-agreements/right-nowGet legal agreements info, WIP
Response type: LegalAgreementsInfo (undocumented).
GET /v3/legal-agreementsGet consent experience
Returns the consent prompt for a surface and whether to show it. Works with or without Authorization.
GET /v1/consent/experienceQuery:
surface— string,"AI_CONSENT";"PRIVACY_SETTINGS"is accepted but publishes no experience
Response:
surface— string, the requested surfaceexperienceType— string,"AGREEMENT"(accept or decline each consent) or"NOTICE"(informational)experienceVersion— string, e.g."ai-consent.agreement.1"; pass it to Get consent copy and back in Submit consent decisionsvariant— string, experiment treatment ornullpromptRequired— boolean,truewhen the prompt should be shownconsents— array of objectsconsentType— string,"AI_USAGE_AND_FEATURES"or"AI_SENSITIVE_DATA_TRAINING"preselectedValue— boolean, the value to show as selectedresponded— boolean, appears to betrueonce a decision for this type was submitted
Errors:
400—urn:gr:err:parameterwhensurfaceis missing or unknown;urn:gr:err:bad_requestwhen the surface publishes no experience.
Get consent copy
Returns the localized texts of a consent experience version. Works with or without Authorization.
GET /v1/consent/copyQuery:
version— string,experienceVersionfrom Get consent experience, e.g."ai-consent.agreement.1"or"ai-consent.notice.1"
Response:
experienceVersion— string, the requested versionresolvedLocale— string, locale of the texts, e.g."en"strings— object of strings keyed by text id.ai-consent.agreement.1hasaiConsent.agreement.+screenTitle,eyebrow,title,body,offLimitsBody,personalizationTitle,personalizationBody,trainingTitle,trainingBody,accept,decline,continue,confirm,incomplete,incompleteConfirm;ai-consent.notice.1hasaiConsent.agreement.+screenTitle,eyebrow,title,nonEuBody,nonEuOffLimits,nonEuWithdrawal,gotIt
Errors:
400—urn:gr:err:parameterwhenversionis missing;urn:gr:err:bad_requestwhen the version is not published.
Submit consent decisions
Requires Authorization.
POST /v1/consentBody:
submissionId— string, random UUID, reused when retrying the same submissionsurface— string,"AI_CONSENT"or"PRIVACY_SETTINGS"surfaceContext— string,"ONBOARDING"or"IN_APP"experimentTreatment— string,variantfrom Get consent experience, optionaldecisions— array of decisions, at most one per consent typeconsentType— string,"AI_USAGE_AND_FEATURES"or"AI_SENSITIVE_DATA_TRAINING"consentValue— boolean,trueto consentexperienceVersion— string,experienceVersionthe decision was made onpolicyVersion— string, optional
Errors:
400—urn:gr:err:internal_errorwhen the body does not parse, including{}.
Get opt out status (deprecated), WIP
Superseded by Get opt statuses.
POST /v1/opt-outBody:
optOutType— string, e.g."TOP_PICKS"
Response:
isOptedOut— boolean
Set opt out consent, WIP
Body type: ConsentRequest (undocumented).
PUT /v1/opt-outDelete opt out consent, WIP
Body type: ConsentRequest (undocumented).
DELETE /v1/opt-outGet opt statuses
Requires Authorization.
Returns the opt-out and opt-in state of several consent types in one call.
POST /v1/opt-statusBody:
optOutTypes— array of strings, opt-out types to look up, may be empty; known types:"TOP_PICKS","AI_NON_SENSITIVE","GAI","CHAT_SUGGESTIONS","ALBUM_UPDATES_SHARING"optInTypes— array of strings, opt-in types to look up, may be empty; known type:"AI_USAGE_AND_FEATURES"includeDerivedOptOuts— boolean, effect unknown, optional
Response:
optOuts— object keyed by the requested opt-out types;truemeans opted outoptIns— object keyed by the requested opt-in types;truemeans opted in
Errors:
400— A requested type is unknown, oroptOutTypesoroptInTypesis missing.
