# embedding_metadata

key: chroma:document
string_value:
DocumentiContent Library and APICitationsSu questa PaginaCitationsEach release of each product has a registered Digital Object Identifier (DOI) included in the citationformats we provide on this page. It is important that you cite the product(s) and Meta when usingour data.
 API version v4.0Citation formatMeta Platforms, Inc., (Month Accessed, Year Accessed).  API version v4.0https://doi.org/10.48680/meta.metacontentlibraryapi.4.0.Abstract API is an API for querying and analyzing Meta's full historical public contentarchive, supporting data analysis in Python and R in the Meta Researcher Platform, a secure digitalclean room.KeywordsMeta, Facebook, Instagram, social media, Facebook Pages, Facebook groups, Facebook events,Facebook posts, Facebook profiles, Facebook comments, Instagram accounts, Instagram posts,Instagram comments, Instagram creator accounts, Instagram business accounts, Instagrampersonal accounts, reelsProduct limitationsPlease see:Search quality approachFrequently asked questions version v4.0Citation formatMeta Platforms, Inc., (Month Accessed, Year Accessed).  version v4.0https://doi.org/10.48680/meta.metacontentlibrary.4.0.Abstract is a web-based tool that allows researchers to explore and understand dataacross Facebook and Instagram by oﬀering a comprehensive, visual, searchable collection ofpublicly accessible content.KeywordsMeta, Facebook, Instagram, social media, Facebook Pages, Facebook groups, Facebook events,Facebook posts, Facebook profiles, Facebook comments, Instagram accounts, Instagram posts,Instagram comments, Instagram creator accounts, Instagram business accounts, Instagrampersonal accounts, reelsProduct limitationsPlease see:Search quality approachFrequently asked questionsCitations for earlier releasesThe citation formats in the following table pertain to earlier releases of  andAPI, and are provided here for reference in reverse chronological order.Product andProduct andversionversionCitation formatCitation formatNotesNotesMeta ContentLibrary APIversion v3.0Meta Platforms, Inc., (Month Accessed, Year Accessed). API version v3.0https://doi.org/10.48680/meta.metacontentlibraryapi.3.0Replaced by ver.4.0 on 7/25/2024Meta ContentLibrary versionv3.0Meta Platforms, Inc., (Month Accessed, Year Accessed). version v3.0https://doi.org/10.48680/meta.metacontentlibrary.3.0Replaced by ver.4.0 on 7/25/2024Meta ContentLibrary APIversion v2.0Meta Platforms, Inc., (Month Accessed, Year Accessed). API version v2.0https://doi.org/10.48680/meta.metacontentlibraryapi.2.0Replaced by ver.3.0 on 4/18/2024Meta ContentLibrary versionv2.0Meta Platforms, Inc., (Month Accessed, Year Accessed). version v2.0https://doi.org/10.48680/meta.metacontentlibrary.2.0Replaced by ver.3.0 on 4/18/2024Meta ContentLibrary APIversion v1.0Meta Platforms, Inc., (Month Accessed, Year Accessed). API version v1.0https://doi.org/10.48680/meta.metacontentlibraryapi.1.0Replaced by ver.2.0 on 1/30/2024Meta ContentLibrary versionv1.0Meta Platforms, Inc., (Month 


key: chroma:document
string_value:
v2.0https://doi.org/10.48680/meta.metacontentlibraryapi.2.0Replaced by ver.3.0 on 4/18/2024Meta ContentLibrary versionv2.0Meta Platforms, Inc., (Month Accessed, Year Accessed). version v2.0https://doi.org/10.48680/meta.metacontentlibrary.2.0Replaced by ver.3.0 on 4/18/2024Meta ContentLibrary APIversion v1.0Meta Platforms, Inc., (Month Accessed, Year Accessed). API version v1.0https://doi.org/10.48680/meta.metacontentlibraryapi.1.0Replaced by ver.2.0 on 1/30/2024Meta ContentLibrary versionv1.0Meta Platforms, Inc., (Month Accessed, Year Accessed). version v1.0https://doi.org/10.48680/meta.metacontentlibrary.1.0Replaced by ver.2.0 on 1/30/2024Meta ContentLibrary API betaversion v1.0Meta Platforms, Inc., (Month Accessed, Year Accessed). API Beta version v1.0https://doi.org/10.48680/meta.metacontentlibraryapibetaversionv1.0Replaced by ver.1.0 on 12/15/2023Meta ContentMeta Platforms, Inc., (Month Accessed, Year Accessed).Replaced by ver.Content Library and APIGet accessQuick linksContent LibraryContent Library APIAppendixSupportDisclosures and DisclaimersCitationsLibrary betaversion v1.0 Beta version v1.0https://doi.org/10.48680/meta.metacontentlibrarybetaversionv1.01.0 on 12/15/2023Researcher APIearly beta 0.6Data from Facebook Open Research and TransparencyTeam Researcher API 0.6, data points from all publicFacebook Pages, groups, events, and post-level Facebookdata from the US and select EU countrieshttps://doi.org/10.48680/meta.researcherapi.0.6This precursorproduct will bedeprecated as of1/31/2024


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Citations - Content Library and API.pdf


key: chroma:document
string_value:
DocumentiContent Library and APICitationsSu questa PaginaCitationsEach release of each product has a registered Digital Object Identifier (DOI) included in the citationformats we provide on this page. It is important that you cite the product(s) and Meta when usingour data.
 API version v4.0Citation formatMeta Platforms, Inc., (Month Accessed, Year Accessed).  API version v4.0https://doi.org/10.48680/meta.metacontentlibraryapi.4.0.Abstract API is an API for querying and analyzing Meta's full historical public contentarchive, supporting data analysis in Python and R in the Meta Researcher Platform, a secure digitalclean room.KeywordsMeta, Facebook, Instagram, social media, Facebook Pages, Facebook groups, Facebook events,Facebook posts, Facebook profiles, Facebook comments, Instagram accounts, Instagram posts,Instagram comments, Instagram creator accounts, Instagram business accounts, Instagrampersonal accounts, reelsProduct limitationsPlease see:
VISITATI DI RECENTESupport - Content Library and APIQuick links - Content Library and APIGet access - Content Library and APIContent Library and APIGet Help - Content Library and APIVISUALIZZA TUTTI I DOCUMENTISearch quality approachFrequently asked questions version v4.0Citation formatMeta Platforms, Inc., (Month Accessed, Year Accessed).  version v4.0https://doi.org/10.48680/meta.metacontentlibrary.4.0.Abstract is a web-based tool that allows researchers to explore and understand dataacross Facebook and Instagram by oﬀering a comprehensive, visual, searchable collection ofpublicly accessible content.KeywordsMeta, Facebook, Instagram, social media, Facebook Pages, Facebook groups, Facebook events,Facebook posts, Facebook profiles, Facebook comments, Instagram accounts, Instagram posts,Instagram comments, Instagram creator accounts, Instagram business accounts, Instagrampersonal accounts, reelsProduct limitationsPlease see:Search quality approachFrequently asked questionsCitations for earlier releasesThe citation formats in the following table pertain to earlier releases of  andAPI, and are provided here for reference in reverse chronological order.Product andProduct andversionversionCitation formatCitation formatNotesNotesMeta ContentLibrary APIversion v3.0Meta Platforms, Inc., (Month Accessed, Year Accessed). API version v3.0https://doi.org/10.48680/meta.metacontentlibraryapi.3.0Replaced by ver.4.0 on 7/25/2024Meta ContentLibrary versionv3.0Meta Platforms, Inc., (Month Accessed, Year Accessed). version v3.0https://doi.org/10.48680/meta.metacontentlibrary.3.0Replaced by ver.4.0 on 7/25/2024Meta ContentLibrary APIversion v2.0Meta Platforms, Inc., (Month Accessed, Year Accessed). API version v2.0https://doi.org/10.48680/meta.metacontentlibraryapi.2.0Replaced by ver.3.0 on 4/18/2024Meta ContentLibrary versionv2.0Meta Platforms, Inc., 


key: chroma:document
string_value:
version v3.0https://doi.org/10.48680/meta.metacontentlibraryapi.3.0Replaced by ver.4.0 on 7/25/2024Meta ContentLibrary versionv3.0Meta Platforms, Inc., (Month Accessed, Year Accessed). version v3.0https://doi.org/10.48680/meta.metacontentlibrary.3.0Replaced by ver.4.0 on 7/25/2024Meta ContentLibrary APIversion v2.0Meta Platforms, Inc., (Month Accessed, Year Accessed). API version v2.0https://doi.org/10.48680/meta.metacontentlibraryapi.2.0Replaced by ver.3.0 on 4/18/2024Meta ContentLibrary versionv2.0Meta Platforms, Inc., (Month Accessed, Year Accessed). version v2.0https://doi.org/10.48680/meta.metacontentlibrary.2.0Replaced by ver.3.0 on 4/18/2024Meta ContentLibrary APIversion v1.0Meta Platforms, Inc., (Month Accessed, Year Accessed). API version v1.0https://doi.org/10.48680/meta.metacontentlibraryapi.1.0Replaced by ver.2.0 on 1/30/2024Meta ContentLibrary versionv1.0Meta Platforms, Inc., (Month Accessed, Year Accessed). version v1.0https://doi.org/10.48680/meta.metacontentlibrary.1.0Replaced by ver.2.0 on 1/30/2024Meta ContentLibrary API betaversion v1.0Meta Platforms, Inc., (Month Accessed, Year Accessed). API Beta version v1.0https://doi.org/10.48680/meta.metacontentlibraryapibetaversionv1.0Replaced by ver.1.0 on 12/15/2023Meta ContentMeta Platforms, Inc., (Month Accessed, Year Accessed).Replaced by ver.Content Library and APIGet accessQuick linksContent LibraryContent Library APIAppendixSupportDisclosures and DisclaimersCitationsLibrary betaversion v1.0 Beta version v1.0https://doi.org/10.48680/meta.metacontentlibrarybetaversionv1.01.0 on 12/15/2023Researcher APIearly beta 0.6Data from Facebook Open Research and TransparencyTeam Researcher API 0.6, data points from all publicFacebook Pages, groups, events, and post-level Facebookdata from the US and select EU countrieshttps://doi.org/10.48680/meta.researcherapi.0.6This precursorproduct will bedeprecated as of1/31/2024


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Content Library - Content Library and API.pdf


key: chroma:document
string_value:
DocumentiContent Library and APIContent LibrarySu questa PaginaMeta Content LibraryMeta Content Library has a web-based user interface in which to explore data, test out searchparameters, and assess whether the resulting data is appropriate for your planned research. Noknowledge of query or programming languages is needed.Meta Content Library API is a complementary API product that allows researchers toprogrammatically pull data from the same public content library.
IntroductionContent Library is a web-based tool that allows researchers to explore and understand data acrossFacebook and Instagram by oﬀering a comprehensive, visual, and searchable collection of publiclyaccessible content.For support at any time, refer to Get help in our Meta Content Library and API documentation.For information about ongoing issues, visit the Data Transparency Status page.Scope of included dataWhen you enter a query, you can select which platform you’d like to search (Facebook, Instagram orThreads). For Facebook and Instagram, you can then select to search either the view-only publicdataset or the downloadable public data subset.FacebookPublic data available in Meta Content Library (view-only)Data includes the following publicly accessible content:Posts on public Pages, public groups, public eventsPosts on public profiles with a verified badge or 1,000 or more followersInformation about public Pages, public groups, public events and public profiles that meetthe above criteriaDownloadable public data (from widely-known individuals and organizations)Data includes the following publicly accessible content:Posts from public Pages with 15,000 or more likes or 15,000 or more followersPosts from public profiles with a verified badge or 25,000 or more followersInformation about public Pages and public profiles that meet the above criteriaPublic Pages include both classic Pages and the new Pages experience.To be included in the downloadable public dataset, profiles must not be locked and must be set topublic with a verified badge or 25,000 or more followers. A verified badge in this context refers toaccounts confirmed as authentic and not 


key: chroma:document
string_value:
experience.To be included in the downloadable public dataset, profiles must not be locked and must be set topublic with a verified badge or 25,000 or more followers. A verified badge in this context refers toaccounts confirmed as authentic and not those with a paid Meta Verified subscription. Learn moreabout verified Pages and profiles.Downloadable public data consists of posts from eligible profiles and Pages to all surfaces,including groups, events and Pages.Note: Downloads are only available if the Inter-university Consortium for Political and SocialResearch (ICPSR) has approved your Meta Content Library application and you haveconsented to the Product Terms for Meta Research Tools.InstagramPublic data available in Meta Content Library (view-only)Data includes the following publicly accessible content:Posts from public business accounts and public creator accountsPosts from personal accounts set to public with 1,000 or more followersInformation about public Instagram accounts that meet the above criteriaDownloadable public data (from widely-known individuals and organizations)Data includes the following publicly accessible content:Posts from public business and public creator accounts with a verified badge or 25,000 ormore followersPosts from personal accounts set to public with a verified badge or 25,000 or more followersInformation about public Instagram accounts that meet the criteria abovePublic Instagram accounts include professional accounts for businesses and creators. They alsoinclude personal accounts that meet the qualification criteria outlined above.A verified badge in this context refers to accounts confirmed as authentic and not those with a paidMeta Verified subscription. Learn more about verified badges.Note: Downloads are only available if the Inter-university Consortium for Political and SocialResearch (ICPSR) has approved your Meta Content Library application and you haveconsented to the Product Terms for Meta Research Tools.ThreadsData includes the following publicly accessible content:Posts shared by public profiles with 1,000 or more followersInformation about public profilesNote: Threads content is a newly added data type in Meta Content Library. Data 


key: chroma:document
string_value:
haveconsented to the Product Terms for Meta Research Tools.ThreadsData includes the following publicly accessible content:Posts shared by public profiles with 1,000 or more followersInformation about public profilesNote: Threads content is a newly added data type in Meta Content Library. Data quality mayhave significant variation as the dataset on MCL is still in active development. Threadscontent is not available for download while this dataset is in development.Geographic scopePublic data from public Facebook Pages, groups, events and profiles, and from public Instagramaccounts and Threads profiles from most countries/territories. Public data/content will be excludedfrom these countries:ChinaNorth KoreaSouth KoreaTogoThis means that:. At least one admin of a public Facebook Page, group, event or profile must have a statedlocation that is in a non-excluded country or region for information about that Page, group,event or profile to be accessible. The owner of a public Instagram account or Threads profilemust have a primary country or region that is in a non-excluded country or region forinformation about that account or profile to be accessible.. Of the Facebook Pages, groups, events, profiles, Instagram accounts and Threads profilesthat qualify based on #1, only posts made by users in non-excluded countries/territories are inscope.Language scopeSearch results in all languages are included unless the search is filtered based on language.Components of a Facebook postPost reactions: Number of reactions on the post.Post comments: Number of comments on the post. Comments on the post can be accessedby clicking the View comments link. This includes comments from all producers whoresponded to the post.Post shares: Number of shares of the post.Post views: Number of times the post was on screen, not including times it appeared on thepost owner’s screen. For video posts, views are counted whether the video was played or not.Only posts with more than 100 views display the view count. A post displays no view 


key: chroma:document
string_value:
was on screen, not including times it appeared on thepost owner’s screen. For video posts, views are counted whether the video was played or not.Only posts with more than 100 views display the view count. A post displays no view countvalue if there were fewer than 100 views as of the last refresh. View counts for posts createdwithin the last 180 days are refreshed approximately every 24 hours, provided the post hasaccumulated more than 10 views within that 24 hour period. If not, view counts are refreshedevery 5-7 days. View counts for posts created more than 180 days ago are refreshed every 5-7days. View counts are not available for posts created before January 1, 2017.Post owner: Original creator of the post.Post activity type: Type of activity represented in a post. Activity types include streaming orplaying (of a gaming video).Post activity name: Name of the activity represented in a post. For example, if the activitytype is streaming (of a gaming video), this would be the name of the game being played.Post surface country (for posts from Pages and profiles only): Primary country or region of thePage admin(s) of the post, or primary country or region of the profile owner of the post.Post date: Date posted to Facebook.Post media (text): Full text shared in the post.Post media (image): Images shared in the post.Post media (video and reels): Videos and reels shared in the post.Post media (link): Complete URL of the link shared in the post.Components of an Instagram postPost likes: Number of like reactions on the post.Post comments: Number of comments on the post. Comments on the post can be accessedby clicking the View comments link. This includes comments from all producers whoresponded to the post.Post views: Number of times the post was on screen, not including times it appeared on thepost 


key: chroma:document
string_value:
the post. Comments on the post can be accessedby clicking the View comments link. This includes comments from all producers whoresponded to the post.Post views: Number of times the post was on screen, not including times it appeared on thepost owner’s screen. For video posts, views are counted whether the video was played or not.Only posts with more than 100 views display the view count. A post displays no view countvalue if there were fewer than 100 views as of the last refresh. View counts for posts createdwithin the last 180 days are refreshed approximately every 24 hours, provided the post hasaccumulated more than 10 views within that 24 hour period. If not, view counts are refreshedevery 3-5 days. View counts for posts created more than 180 days ago are refreshed every 3-5days. View counts are not available for posts made before October 1, 2022. Note that thismetric diﬀers from the Views metric displayed on Instagram, which measures the number oftimes a reel started to play and the number of times a non-reel displayed on a person’sscreen.Post owner: Original producer of the post.Post date: Date posted to Instagram.Post media (image): Images shared in the post.Post media (videos and reels): Videos and reels shared in the post.Post media (album): Posts containing two or more images or videos.Components of a Threads postPost likes: Number of like reactions on the post.Post replies: Replies on the post, including replies to previous replies. Replies on the post canbe accessed by clicking the View replies link. This includes replies from all producers whoresponded to the post.Reposts: Number of times the content was reposted.Post views: Number of times the post was on screen, not including times it appeared on thepost owner’s screen. For original posts, view counts include views of the post itself but do notinclude views 


key: chroma:document
string_value:
Number of times the content was reposted.Post views: Number of times the post was on screen, not including times it appeared on thepost owner’s screen. For original posts, view counts include views of the post itself but do notinclude views of reposts or quotes of the post. For quotes, view counts include views of thequote but do not include views of the original post or reposts. For replies, view countsinclude views of the reply but do not include views of the original post, quotes or reposts. Forvideo posts, views are counted whether the video was played or not. Only posts with morethan 100 views display the view count. A post displays no view count value if there werefewer than 100 views as of the last refresh. View counts for posts created within the last 180days are refreshed every 24 hours, provided the post has accumulated more than 10 viewswithin a 24 hour period after September 17, 2024. View counts for posts created more than180 days ago are refreshed every 2 days. View counts are not available for posts createdbefore March 17, 2024.Post owner: Original producer of the post.Post date: Date posted to Threads.Post media (text-only): Posts that only contain text and no other types of media.Post media (photos): Images shared in the post.Post media (videos): Videos shared in the post.Post media (albums): Posts containing two or more images or videos.Post media (links): Posts containing one or more links.
Supported search optionsSearching by URL, keyword or exact phrase is supported. Search is case insensitive. Additionalinformation regarding searches is available in Advanced search.Supported keyword search methodSupported keyword search methodExampleExampleBoolean search using &, |, -taco & pizza, taco | pizza, taco -pizzaAll of these wordstaco pizza bread (space interpreted as &)Any of these wordstaco | pizza | breadExclude these wordspizza-anchovies, pizza -anchoviesGroup multiple keywords(taco 


key: chroma:document
string_value:
keyword search methodSupported keyword search methodExampleExampleBoolean search using &, |, -taco & pizza, taco | pizza, taco -pizzaAll of these wordstaco pizza bread (space interpreted as &)Any of these wordstaco | pizza | breadExclude these wordspizza-anchovies, pizza -anchoviesGroup multiple keywords(taco | pizza) & (love)Hashtag#pizzasauceURL shared in contenthttps://www.youtube.com/Phrase (5 words and under)“i love pizza”Phrase and boolean combined search“i love tacos” & “i love pizza” “i love tacos” | “i lovepizza”Unsupported keyword search methodUnsupported keyword search methodExampleExampleBoolean search by using AND, OR, NOTtaco AND pizza, taco OR pizza, taco NOT pizzaTags only@pizzasauceURL of posthttps://www.facebook.com/Meta/videos/101/None of these words-pizza - anchovies
Supported filtering optionsNote: You can clear all filters by clicking the Reset filters (arrows in a circle) button in thetop menu bar (hover over the button to view the label).FacebookFilterFilterOptions availableOptions availableDate rangeResults include those postedwithin the speciﬁed time frame.Select a date range or view content from all time.Post surfaceResults include those posted fromthe speciﬁed endpoints.Select one or more:Proﬁles: Posts that appear on proﬁles set to public with averiﬁed badge or 25,000 or more followers (fordownloadable public data) or 1,000 or more followers (forview-only data)Pages: Posts that appear on public Pages, posted byanyoneEvents: Posts that appear on public events, posted byanyoneGroups: Posts that appear on public groups, posted byanyoneNote: To be included, proﬁles must not be locked and must be setto public with a veriﬁed badge or 25,000 or more followers (fordownloadable public data) or 1,000 or more followers (for view-only data). A veriﬁed badge in this context refers to accountsconﬁrmed as authentic and not those with a paid Meta Veriﬁedsubscription.The usernames of post owners will only be displayed if theirproﬁles meet the above criteria.Post surface countryResults include Pages with at leastone admin in the speciﬁedlocation. Only available when youselect Pages in the Post surfaceﬁlter.Over 250 locations are available listed in alphabetical order. Selectone 


key: chroma:document
string_value:
owners will only be displayed if theirproﬁles meet the above criteria.Post surface countryResults include Pages with at leastone admin in the speciﬁedlocation. Only available when youselect Pages in the Post surfaceﬁlter.Over 250 locations are available listed in alphabetical order. Selectone or more. An option to "select all" is also provided.
ProducerResults include those originatingfrom producers that match thespeciﬁed search term.Search for and select the public Pages, groups, events or proﬁlesthat posted the content. You can also select producer lists youpreviously created.Searches for producers will return all posts made to the Page,group, event or proﬁle but not posts made by the producer to otherPages, groups, events or proﬁles.For proﬁles, only posts made by a user to their own proﬁle areavailable.LanguageResults include those in theselected languages.Over 180 languages are available, listed in alphabetical order.Select one or more. An option to “select all” is also provided.Content typeResults include the selectedcontent types.Select one or more:Albums: Includes posts with more than one photo or videoPhotos: Includes posts with a single photoVideos and reels: Includes posts with a single video(including a gaming video) or reelStory highlights: Includes stories added to highlights (Storyhighlights are available after they have been live for morethan 48 hours.)Miscellaneous: Includes links and resharesViewsThe number of times the post wason screen, not including times itappeared on the post owner’sscreen. For video posts, views arecounted whether the video wasplayed or not.A slide bar is provided to specify a range of views from 0 to themaximum of more than 100 million.
Branded contentContent for which the creator hasSelect one:Include branded contentbeen compensated, eithermonetarily or with something elseof value, by a business partner.Ads are not included as part ofbranded content.Exclude branded contentBranded content only
InstagramFilterFilterOptions availableOptions availableDate rangeResults include those postedwithin the speciﬁed time frame.Select a date range or view content from all time.
Account typeResults include those posted fromthe 


key: chroma:document
string_value:
value, by a business partner.Ads are not included as part ofbranded content.Exclude branded contentBranded content only
InstagramFilterFilterOptions availableOptions availableDate rangeResults include those postedwithin the speciﬁed time frame.Select a date range or view content from all time.
Account typeResults include those posted fromthe speciﬁed endpoints.Select one or more:Personal: Accounts set to public with a veriﬁed badge or25,000 or more followers (for downloadable public data) or1,000 or more followers (for view-only data)Business: Accounts with access to tools to grow and reachcustomersCreator: Accounts for content creators, artists andinﬂuencersNote: The Personal ﬁlter includes Instagram proﬁles set up aspersonal accounts, not professional accounts. To be included anaccount must be set to public, not private, meaning anyone onInstagram can see posts and videos on the account’s proﬁle. Inaddition, the account must have either a veriﬁed badge or 25,000or more followers (for downloadable public data) or 1,000 or morefollowers (for view-only data). A veriﬁed badge in this contextrefers to accounts conﬁrmed as authentic and not those with apaid Meta Veriﬁed subscription.ProducerResults include those originatingfrom producers that match thespeciﬁed search term.Search for and select the public accounts that posted the content.You can also select producer lists you previously created.
LanguageResults include those in theselected languages.Over 180 languages are available, listed in alphabetical order.Select one or more. An option to “select all” is also provided.Content typeResults include the selectedcontent types.Select one or more:Albums: Includes posts with more than one photo or videoPhotos: Includes posts with a single photoVideos and reels: Includes posts with a single video or reelStory highlights: Includes stories added to highlights (Storyhighlights are available after they have been live for morethan 48 hours.)ViewsThe number of times the post wason screen, not including times itappeared on the post owner’sscreen. For video posts, views arecounted whether the video wasplayed or not.A slide bar is provided to specify a range of views 


key: chroma:document
string_value:
for morethan 48 hours.)ViewsThe number of times the post wason screen, not including times itappeared on the post owner’sscreen. For video posts, views arecounted whether the video wasplayed or not.A slide bar is provided to specify a range of views from 0 to themaximum of more than 100 million.
Branded contentContent for which the contentcreator has been compensated,either monetarily or withsomething else of value, by aSelect one:Include branded contentExclude branded contentBranded content onlybrand partner. Ads are notincluded as part of brandedcontent.ThreadsFilterFilterOptions availableOptions availableDate rangeResults include those postedwithin the speciﬁed time frame.Select a date range or view content from all time.
LanguageResults include those in theselected languages.Over 180 languages are available, listed in alphabetical order.Select one or more. An option to “select all” is also provided.ProducerResults include those originatingfrom producers that match thespeciﬁed search term.Search for and select the public accounts that posted the content.You can also select producer lists you previously created.
Post typeResults include the selected typesof post.Select one or more:Original posts: The content that starts a thread.Replies: Responses to other posts.Quotes: Posts with another post attached and text or mediaadded. (Note: Keyword searches will only apply to the text ofthe additional commentary, not the quoted existing post.)Posts by public proﬁles with more than 1,000 followers areincluded in the searchable data.Reposts are not a supported post type.Content typeResults include the selectedcontent types.Select one or more:Albums: Includes posts with more than one photo or videoPhotos: Includes posts with a single photoVideos: Includes posts with a single videoViewsThe number of times the post wason screen, not including times itappeared on the post owner’sscreen. For video posts, views arecounted whether the video wasplayed or not.A slide bar is provided to specify a range of views from 0 to themaximum of more than 10 million. If the views ﬁlter is applied,posts without a view count available 


key: chroma:document
string_value:
video posts, views arecounted whether the video wasplayed or not.A slide bar is provided to specify a range of views from 0 to themaximum of more than 10 million. If the views ﬁlter is applied,posts without a view count available are not displayed.
Branded contentContent for which the producerhas been compensated, eithermonetarily or with something elseof value, by a brand partner. Adsare not included as part ofbranded content.Select one:Include branded contentExclude branded contentBranded content only
Search text in imagesYou can search for text in images posted on Facebook or Instagram within approximately the last90 days. To enable image search, toggle on the Find text in images switch near the search bar.When this option is selected, results display with text matches in the images or in the post text. Alabel will appear to indicate if an image contains text matching the search terms.If the Find text in images option is disabled, ensure photos or albums are selected in the Contenttype filter. For Instagram, text in image search is also available for photos shared as storyhighlights.Phrase matches aren’t available for text in image search.There may be reduced data quality for text matching on images.Supported viewing optionsSearch results can be shown in card view or in table view. You can switch between these viewoptions using the dropdown displayed at the top right above the posts.Card view displays the posts in a similar format to how they appear on Facebook or Instagram.Table view displays highlights about each post in a format that allows for easier browsing of a largenumber of posts on the same page. You can click the See more link following the post text previewto display more of the post’s content.Supported sorting optionsYou have the following sorting options for search results:The date the post was made, from most to least recentThe date the post 


key: chroma:document
string_value:
can click the See more link following the post text previewto display more of the post’s content.Supported sorting optionsYou have the following sorting options for search results:The date the post was made, from most to least recentThe date the post was made, from least to most recentThe number of views the post received, from highest to lowest (default sorting)Save your searchesSave your specified search parameters for future use by clicking the Save search button on the topmenu bar (hover over the button to view the label).Then enter a name for your search and click Save.Saved searches are available on your Home page (left menu bar). Click the corresponding Viewbutton to select a saved search. You have the option to display your saved searches with the mostrecent or the least recent at the top of the list.Share your searchesClick the Share search button on the top menu bar to copy your search to share with others (hoverover the button to view the label).Create producer listsCreate custom producer lists (available only to you) for quick reuse in your searches. Start byclicking Producer lists in the left menu bar, then Create list. Select if you would like to create a newlist or import from a CSV file. Give the list a name and specify Facebook or Instagram.If you’ve selected to upload a list of producers, choose the CSV file to upload. The file should onlycontain producer URLs and be in the correct format. You can add a maximum of 1,000 producers toa list. After the file format is validated, you can click Create list. If matches for any producers arenot found, you’ll see a list of the producers that have not been added. Click Done. You will then seethe list of the producers that have been added to the list.Click +Add producers to 


key: chroma:document
string_value:
list. If matches for any producers arenot found, you’ll see a list of the producers that have not been added. Click Done. You will then seethe list of the producers that have been added to the list.Click +Add producers to search for and select the producers for your list. For Facebook, specifyPages, groups, events or profiles. For Instagram, all available producers are public accounts. Youcan select from view-only and downloadable producers when creating your lists. View-onlyproducers will be excluded if you search downloadable public data. Once you have selected theproducers for the list, click Done.All custom producer lists are available on your Producer lists page in the left menu bar.Share your producer listsWhen viewing a producer list, click the Share button at the top of the page.Copy link will enable you to share the producer list with others who are logged in to MetaContent Library and have the same account type as you.Create API list ID generates an ID which can be used in the API to view the producer list inthe API. Note: This feature is only available from version 4.0 onwards, and only in ResearcherPlatform.
See Share producer lists for complete instructions.Import producer lists shared with youYou can import producer lists shared with you for quick reuse in your searches. Start by copyingthe shared link into your browser’s address bar. You will see a modal with the list name and includedproducers. Click Add to my lists to include on your Producer lists page.Download dataIf you select the downloadable public data subset for Facebook or Instagram when you search,you’ll see a Download CSV button above your search results. Threads content is not available fordownload as this dataset is in active development.Note: Downloads are only available if the Inter-university Consortium for Political and SocialResearch (ICPSR) has approved your Meta Content Library 


key: chroma:document
string_value:
a Download CSV button above your search results. Threads content is not available fordownload as this dataset is in active development.Note: Downloads are only available if the Inter-university Consortium for Political and SocialResearch (ICPSR) has approved your Meta Content Library application and you haveconsented to the Product Terms for Meta Research Tools.Be sure to note the estimated number of your search results (above the results on the search page)before you begin to download a CSV file. Search results greater than 100,000 are not able to bedownloaded. If your search has returned more than 100,000 results, you’ll need to refine yourquery to reduce the number of results. You can continue to modify the search filters until thesearch results are under the maximum allowed for download.After you have refined your search, you’ll be able to click the Download CSV button. Then a modalwill display the search criteria used in your query. Note that results will be sorted newest to oldestin the downloaded CSV file, regardless of which sorting option you have applied when viewing thecontent. You’ll be prompted to enter a file name, and then you’ll be able to click to start thedownload.Once your file is ready for download, go to Downloads in the left menu bar. All of the files you haverequested to download are listed on this page, and you’ll be able to see which are ready fordownload and which are being prepared.Select a file to download to your local machine. You can download up to 10 CSV files per day, withup to 100,000 search results per CSV file.Get API code featureNote: This feature is only available if you are using Content Library API in ResearcherPlatform.Capture your current search in the form of Python or R code. Paste the code into Meta ContentLibrary API to retrieve search results you can 


key: chroma:document
string_value:
code featureNote: This feature is only available if you are using Content Library API in ResearcherPlatform.Capture your current search in the form of Python or R code. Paste the code into Meta ContentLibrary API to retrieve search results you can analyze in greater depth.Step 1 Set your search criteria.Step 2 Click the Get API code button in the top menu bar (hover over the button to view the label).Step 3 The search criteria and corresponding API code are displayed, along with instructions (suchas VPN access needed). In the codeblock, click the tab corresponding to your language preference(R or Python):NoteThe language (R or Python) must correspond to the language of the Jupyter notebook intowhich you paste the code.Be sure to note the size of your search results (above the results on the search page) before you usethe same search in Content Library API. Search results greater than 100,000 will return an error inthe API. See Get API Code for complete instructions.Trends in posts createdThe Trends in posts created graph shows how often content matching your search keywords wasposted on Facebook, Instagram or Threads within your chosen date range. It's important to notethat the graph values are not the actual number of posts but are normalized to a scale of 0-100.This normalization process involves dividing each data point by the highest point in the graph, thenmultiplying by 100 and rounding to the nearest whole number. A value of 50 indicates that the postfrequency is half of the highest recorded, while a value of 0 suggests insu%icient data for the query.These graphs are estimations, meant to assist researchers in spotting patterns and trends in postvolume. Normalization ensures consistency and comparability across various queries andexperiments, allowing researchers to concentrate on relative diﬀerences and easily spot periodswith the highest or lowest post volumes.When you hover 


key: chroma:document
string_value:
estimations, meant to assist researchers in spotting patterns and trends in postvolume. Normalization ensures consistency and comparability across various queries andexperiments, allowing researchers to concentrate on relative diﬀerences and easily spot periodswith the highest or lowest post volumes.When you hover over the graph, a number appears showing the change compared to the previousday, week, or month, based on your chosen date range. The data points are daily for ranges under270 days, weekly for ranges between 270 days and 5 years, and monthly for ranges over 5 years.This change metric is calculated by taking the diﬀerence between the current and previous values,dividing by the previous value, and then multiplying by 100. It displays as N/A if the previous valueis 0 or unavailable.DashboardsYou can create custom dashboards to display post feeds and trend charts based on selectedkeywords or producers. Learn more about dashboardsAdditional informationThe search index only searches raw text of content from public Pages, groups, and events. Itdoes not search metadata of photos, full URL matches, or comments. Occasionally resultswill match terms that are semantically related to a query term, or contain the query term as asubstring. Tags in a post cannot be searched.Search is case insensitive and only complete matches are returned (not partial matches).The tool retrieves only the top 1,000 search results, so the search results are not necessarilyrepresentative of all Facebook, Instagram or Threads posts on the search term in the specifictimeframe of the query.The top 1,000 search results can diﬀer slightly day to day, not only due to newly createdcontent but also because post owners might have deleted the content or modified theprivacy settings.Newly created Facebook profiles, Instagram accounts or Threads profiles, and contentposted by these newly created profiles and accounts may not be included in Meta ContentLibrary for up to 4 days.Grouping multiple keywords in querying 


key: chroma:document
string_value:
deleted the content or modified theprivacy settings.Newly created Facebook profiles, Instagram accounts or Threads profiles, and contentposted by these newly created profiles and accounts may not be included in Meta ContentLibrary for up to 4 days.Grouping multiple keywords in querying the data is not supported for languages that are readright-to-left.Each researcher is limited to a maximum of 60 searches per minute.Each researcher is limited to 500,000 total search results for Content Library and APIcombined per 7-day rolling window.Results in downloaded CSV files from Content Library will be counted towards your 500,000total search results limit.DisclosuresData governance and sources described in Search quality may change from time to time and themetrics presented may not be representative of current operations at Meta. Due to issues such aserroneously logging the data sources from which the metrics are created, the metrics may suﬀerfrom fluctuating data quality and incompleteness, which may lead to fluctuating accuracy. In theSearch quality document, we disclose known fluctuations where possible. Individuals usingFacebook and Instagram data are responsible for conducting standard and thorough data cleaningprocesses, and are responsible for ensuring that their analyses are accurate. It is expected theremay be issues with the data when conducting their analysis. We encourage individuals to share anyfindings with us. This may include, but is not necessarily limited to, data quality, validity, or fidelityissues. Given the historical nature of the data and lapsed retention periods, we may not be able tofix the issues identified, but in such cases we will work to disclose them. Please reach out to usthrough Direct Support.DisclaimersMeta works diligently and utilizes a variety of quality assurance measures to improve the accuracy,quality, and reliability of the data it shares for research purposes. However, given the volume ofdata released and the imperfection of any quality assurance process, inaccuracies persist. Metamakes no representation or warranty, 


key: chroma:document
string_value:
variety of quality assurance measures to improve the accuracy,quality, and reliability of the data it shares for research purposes. However, given the volume ofdata released and the imperfection of any quality assurance process, inaccuracies persist. Metamakes no representation or warranty, express or implied, including without limitation, anywarranties of fitness for a particular purpose or warranties as to the quality, accuracy orcompleteness of data or information. By accessing this data, individuals acknowledge that the datamay contain nonconformities, defects, or errors. Meta does not warrant that the data will meet allneeds or expectations, that the use of the data will be uninterrupted, or that nonconformities,defects, or errors can or will be corrected.Content Library and APIGet accessQuick linksContent LibraryDashboardsContent Library APIAppendixSupportDisclosures and DisclaimersCitationsLearn MoreQuick linksMeta Content LibraryMeta Content Library API documentationGet helpProduct Terms for Meta Research Tools


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Content Library and API.pdf


key: chroma:document
string_value:
DocumentiContent Library and APISu questa PaginaMeta Content Library and APIWelcome to Meta Content Library and API. This page provides a broad-level overview of theseproducts and acquaints you with the documentation resources that are available. To learn aboutobtaining access, see Get Access.Content Library: a web-based tool that allows researchers to explore and understand dataacross Facebook and Instagram by oﬀering a comprehensive visual and searchable collectionof publicly accessible content. Learn more about Content Library.Content Library API: an API for querying and analyzing Meta's full public content archive. TheAPI supports data analysis in Python and R in Meta's Researcher Platform, a secure digitalcleanroom. VPN connection is required for Researcher Platform. The API can also be used inan approved third-party cleanroom. Each third-party cleanroom environment has its own userinterface, the documentation of which is outside the scope of Meta Content Library and APIdocumentation. Learn more about Content Library API.Content Library and API are controlled-access environments. The functionality to download thepublic data subset is only available in the Content Library user interface (not in the API), and only ifthe Inter-university Consortium for Political and Social Research (ICPSR) has approved your MetaContent Library application and you or your institution has consented to the appropriate contractterms (Product Terms for Meta Research Tools, Information Sharing Agreement). You can performprogrammatic analysis of the public content from the library by using Content Library API inResearcher Platform or in an approved third-party cleanroom environment.
Content Library highlightsSearching and filteringSearching all public posts across Facebook or Instagram is easy with comprehensive sorting andfiltering options. Post results can be filtered by language, view count, media type, contentproducer and more. Search results can be shown in card view or table view.MultimediaPhotos, videos and reels are available for dynamic search, exploration and analysis.Producer listsYou can apply custom producer lists to a search query to surface public 


key: chroma:document
string_value:
media type, contentproducer and more. Search results can be shown in card view or table view.MultimediaPhotos, videos and reels are available for dynamic search, exploration and analysis.Producer listsYou can apply custom producer lists to a search query to surface public content from specificcreators on Facebook or Instagram.Trends in posts createdResearchers can explore a graph showing a normalized trend of how often content matching theirsearch keywords was posted on Facebook and Instagram within their chosen date range.Documentation resourcesThe Content Library "About" tab has comprehensive documentation right in the UI.Content Library documentation has the same information, but does not require access to theContent Library UI.Quick links provides quick access to key topics of interest to Content Library and API users.Content Library API highlightsEndpoints and data fieldsWith eight dedicated endpoints, Content Library API searches over 100 data fields. For Instagramthis includes accounts, posts and comments. For Facebook this includes Pages, posts, comments,profiles, groups and eventsSearch indexing and resultsThe API has powerful search capabilities and can return up to 100,000 results per query.Asynchronous searchIn addition to synchronous search, you can submit asynchronous queries in Content Library API.This means a search can run in the background while you submit other queries or work on othertasks.Documentation resourcesContent Library API documentation.Quick links provides quick access to key topics of interest to Content Library and API users.Researcher Platform highlightsResearcher Platform is a virtual data cleanroom that provides secure access to Facebook andInstagram datasets and tools designed for researchers.Free computationComputation and data analysis on Researcher Platform are free. The platform supports researcherscollaborating on terabyte- to petabyte-scale datasets.JupyterHub environmentResearcher Platform runs a modified, access-controlled version of JupyterHub—an open sourcetool that supports R, Python, SQL and a range of standard statistical packages. It oﬀers both CPUand GPU servers.Research outputsYou can export your research outputs under agreed-upon terms and conditions. Research outputscan consist of code, figures, 


key: chroma:document
string_value:
version of JupyterHub—an open sourcetool that supports R, Python, SQL and a range of standard statistical packages. It oﬀers both CPUand GPU servers.Research outputsYou can export your research outputs under agreed-upon terms and conditions. Research outputscan consist of code, figures, tables, graphs and statistics.Documentation resourcesResearcher Platform documentation.Content Library and APIGet accessQuick linksContent LibraryContent Library APIAppendixSupportDisclosures and DisclaimersCitations


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Dashboards - Content Library and API - Documentazione - Meta for Developers.pdf


key: chroma:document
string_value:
DocumentiContent Library and APIContent LibraryDashboardsSu questa PaginaMeta Content LibraryDashboardsYou can create custom dashboards to display post feeds and trend charts based on selectedkeywords or producers. Dashboards are powered by the public content dataset.
Create dashboardsStart by clicking Dashboards in the left menu bar, then click Create dashboard and give thedashboard a name. The name displays on your Dashboards page to help you locate and sort thedashboards you created. The name also appears with the dashboard if you share access with otherpeople. Each dashboard can have up to 5 sections and each section can have 3 columns so you caneasily organize and compare data.After creating the dashboard, you can then name the first section or start setting up columns.To name the section, click the dropdown menu in the Section 1 tab and select Rename. Enter thename to use for this section and click Apply.To configure a column, click Set up in the column card. Enter a column name and specifyFacebook, Instagram or Threads. Click Apply.Choose default values for the supported filtering options, including at least one keyword orproducer. For Facebook, producers include public Pages, groups, events and eligible profiles. ForInstagram, producers include public business, creator and personal accounts. You can refine thedata when viewing the dashboard, but you must return to edit mode to change the default settings.Click Apply to finish setting up the column. To set up more columns in the dashboard, repeat thesesteps for columns 2 and 3. Otherwise, click Publish to finish creating the dashboard.To add more sections to the dashboard, click Add section and repeat the process you followed tocreate the first section. To delete a section, click to expand the dropdown menu by the sectionname and then select Delete. Each dashboard is required to have at least 1 section, so you cannotremove the last remaining section.View dashboardsOnce 


key: chroma:document
string_value:
followed tocreate the first section. To delete a section, click to expand the dropdown menu by the sectionname and then select Delete. Each dashboard is required to have at least 1 section, so you cannotremove the last remaining section.View dashboardsOnce you have created and published a dashboard, it will appear in your Dashboards tab. Select adashboard to view. You will see a trend chart and post feed in each of the columns you have set up.You can further refine the display by applying filters or sort options.Filters applied in this view do not impact the default settings. If you leave the dashboard andreopen it, you must select the filters again.Edit dashboardsYou can edit columns, change the default settings, and add more columns or sections by clickingEdit dashboard.Once in edit mode, click the Edit link by the column name to make changes. You’ll see anUnpublished changes indicator at the top of the page if you have draft changes. Click Publish toensure your edits are maintained.Share dashboardsWhen viewing a dashboard, click Share at the top of the page to manage access. By default, adashboard is only available to you as the creator, but you can choose to share it with others whohave the same type of Meta Content Library user account as you. For example, researchers canshare with others who have researcher accounts and fact-checkers can share with others who havefact-checker accounts. They can view your dashboard and apply diﬀerent filters, but they cannotmake changes to the default settings.Data quality detailsMeta works diligently and utilizes a variety of quality assurance measures to improve the accuracy,quality and reliability of the data it shares for research purposes. However, given the volume of dataContent Library and APIGet accessQuick linksContent LibraryDashboardsContent Library APIAppendixSupportDisclosures and DisclaimersCitationsreleased and the imperfection of any quality assurance process, inaccuracies persist. Meta 


key: chroma:document
string_value:
improve the accuracy,quality and reliability of the data it shares for research purposes. However, given the volume of dataContent Library and APIGet accessQuick linksContent LibraryDashboardsContent Library APIAppendixSupportDisclosures and DisclaimersCitationsreleased and the imperfection of any quality assurance process, inaccuracies persist. Meta makesno representation or warranty, express or implied, including without limitation, any warranties offitness for a particular purpose or warranties as to the quality, accuracy or completeness of data orinformation. By accessing this data, individuals acknowledge that the data may containnonconformities, defects or errors. Meta does not warrant that the data will meet all needs orexpectations, that the use of the data will be uninterrupted, or that nonconformities, defects orerrors can or will be corrected.Dashboard expirationA dashboard expires 18 months from the date the creator of the dashboard last viewed or edited it.Learn MoreQuick linksMeta Content LibraryMeta Content Library API documentationGet helpProduct Terms for Meta Research ToolsDisclosures and disclaimers


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Data deletion - Content Library and API.pdf


key: chroma:document
string_value:
DocumentiContent Library and APIContent Library APIGuidesData deletionSu questa PaginaData deletionResearcher Platform JupyterHub environment programmatically deletes all Meta Content LibraryAPI research output data and generated local files from JupyterHub environments every 30 days.This ensures that updates made to the visibility of content on Facebook or Instagram are carriedover to Researcher Platform in accordance with Meta data deletion policies.The data deletion is carried out during a 24-hour maintenance window the first day of every monthbeginning at 12:00 AM PST and ending at 11:59 PM PST on the same day, during which you cannotlog in to your JupyterHub environment.
What is and is not deletedThe following forms of data are deleted:All output cells in notebook filesAll non-notebook files on researchers' persistent storageAll S3 bucket files including uploads carried out from within the JupyterHub environment,asynchronous query output, and all query resultsThe following forms of data are not deleted:Notebook files (.ipyhb files)Notebook input cells (code and markdown)Graphics in notebook cellsThe maintenance windowThe maintenance window, during which you will be unable to log into your JupyterHubenvironment, begins on the first day of every month at 12:00 AM PST. It lasts for 24 hours and endsContent Library and  your data to avoid research disruptionTo minimize the disruption to your research, consider taking the following measures:Since your input query cells are not aﬀected by the data deletion, you can plan to rerun yourqueries and regenerate new outputs every 30 days. The output will not match exactly whatyou had previously because it will not include any user data that no longer meets visibilityrequirements for Content Library API.You can plan ahead to accommodate the maintenance window each month, so you are notcaught by surprise, unable to work.You can plan to  not.OverviewChangelogGetting startedGuidesFacebook PagesFacebook groupsFacebook eventsFacebook profilesFacebook postsFacebook commentsInstagram accountsInstagram postsInstagram commentsID-based retrievalSearch guideAdvanced searchRate limitingData deletionAppendixSupportDisclosures and DisclaimersCitations


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Data dictionary - Content Library and API.pdf


key: chroma:document
string_value:
DocumentiContent Library and APIAppendixData dictionarySu questa PaginaData dictionaryThis data dictionary describes the data names displayed in the Meta Content Library web UI (theName column) if applicable, and the corresponding API fields returned in Meta Content Library APIsearch responses (the API field column). In the API field column, some fields have nested fieldsindicated by a dot notation. These are referred to as expanded fields. See Field expansion forinformation about how to include some or all of a parent field's expanded fields in your queries.Public data available in Meta Content Library and APIFacebook—view-only public data (not downloadable)Data includes the following publicly accessible content:Posts on public Pages, public groups, and public eventsPosts on public profiles with a verified badge or 1,000 or more followersInformation about public Pages, public groups, public events and public profiles that meetthe above criteriaFacebook—downloadable public data (from widely-known individuals andorganizations)The functionality to download the public data subset is only available in the Content Library userinterface (not in the API), and only if the Inter-university Consortium for Political and SocialResearch (ICPSR) has approved your Meta Content Library application and you or your institutionhas consented to the appropriate contract terms (Product Terms for Meta Research Tools,Information Sharing Agreement). Data includes the following publicly accessible content:Posts from public Pages with 15,000 or more likes or 15,000 or more followersPosts from public profiles with a verified badge or 25,000 or more followersInformation about public Pages and public profiles that meet the above criteriaPublic Pages include both classic Pages and the new Pages experience.To be included in the downloadable public dataset, profiles must not be locked and must be set topublic with a verified badge or 25,000 or more followers. A verified badge in this context refers toaccounts confirmed as authentic and not those with a paid Meta Verified subscription. Learn moreabout verified Pages 


key: chroma:document
string_value:
be locked and must be set topublic with a verified badge or 25,000 or more followers. A verified badge in this context refers toaccounts confirmed as authentic and not those with a paid Meta Verified subscription. Learn moreabout verified Pages and profiles.Downloadable public data consists of posts from eligible profiles and Pages to all surfaces,including groups, events and Pages.Instagram—view-only public data (not downloadable)Data includes the following publicly accessible content:Posts from public business accounts and public creator accountsPosts from personal accounts set to public with 1,000 or more followersInformation about public Instagram accounts that meet the above criteriaInstagram—downloadable public data (from widely-known individuals andorganizations)The functionality to download the public data subset is only available in the Content Library userinterface (not in the API), and only if ICPSR has approved your Meta Content Library application andyou or your institution has consented to the appropriate contract terms (Product Terms for MetaResearch Tools, Information Sharing Agreement). Data includes the following publicly accessiblecontent:Posts from public business and creator accounts with a verified badge or 25,000 or morefollowersPosts from personal accounts set to public with a verified badge or 25,000 or more followersInformation about public Instagram accounts that meet the criteria abovePublic Instagram accounts include professional accounts for businesses and creators. They alsoinclude personal accounts that meet the qualification criteria outlined above.A verified badge in this context refers to accounts confirmed as authentic and not those with a paidMeta Verified subscription. Learn more about verified badges.Facebook PageNameNameAPI ﬁeldAPI ﬁeldDescriptionDescriptionProductsProductsMetaContentLibrary IDidUnique ID linked to a Facebook Page; cannot be usedto search on Meta technologies.ContentLibrary APINamenameThe name of the Facebook Page.ContentLibraryContentLibrary APIUsernameusernameThe username of the Facebook Page, if available.ContentLibrary APIAboutaboutThe short paragraph from the Facebook Page Aboutsection.ContentLibraryContentLibrary APIWebsitewebsiteThe external URL from the Facebook Page Aboutsection.ContentLibrary APIDescriptiondescriptionThe long paragraph from the Facebook Page Aboutsection.ContentLibraryContentLibrary APIVeriﬁcationstatusveriﬁcation_statusThe veriﬁcation status of the 


key: chroma:document
string_value:
the Facebook Page.ContentLibraryContentLibrary APIUsernameusernameThe username of the Facebook Page, if available.ContentLibrary APIAboutaboutThe short paragraph from the Facebook Page Aboutsection.ContentLibraryContentLibrary APIWebsitewebsiteThe external URL from the Facebook Page Aboutsection.ContentLibrary APIDescriptiondescriptionThe long paragraph from the Facebook Page Aboutsection.ContentLibraryContentLibrary APIVeriﬁcationstatusveriﬁcation_statusThe veriﬁcation status of the Facebook Page. AFacebook Page with a veriﬁed badge indicates thatFacebook has conﬁrmed that it is the authenticpresence for that person or brand. Learn more.ContentLibraryContentLibrary APIPagecategoriespage_categoriesThe list of up to three categories of the FacebookPage, selected by the Page manager.ContentLibraryContentLibrary APILocation citylocation.cityThe self-reported, publicly accessible city locationassociated with the Facebook Page.ContentLibrary APILocationcountrylocation.countryThe self-reported, publicly accessible country locationassociated with the Facebook Page.ContentLibrary APILocationcountry codelocation.country_codeThe self-reported, publicly accessible country codelocation associated with the Facebook Page.ContentLibrary APILocationnamelocation.nameThe self-reported, publicly accessible location nameassociated with the Facebook Page.ContentLibrary APILocationregionlocation.regionThe self-reported, publicly accessible region locationassociated with the Facebook Page.ContentLibrary APILocation ziplocation.zipThe self-reported, publicly accessible location zipassociated with the Facebook Page.ContentLibrary APILocationlocation.streetThe self-reported, publicly accessible street locationContentstreetassociated with the Facebook Page.Library APILocationstatelocation.stateThe self-reported, publicly accessible state locationassociated with the Facebook Page.ContentLibrary APIPage namechange datepage_transparency.page_name_changes.data.dateThe date of Facebook Page name change.ContentLibrary APIPage nameoldpage_transparency.page_name_changes.data.old_nameThe old name of the Facebook Page prior to thename change.ContentLibrary APIPage namenewpage_transparency.page_name_changes.data.new_nameThe new name of the Facebook Page, following thename change.ContentLibrary APIPagemerged datepage_transparency.page_merges.data.dateThe date another Facebook Page merged with thisPage.ContentLibrary APIPagemergedpage_transparency.page_merges.data.page_mergedThe name of the Facebook Page that merged withthis Page.ContentLibrary APICreationdatecreation_dateThe date the Facebook Page was created.ContentLibraryContentLibrary APIPagemanagercountriespage_transparency.admin_countries.data.countryThe predicted primary country locations of peoplewho manage this Facebook Page.ContentLibraryContentLibrary APICount ofPagemanagers bycountriespage_transparency.admin_countries.data.countThe number of people who manage this FacebookPage predicted to be from the associated country.ContentLibraryContentLibrary APIPage ownerpage_transparency.conﬁrmed_page_ownerThe conﬁrmed owner associated with the FacebookPage.ContentLibrary APIHas activeadspage_transparency.has_active_adsWhether the Facebook Page has active ads or not.ContentLibrary APIHas runpolitical adspage_transparency.has_run_political_adsWhether the Facebook Page has run political ads ornot.ContentLibrary APIFollowersfollower_countThe number of followers of the Facebook Page.ContentLibraryContentLibrary APIPage likeslike_countThe number of likes of the Facebook Page.ContentLibrary APIFacebook groupNameNameAPI ﬁeldAPI ﬁeldDescriptionDescriptionProductsProductsMetaContentLibrary IDidUnique 


key: chroma:document
string_value:
Facebook Page has active ads or not.ContentLibrary APIHas runpolitical adspage_transparency.has_run_political_adsWhether the Facebook Page has run political ads ornot.ContentLibrary APIFollowersfollower_countThe number of followers of the Facebook Page.ContentLibraryContentLibrary APIPage likeslike_countThe number of likes of the Facebook Page.ContentLibrary APIFacebook groupNameNameAPI ﬁeldAPI ﬁeldDescriptionDescriptionProductsProductsMetaContentLibrary IDidUnique ID linked to a Facebook group; cannot beused to search on Meta technologies.ContentLibrary APINamenameThe name of the Facebook group.ContentLibraryContentLibrary APIUsernameusernameThe username of the Facebook Page, if available andgroup meets eligible criteria.ContentLibrary APIDescriptiondescriptionThe description of the Facebook group.ContentLibraryContentLibrary APICreationdatecreation_dateThe date the Facebook group was created.ContentLibraryContentLibrary APIGroupgroup_transparThe original name of the Facebook group.Contentoriginalnameency.original_nameLibrary APIGroup namechange dategroup_transparency.name_changes.data.dateThe date the name of the Facebook group changed.ContentLibraryContentLibrary APIGroup namenewgroup_transparency.name_changes.data.new_nameThe new name of the Facebook group.ContentLibrary APIGroup adminandmoderatorPage MetaContentLibrary IDsgroup_transparency.admin_and_moderator_page_idsThe list of Unique IDs linked to the Facebook Pagesthat are admins or moderators of the Facebook group.These unique IDs cannot be used to search on Metatechnologies.ContentLibrary API
Group ownertypegroup_owners.data.typeThe type of the group owner associated with theFacebook group.This ﬁeld will display if the groupowner is a professional proﬁle or Page.ContentLibrary APIGroup ownerMetaContentLibrary IDgroup_owners.data.idUnique ID of the Facebook group owners. This ﬁeldwill display if the group owner is a professional proﬁleor Page.ContentLibrary APIPicture URLpicture_urlThe photo URL of the Facebook group.ContentLibrary APIGroupmembersmember_countThe number of members of the Facebook group.ContentLibraryContentLibrary API
Facebook eventNameNameAPI ﬁeldAPI ﬁeldDescriptionDescriptionProductsProductsMetaContentLibrary IDidUnique ID linked to a Facebook event; cannot beused to search on Meta technologies.ContentLibrary APINamenameThe name of the Facebook event.ContentLibraryContentLibrary APIDescriptiondescriptionThe description of the Facebook event.ContentLibraryContentLibrary APICreation timecreation_timeThe time the Facebook event was created.ContentLibrary APIEvent starttimeevent_start_timeThe start time of the Facebook event. Not available ifthe event is the parent of recurring event instances.Learn more.ContentLibraryContentLibrary APIEvent endtimeevent_end_timeThe end time of the Facebook event. Not available ifthe event is the parent of recurring event instances.Learn more.ContentLibrary APIGoingresponsesgoing_countThe number of Going responses on a Facebookevent. Not available if the event is the parent ofrecurring event instances. Learn more.ContentLibraryContentLibrary APIInterestedresponsesinterested_countThe 


key: chroma:document
string_value:
end time of the Facebook event. Not available ifthe event is the parent of recurring event instances.Learn more.ContentLibrary APIGoingresponsesgoing_countThe number of Going responses on a Facebookevent. Not available if the event is the parent ofrecurring event instances. Learn more.ContentLibraryContentLibrary APIInterestedresponsesinterested_countThe number of Interested responses on a Facebookevent. Not available if the event is the parent ofrecurring event instances. Learn more.ContentLibraryContentLibrary APIEvent typeevent_typeThe type of Facebook event. Event types includesingle instance, recurring or instance of recurring.ContentLibrary APIRecurringevent MetaContentLibrary IDsrecurring_event_idsThe list of unique Meta Content Library IDs of therecurring instances of the Facebook event, if theevent is recurring; these unique IDs cannot be used tosearch on Meta technologies. Only available if theevent is the parent of recurring event instances. Learnmore.ContentLibrary API
Parent eventIDparent_event_idThe unique ID of the parent event of the Facebookevent, if the event is recurring; cannot be used tosearch on Meta technologies. Only available if theevent is an instance of a recurring event. Learn more.ContentLibrary APIEventowners typeevent_owners.data.typeThe type of the event owner associated with theFacebook event.ContentLibrary APIEventowners MetaContentLibrary IDevent_owners.data.idThe unique ID of the event owner associated with theFacebook event; cannot be used to search on Metatechnologies. This ﬁeld will display if the event owneris a group, professional proﬁle or Page. For eventsowned by professional proﬁles or Pages, only theMeta Content Library Page ID will be shared.ContentLibrary API
Place nameplace.nameThe self-reported, publicly accessible name of theplace where the Facebook event is located.ContentLibrary APIPlacelocation cityplace.location.cityThe self-reported, publicly accessible city where theFacebook event is located.ContentLibrary APIPlacelocationcountryplace.location.countryThe self-reported, publicly accessible country wherethe Facebook event is located.ContentLibrary APIPlacelocationcountry codeplace.location.country_codeThe self-reported, publicly accessible country code ofthe Facebook event’s location.ContentLibrary APIPlacelocationnameplace.location.nameThe self-reported, publicly accessible name of theFacebook event’s location.ContentLibrary APIPlacelocationregionplace.location.regionThe self-reported, publicly accessible region wherethe Facebook event is located.ContentLibrary APIPlacelocation stateplace.location.stateThe self-reported, publicly accessible state where theFacebook event is located.ContentLibrary APIPlacelocationstreetplace.location.streetThe self-reported, publicly accessible street where theFacebook event is 


key: chroma:document
string_value:
location.ContentLibrary APIPlacelocationnameplace.location.nameThe self-reported, publicly accessible name of theFacebook event’s location.ContentLibrary APIPlacelocationregionplace.location.regionThe self-reported, publicly accessible region wherethe Facebook event is located.ContentLibrary APIPlacelocation stateplace.location.stateThe self-reported, publicly accessible state where theFacebook event is located.ContentLibrary APIPlacelocationstreetplace.location.streetThe self-reported, publicly accessible street where theFacebook event is located.ContentLibrary APIPlacelocation zipplace.location.zipThe self-reported, publicly accessible zip of theFacebook event’s location.ContentLibrary API
Facebook profilesNameNameAPI ﬁeldAPI ﬁeldDescriptionDescriptionProductsProductsMetaContentLibrary IDidUnique ID linked to a Facebook proﬁle; cannot beused to search on Meta technologies.ContentLibrary APINamenameThe name of the Facebook proﬁle, if user meetseligibility criteria.ContentLibraryContentLibrary APIUsernameusernameThe username of the Facebook Page, if available anduser meets eligibility criteria.ContentLibrary APIAboutaboutText of the 'About' section.ContentLibraryContentLibrary APIFollowercountfollower_countThe number of followers of the Facebook proﬁle.ContentLibraryContentLibrary APIIntrointroText of intro.ContentLibraryContentLibrary APIVeriﬁcationstatusveriﬁcation_statusVeriﬁcation status. Possible values: not_veriﬁed andblue_veriﬁed.ContentLibraryContentLibrary APICreationdatecreation_dateThe date the Facebook proﬁle was created.ContentLibraryContentLibrary APIProﬁlecategoriesproﬁle_categoriesThe list of up to three categories of the Facebookproﬁle, selected by the proﬁle owner.ContentLibraryContentLibrary APIAdmincountriesproﬁle_transparency.admin_countriesList of predicted primary country locations of theFacebook proﬁle owner.ContentLibraryContentLibrary APIHas activeadsproﬁle_transparency.has_active_adsWhether the Facebook proﬁle has active ads or not.ContentLibraryContentLibrary APIPictureheightpicture.heightHeight of the photo URL of the Facebook proﬁle.ContentLibraryContentLibrary APIPicture URLpicture.urlThe photo URL of the Facebook proﬁle.ContentLibraryContentLibrary APIPicture widthpicture.widthWidth of the photo URL of the Facebook proﬁle.ContentLibraryContentLibrary APIWebsiteswebsitesThe external URLs from the Facebook proﬁle’s 'About'section.ContentLibraryContentLibrary API
Facebook postNameNameAPI ﬁeldAPI ﬁeldDescriptionDescriptionProductsProductsMetaContentLibrary IDidUnique ID linked to a Facebook post; cannot be usedto search on Meta technologies.ContentLibrary APITexttextThe text of the Facebook post. Tags are excluded.ContentLibraryContentLibrary APISticker textsticker_textThe text shown in stickers in story highlights.Returned as a list of all the stickers in the same storyhighlight.ContentLibraryContentLibrary APIActivity typeactivities.typeType of activity represented in a post. Activity typesinclude streaming or playing (of a gaming video).ContentLibraryContentLibrary APIActivity nameactivities.nameName of the activity represented in a post. Forexample, if the activity type is streaming (of a gamingvideo), this would be the name of the game beingplayed.ContentLibraryContentLibrary APICreation timecreation_timeThe time the Facebook post was created.ContentLibraryContentLibrary APIModiﬁed timemodiﬁed_timeThe time the Facebook post was most recentlymodiﬁed.ContentLibrary APILanguagelangThe 


key: chroma:document
string_value:
in a post. Forexample, if the activity type is streaming (of a gamingvideo), this would be the name of the game beingplayed.ContentLibraryContentLibrary APICreation timecreation_timeThe time the Facebook post was created.ContentLibraryContentLibrary APIModiﬁed timemodiﬁed_timeThe time the Facebook post was most recentlymodiﬁed.ContentLibrary APILanguagelangThe content language of the Facebook post. ReturnsISO 639-1 language code in 2-letter lowercaseformat.ContentLibrary (Filteronly)ContentLibrary APILikesstatistics.like_cThe number of like reactions on the post.ContentountLibraryContentLibrary APILovereactionsstatistics.love_countThe number of love reactions on the post.ContentLibraryContentLibrary APIWowreactionsstatistics.wow_countThe number of wow reactions on the post.ContentLibraryContentLibrary APIHahareactionsstatistics.haha_countThe number of haha reactions on the post.ContentLibraryContentLibrary APISadreactionsstatistics.sad_countThe number of sad reactions on the post.ContentLibraryContentLibrary APIAngryreactionsstatistics.angry_countThe number of angry reactions on the post.ContentLibraryContentLibrary APICommentsstatistics.comment_countThe number of comments on the post.ContentLibraryContentLibrary APIReactionsstatistics.reaction_countThe total number of reactions on the post. Reactionsinclude: Like, Love, Care, Haha, Wow, Sad or Angry.ContentLibraryContentLibrary APISharesstatistics.share_countThe number of times the post was shared.ContentLibraryContentLibrary APICarereactionsstatistics.care_countThe number of care reactions on the post.ContentLibraryContentLibrary APIViewsstatistics.viewsNumber of times the post was on screen, notincluding times it appeared on the post owner’sscreen. For video posts, views are counted whetherthe video was played or not. Only posts with moreContentLibrarythan 100 views display the view count. A post displaysno view count value if there were fewer than 100views as of the last refresh. View counts for postscreated within the last 180 days are refreshedapproximately every 24 hours, provided the post hasaccumulated more than 10 views within that 24 hourperiod. If not, view counts are refreshed every 5-7days. View counts for posts created more than 180days ago are refreshed every 5-7 days. View countsare not available for posts created before January 1,2017.ContentLibrary API
View countslastrefresheddateview_date_last_refreshedThe date the view count was last refreshed. SeeViews deﬁnition for refresh schedule.ContentLibraryContentLibrary APIPost ownertypepost_owner.data.typeThe type of post owner associated with the Facebookpost. Post owner types include: Pages and proﬁles.ContentLibraryContentLibrary APIPost ownerMetaContentLibrary IDpost_owner.data.idUnique ID linked to the owner associated with theFacebook post. These unique 


key: chroma:document
string_value:
count was last refreshed. SeeViews deﬁnition for refresh schedule.ContentLibraryContentLibrary APIPost ownertypepost_owner.data.typeThe type of post owner associated with the Facebookpost. Post owner types include: Pages and proﬁles.ContentLibraryContentLibrary APIPost ownerMetaContentLibrary IDpost_owner.data.idUnique ID linked to the owner associated with theFacebook post. These unique IDs cannot be used tosearch on Meta technologies.ContentLibrary APIPost ownernamepost_owner.data.nameThe name of the post owner associated with theFacebook post, if post owner meets eligibility criteria.ContentLibraryContentLibrary APIPost ownerusernamepost_owner.data.usernameThe username of the post owner associated with theFacebook post, if available and post owner meetseligibility criteria.ContentLibrary APIPost surfacetypesurface.typeThe type of surface of the Facebook post. Postsurface types include: Pages, proﬁles, groups andevents.ContentLibraryContentLibrary APIPost surfaceMetaContentLibrary IDsurface.idUnique ID linked to the surface of the Facebook post.These unique IDs cannot be used to search on Metatechnologies.ContentLibrary APIPost surfacenamesurface.nameThe name of the surface of the Facebook post, if usermeets the eligibility criteria.ContentLibraryContentLibrary APIMedia type(deprecatedas of version5.0)media_typeThe media type included in the Facebook Post. Mediatypes include photos, videos, albums, links, statusand reshares.ContentLibrary APIContent typecontent_typeThe content type included in the Facebook post.Content types include photos, videos (includinggaming videos) and reels, story highlights andmiscellaneous (including links, reshares, and text-onlyposts).ContentLibrary
Content typecontent_typeThe content type included in the Facebook post.ContentContent types include photos, videos, albums, storyhighlights, links, status and reshares.Library APIBrandedcontent PageMetaContentLibrary IDbranded_content_page_idUnique ID linked to the Page associated with theFacebook post; cannot be used to search on Metatechnologies. Included if the post has brandedcontent. Learn more about branded contentContentLibrary API
Is brandedcontentis_branded_contentWhether the Facebook post has branded content ornot. Learn more about branded contentContentLibrary APILinkattachmentﬁeldsdescriptionlink_attachment_ﬁelds.descriptionThe description of the link attachment included in theFacebook post.ContentLibrary APILinkattachmentﬁelds linklink_attachment_ﬁelds.linkThe URL of the link attachment included in theFacebook post.ContentLibrary APILinkattachmentﬁelds namelink_attachment_ﬁelds.nameThe name of the link attachment included in theFacebook post.ContentLibrary APILinkattachmentﬁelds captionlink_attachment_ﬁelds.captionThe caption of the link attachment included in theFacebook post.ContentLibrary APIShared postMetaContentLibrary IDshared_post_idUnique ID linked to the reshared post included in theFacebook post; cannot be used 


key: chroma:document
string_value:
theFacebook post.ContentLibrary APILinkattachmentﬁelds namelink_attachment_ﬁelds.nameThe name of the link attachment included in theFacebook post.ContentLibrary APILinkattachmentﬁelds captionlink_attachment_ﬁelds.captionThe caption of the link attachment included in theFacebook post.ContentLibrary APIShared postMetaContentLibrary IDshared_post_idUnique ID linked to the reshared post included in theFacebook post; cannot be used to search on Metatechnologies.ContentLibrary APIFacebook post third-party cleanroom onlyThe following data dictionary entries are only available when using the Content Library API in anapproved third-party cleanroom that supports the specific functionality.NameNameAPI ﬁeldAPI ﬁeldDescriptionDescriptionProductsProductsMultimediatypemultimedia.typeThe type (photo or video) of the multimedia content.ContentLibrary APIMultimediaMetaContentLibrary IDmultimedia.idUnique ID linked to the photo or video content. Theseunique IDs cannot be used to search on Metatechnologies.ContentLibrary APIMultimediaURLmultimedia.urlURL within a storage location to which the multimediacontent has been downloaded by the third-partycleanroom if the cleanroom system is unable toprovide the multimedia directly in the search results.ContentLibrary API
Facebook commentNameNameAPI ﬁeldAPI ﬁeldDescriptionDescriptionProductsProductsMetaContentLibrary IDidUnique ID linked to a Facebook comment; cannot beused to search on Meta technologies.ContentLibrary APIOwner IDowner.idUnique ID linked to the owner associated with theFacebook comment; cannot be used to search onMeta technologies.ContentLibrary APIOwner typeowner.typeThe type of comment owner associated with theContentFacebook comment. Comment owner types include:page, proﬁle and private.Library APIOwnerusernameowner.usernameThe username of the comment owner associated withthe Facebook comment, if available and user meetsthe eligibility criteria.ContentLibrary APIOwner nameowner.nameThe name of the comment owner associated with theFacebook comment. if user meets the eligibilitycriteria.ContentLibrary APIPost IDpost_idUnique ID linked to a Facebook comment; cannot beused to search on Meta technologies.ContentLibrary APIParentCommentMetaContentLibrary IDparent_comment_idUnique ID associated with the Facebook comment,that the comment was shared as a reply; cannot beused to search on Meta technologies. Non existingﬁeld if comment has no parent comment.ContentLibrary API
TexttextThe text of the Facebook comment. Tags areexcluded.ContentLibrary APICreation timecreation_timeThe time the Facebook comment was created.ContentLibrary APILanguagelangThe content language of the Facebook comment.Returns ISO 639-1 language code in 2-letterlowercase format.ContentLibrary APILinkattachmentﬁelds linklink_attachment.urlThe URL of the link attachment included in theFacebook 


key: chroma:document
string_value:
API
TexttextThe text of the Facebook comment. Tags areexcluded.ContentLibrary APICreation timecreation_timeThe time the Facebook comment was created.ContentLibrary APILanguagelangThe content language of the Facebook comment.Returns ISO 639-1 language code in 2-letterlowercase format.ContentLibrary APILinkattachmentﬁelds linklink_attachment.urlThe URL of the link attachment included in theFacebook comment.ContentLibrary APILinkattachmentﬁelds namelink_attachment.nameThe name of the link attachment included in theFacebook comment.ContentLibrary APILinkattachmentcaptionlink_attachment.captionThe caption of the link attachment included in theFacebook comment.ContentLibrary APILinkattachmentdescriptionlink_attachment.descriptionThe description of the link attachment included in theFacebook comment.ContentLibrary APILikesstatistics.like_countThe number of like reactions on the comment.ContentLibrary APILovereactionsstatistics.love_countThe number of love reactions on the comment.ContentLibrary APIWowreactionsstatistics.wow_countThe number of wow reactions on the comment.ContentLibrary APIHahareactionsstatistics.haha_countThe number of haha reactions on the comment.ContentLibrary APISadreactionsstatistics.sad_countThe number of sad reactions on the comment.ContentLibrary APIAngryreactionsstatistics.angry_countThe number of angry reactions on the comment.ContentLibrary APICarereactionsstatistics.care_countThe number of care reactions on the comment.ContentLibrary APIReactionstatistics.reactiThe total number of reactions on the comment.Contentcounton_countReactions include Like, Love, Care, Haha, Wow, Sador Angry.Library APICommentcountstatistics.comment_countThe total number of all replies to a comment.ContentLibrary APITop-levelreply countstatistics.top_level_reply_countThe total number of top-level replies of a comment.ContentLibrary API
Facebook comment third-party cleanroom onlyThe following data dictionary entries are only available when using the Content Library API in anapproved third-party cleanroom that supports the specific functionality.NameNameAPI ﬁeldAPI ﬁeldDescriptionDescriptionProductsProductsMultimediatypemultimedia.typeThe type (photo or video) of the multimedia content.ContentLibrary APIMultimediaMetaContentLibrary IDmultimedia.idUnique ID linked to the photo or video content. Theseunique IDs cannot be used to search on Metatechnologies.ContentLibrary APIMultimediaURLmultimedia.urlURL within a storage location to which the multimediacontent has been downloaded by the third-partycleanroom if the cleanroom system is unable toprovide the multimedia directly in the search results.ContentLibrary APIInstagram accountNameNameAPI ﬁeldAPI ﬁeldDescriptionDescriptionProductsProductsMetaContentLibrary IDidUnique ID linked to an Instagram account; cannot beused to search on Meta technologies.ContentLibrary APIAccount typeaccount_typeThe type of public Instagram account. Creator,business, and personal accounts are valid types.Public Instagram accounts include professionalaccounts for businesses and creators. They alsoinclude a subset of personal accounts that haveprivacy set to public 


key: chroma:document
string_value:
beused to search on Meta technologies.ContentLibrary APIAccount typeaccount_typeThe type of public Instagram account. Creator,business, and personal accounts are valid types.Public Instagram accounts include professionalaccounts for businesses and creators. They alsoinclude a subset of personal accounts that haveprivacy set to public and have either a veriﬁed badgeor 25,000 or more followers (for downloadable publicdata) or 1,000 or more followers (for view-only data).A veriﬁed badge in this context refers to accountsconﬁrmed as authentic and not those with a paid MetaVeriﬁed subscription.ContentLibrary API
Is veriﬁedis_veriﬁedWhether the Instagram account has a veriﬁed badge.A veriﬁed badge in this context refers to accountsconﬁrmed as authentic and not to those with a paidMeta Veriﬁed subscription. Learn more.ContentLibraryContentLibrary APIFollowersfollower_countThe number of followers of the Instagram account.ContentLibraryContentLibrary APIFollowingfollowing_countThe number of accounts the Instagram account isfollowing.ContentLibrary APIWebsitewebsiteThe external website URL of the Instagram account.ContentLibrary APIUsernameusernameThe username of the Instagram account.ContentLibrary APINamenameThe name of the Instagram account, if available.ContentLibraryContentLibrary APIBiographybiographyThe description of the Instagram account.ContentLibraryContentLibrary APICreationdatecreation_dateThe date the Instagram account was created.ContentLibrary API
Instagram postNameNameAPI ﬁeldAPI ﬁeldDescriptionDescriptionProductsProductsMetaContentLibrary IDidUnique ID linked to an Instagram post; cannot beused to search on Meta technologies.ContentLibrary APITexttextThe text of the Instagram post. Tags are excluded.ContentLibraryContentLibrary APISticker textsticker_textThe text shown in stickers. Returned as a list of all thestickers in the same story highlight.ContentLibraryContentLibrary APICreation timecreation_timeThe time the Instagram post was created.ContentLibraryContentLibrary APIModiﬁed timemodiﬁed_timeThe time the Instagram post was most recentlymodiﬁed.ContentLibrary APILanguagelangThe content language of the Instagram post. ReturnsISO 639-1 language code in 2-letter lowercaseformat.ContentLibrary APICommentsstatistics.comment_countThe number of comments on the post.ContentLibraryContentLibrary APILikesstatistics.like_countThe number of like reactions on the post.ContentLibraryContentLibrary APIViewsstatistics.viewsNumber of times the post was on screen, notincluding times it appeared on the post owner’sscreen. For video posts, views are counted whetherthe video was played or not. Only posts with morethan 100 views display the view count. A post displaysno view count value if there were fewer than 


key: chroma:document
string_value:
times it appeared on the post owner’sscreen. For video posts, views are counted whetherthe video was played or not. Only posts with morethan 100 views display the view count. A post displaysno view count value if there were fewer than 100views as of the last refresh. View counts for postscreated within the last 180 days are refreshedapproximately every 24 hours, provided the post hasaccumulated more than 10 views within that 24 hourperiod. If not, view counts are refreshed every 3-5days. View counts for posts created more than 180days ago are refreshed every 3-5 days. View countsare not available for posts made before October 1,2022. Note that this metric differs from the Viewsmetric displayed on Instagram, which measures thenumber of times a reel started to play and the numberof times a non-reel displayed on a person’s screen.ContentLibraryContentLibrary API
View countslastrefresheddateview_date_last_refreshedThe date the view count was last refreshed. SeeViews deﬁnition for refresh schedule.ContentLibraryContentLibrary APIPost owneraccount typepost_owner.typeThe account type of the post owner associated withthe Instagram post. Post owner types includebusiness, creator and personal. For personalaccounts, only those with privacy set to public andwith either a veriﬁed badge or 25,000 or morefollowers (for downloadable public data) or 1,000 ormore followers (for view-only data) are included. Averiﬁed badge in this context refers to accountsconﬁrmed as authentic and not those with a paid MetaVeriﬁed subscription.ContentLibrary APIPost ownerMetaContentLibrary IDpost_owner.idUnique ID linked to the owner associated with theInstagram post; cannot be used to search on Metatechnologies.ContentLibrary APIPost ownerusernamepost_owner.usernameUsername of the owner associated with the Instagrampost, if meeting eligibility criteria.ContentLibrary APIPost ownerNamepost_owner.nameName of the owner associated with the Instagrampost, if available and meeting eligibility criteria.ContentLibraryContentLibrary APIIs brandedcontentis_branded_contentWhether the Instagram post has branded content ornot. Learn more about branded contentContentLibrary APIMedia type(deprecatedas of version5.0)media_typeThe media type included in the Instagram post. Mediatypes include albums, photos, videos and reels.ContentLibraryContentLibrary APIContent typecontent_typeThe 


key: chroma:document
string_value:
if available and meeting eligibility criteria.ContentLibraryContentLibrary APIIs brandedcontentis_branded_contentWhether the Instagram post has branded content ornot. Learn more about branded contentContentLibrary APIMedia type(deprecatedas of version5.0)media_typeThe media type included in the Instagram post. Mediatypes include albums, photos, videos and reels.ContentLibraryContentLibrary APIContent typecontent_typeThe media type included in the Instagram post. Mediatypes include albums, photos, videos and reels, andstory highlights.ContentLibraryContentLibrary APIHashtagshashtagsThe list of hashtags included in the Instagram post.ContentLibraryContentLibrary API
Instagram post third-party cleanroom onlyThe following data dictionary entries are only available when using the Content Library API in anapproved third-party cleanroom that supports the specific functionality.NameNameAPI ﬁeldAPI ﬁeldDescriptionDescriptionProductsProductsMultimediatypemultimedia.typeThe type (photo or video) of the multimedia content.ContentLibrary APIMultimediaMetaContentLibrary IDmultimedia.idUnique ID associated with the photo or video content;cannot be used to search on Meta technologies.ContentLibrary APIMultimediaURLmultimedia.urlURL within a storage location to which the multimediacontent has been downloaded by the third-partycleanroom if the cleanroom system is unable toprovide the multimedia directly in the search results.ContentLibrary API
Instagram commentNameNameAPI ﬁeldAPI ﬁeldDescriptionDescriptionProductsProductsMetaContentLibrary IDidUnique ID linked to an Instagram comment. Thisunique ID cannot be used to search on Metatechnologies.ContentLibraryContentLibrary APIOwner IDowner.idUnique ID linked to the owner associated with theInstagram comment. This ID cannot be used tosearch on Meta technologies.ContentLibraryContentLibrary APIOwner typeowner.typeThe type of comment owner associated with theInstagram comment. Comment owner types include:creator, business, personal and private.ContentLibrary APIOwnerusernameowner.usernameThe username of the comment owner associated withthe Instagram comment, if user meets the eligibilitycriteria.ContentLibraryContentLibrary APIOwner nameowner.nameThe name of the comment owner associated with theInstagram comment, if available and user meetseligibility criteria.ContentLibraryContentLibrary APIPost IDpost_idUnique ID linked to an Instagram comment. This IDcannot be used to search on Meta technologies.ContentLibraryContentLibrary APIParentCommentparent_comment_idUnique ID associated with the Instagram commentifthe comment was shared as a reply; cannot be usedContentLibraryMetaContentLibrary IDto search on Meta technologies. Non existent ﬁeld ifcomment has no parent comment.ContentLibrary APITexttextThe text of the Instagram comment. Tags areexcluded.ContentLibraryContentLibrary APICreation timecreation_timeThe time the Instagram comment was created.ContentLibraryContentLibrary 


key: chroma:document
string_value:
Instagram commentifthe comment was shared as a reply; cannot be usedContentLibraryMetaContentLibrary IDto search on Meta technologies. Non existent ﬁeld ifcomment has no parent comment.ContentLibrary APITexttextThe text of the Instagram comment. Tags areexcluded.ContentLibraryContentLibrary APICreation timecreation_timeThe time the Instagram comment was created.ContentLibraryContentLibrary APILanguagelangThe content language of the Instagram comment.Returns ISO 639-1 language code in 2-letterlowercase format.ContentLibrary APILinkattachmentlink_attachment.urlThe URL of the link attachment included in theInstagram comment.ContentLibraryContentLibrary APILikesstatistics.like_countThe number of like reactions on the comment.ContentLibraryContentLibrary APIContent Library and APIGet accessQuick linksContent LibraryContent Library APIAppendixData dictionaryField expansionSearch qualityGet API CodeShare producer listSupportDisclosures and DisclaimersCitationsCommentcountstatistics.comment_countThe total number of replies to a comment.ContentLibraryContentLibrary APITop-levelreply countstatistics.top_level_reply_countThe number of top-level replies to a comment.ContentLibrary APILearn moreField expansion


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Disclosures and Disclaimers - Content Library and API.pdf


key: chroma:document
string_value:
DocumentiContent Library and APIDisclosures and DisclaimersSu questa PaginaDisclosures and Disclaimers
DisclosuresData governance and sources described in this document may change from time to time and themetrics presented here may not be representative of current operations at Meta. Due to issues suchas erroneously logging the data sources from which these metrics are created, these metrics maysuﬀer from fluctuating data quality and incompleteness, which may lead to fluctuating accuracy.We disclose known fluctuations where possible.Individuals using this data are responsible for conducting standard and thorough data cleaningprocesses, and are responsible for ensuring that their analyses are accurate. It is expected theremay be issues with the data when conducting their analysis. We encourage individuals to share anyfindings with us. This may include, but is not necessarily limited to, data quality, validity, or fidelityissues. Given the historical nature of the data and lapsed retention periods, we may not be able tofix the issues identified, but in such cases we will work to disclose them. Please reach out to usthrough Direct Support.DisclaimersMeta works diligently and utilizes a variety of quality assurance measures to improve the accuracy,quality, and reliability of the data it shares for research purposes. However, given the volume ofdata released and the imperfection of any quality assurance process, inaccuracies persist. Metamakes no representation or warranty, express or implied, including without limitation, anywarranties of fitness for a particular purpose or warranties as to the quality, accuracy orcompleteness of data or information. By accessing this data, individuals acknowledge that the datamay contain some nonconformities, defects, or errors. Meta does not warrant that the data willmeet all needs or expectations, that the use of the data will be uninterrupted, or thatnonconformities, defects, or errors can or will be corrected.Content Library and APIGet accessQuick linksContent LibraryContent Library APIAppendixSupportDisclosures and DisclaimersCitations


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Facebook comments - Content Library and API.pdf


key: chroma:document
string_value:
Docume…Content Library and …Content Library …Guid…Facebook comme…Su questa PaginaGuide to Facebook commentsdataYou can fetch comments of a Facebook post or replies to a specific Facebook comment by usingthe get() method with the <MCL_ID>/comments path. This document describes the parameters,and shows how to perform basic queries using the method.All of the examples in this document assume you have already created a Python or R Jupyternotebook and have created a client object. See Getting started to learn more.See Data dictionary for detailed information about the fields that are available on a Facebook pagenode.
ParametersParameterParameterTypeTypeDescriptionDescriptionFIELDSOptionalListComma-separated list of ﬁelds you want included in the result. See Datadictionary for descriptions of all available ﬁelds.SINCEOptionalString orIntegerDate in YYYY-MM-DD (date only) or UNIX timestamp (translates to adate and time to the second) format. Facebook comments created on orafter this date or timestamp are returned (used with UNTIL to deﬁne atime range). SINCE and UNTIL are based on UTC time zone, regardlessof the local time zone of the user who made the comment.If both SINCE and UNTIL are included, the query includes the timerange deﬁned by those values.If SINCE is included and UNTIL is omitted, the query includes theSINCE time through the present time.If SINCE is omitted and UNTIL is included, the query goes from thebeginning of Facebook time through the UNTIL time.If SINCE and UNTIL are both omitted, the query goes from thebeginning of Facebook time to the present time.If SINCE and UNTIL are the same UNIX timestamp, the queryincludes the SINCE time through the SINCE time plus one hour.If SINCE and UNTIL are the same Date (YYYY-MM-DD), the queryincludes the SINCE date through the SINCE date plus one day.UNTILOptionalString orIntegerDate in YYYY-MM-DD (date only) or UNIX timestamp (translates to adate and time to the second) format. Facebook comments created on orafter this date or timestamp are returned 


key: chroma:document
string_value:
the queryincludes the SINCE date through the SINCE date plus one day.UNTILOptionalString orIntegerDate in YYYY-MM-DD (date only) or UNIX timestamp (translates to adate and time to the second) format. Facebook comments created on orafter this date or timestamp are returned (used with UNTIL to deﬁne atime range). SINCE and UNTIL are based on UTC time zone, regardlessof the local time zone of the user who made the comment.If both SINCE and UNTIL are included, the query includes the timerange deﬁned by those values.If SINCE is included and UNTIL is omitted, the query includes theSINCE time through the present time.If SINCE is omitted and UNTIL is included, the query goes from thebeginning of Facebook time through the UNTIL time.If SINCE and UNTIL are both omitted, the query goes from thebeginning of Facebook time to the present time.If SINCE and UNTIL are the same UNIX timestamp, the queryincludes the SINCE time through the SINCE time plus one hour.If SINCE and UNTIL are the same Date (YYYY-MM-DD), the queryincludes the SINCE date through the SINCE date plus one day.SORTOptionalEnumSorting mode in which the comments are returned (only for synchronousendpoint). Available options:newest_to_oldest: Comments are returned in reversechronological order (newest ﬁrst).oldest_to_newest: Comments are returned in chronologicalorder (oldest ﬁrst).none: No sorting is applied to the returned data.Default value: newest_to_oldestFETCH_ALLOptionalBooleanBoolean value that allows you to change the way of fetching comments.Available options:True: All of the comments of the entity are returned, both nestedand unnested. Since they are going to be returned in a “ﬂattenedway,” no sorting is applied.False: Only top level replies of the entity are returned. Sorting canbe applied.Default value: FalseSample queriesFetch comments of a Facebook postFetching comments from specific Facebook posts requires that you first obtain post ID by using theget() method with the appropriate “path” and “params.” The search results will include the ID 


key: chroma:document
string_value:
Sorting canbe applied.Default value: FalseSample queriesFetch comments of a Facebook postFetching comments from specific Facebook posts requires that you first obtain post ID by using theget() method with the appropriate “path” and “params.” The search results will include the ID fieldby default (you don't have to specify it in your query). See Guide to learn about this method.The results will include top level comments for a specific post, and not nested comments. In orderto get nested comments of a specific post, you can use fetch comments of a Facebook comment oruse the fetch_all parameter.Meta Content Library IDs can be used in comment queries and displayed in the search results. MetaContent Library IDs are unique IDs linked to an entity in MCL.These IDs cannot be used to search onMeta’s technologies.To fetch top-level replies on a specific Facebook post, generate a post ID by using theget(path=search/facebook_posts, ...) method. Then use the query get(path=<post_id>/comments) method to fetch top-level replies on this post.The following example would return 10 results per page. You can keep calling query_next_page()and has_next_page() to get the next page of 10 results, until all the query results have beenreturned. In order to fetch all top level replies of a post with a single call, you can follow theinstructions for asynchronous fetchingFetch replies to a Facebook commentTo fetch top-level replies on specific Instagram comments, take a comment ID that you obtainedfrom a previous comment fetch call and pass it as a path param with a /comment su"ix.The following example would return 10 results per page. You can use the query_next_page() andhas_next() to get the next page of 10 results, until all the query results have been returned. In orderto fetch all top level replies of a comment with a single call, you can follow the instructions forasynchronous fetching.library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)# Fetch first 


key: chroma:document
string_value:
get the next page of 10 results, until all the query results have been returned. In orderto fetch all top level replies of a comment with a single call, you can follow the instructions forasynchronous fetching.library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)# Fetch first 10 comments response <- client$get(path="877107953929200/comments")jsonlite::fromJSON(response$text, flatten=TRUE)# Fetch next pageif (client$has_next_page(response)) { response <- client$query_next_page(response) jsonlite::fromJSON(response$text, flatten=TRUE) # Display second page}
library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)# Fetch first 10 subcommentsresponse <- client$get( path="2177675389246626/comments")jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page
R
Python
R
PythonRequest specific fieldsTo have the API return specific fields from the Instagram comments, create a comment fetch call,passing the fields parameter as a comma-separated list of fields you want included. If omitted,default fields will be returned.
Request comments with “since” and/or “until” filtersTo have the API return comments within a specific time and date range, create a comment fetchcall and pass the since and until parameters you want included.# Fetch next pageif (client$has_next_page(response)) { response <- client$query_next_page(response) jsonlite::fromJSON(response$text, flatten=TRUE) # Display second page}
library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)# Fetch first 10 comments with specific fieldsresponse <- client$get( path="877107953929200/comments", params=list("fields"="text,creation_time"))jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page
R
Python
R
PythonRequest comments with fetch_all filterTo have the API return all comments and not just the top level replies, you can use the fetch_allboolean param by setting it to true. Since the data are returned flattened, no sorting is applied.library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)# Will fetch comments that were created after 2024-04-13, # but before 1713139200 (epoch timestamp of "2024-04-15 12:00:00 AM)# Both formats (date and UNIX timestamp) are allowedresponse <- client$get( path="877107953929200/comments", params=list("since"="2024-04-13", "until"="1713139200"))jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page
library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)# Fetch ALL comments (paginated)response <- client$get( path="877107953929200/comments", params=list("fetch_all"=TRUE))jsonlite::fromJSON(response$text, flatten=TRUE) # Display first pageLearn moreGetting startedData dictionaryGuide to Facebook posts data
R
PythonContent Library and APIGet accessQuick linksContent LibraryContent Library APIOverviewChangelogGetting startedGuidesFacebook PagesFacebook groupsFacebook eventsFacebook profilesFacebook postsFacebook commentsInstagram accountsInstagram postsInstagram commentsID-based retrievalSearch guideAdvanced searchRate limitingData deletionAppendixSupportDisclosures and DisclaimersCitationsID-based RetrievalRate limiting


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Facebook Pages - Content Library and API - Documentazione - Meta for Developers.pdf


key: chroma:document
string_value:
Docume…Content Library and A…Content Library A…Guid…Facebook Pag…Su questa PaginaGuide to Facebook Pages dataYou can perform Facebook Page searches by calling the Meta Content Library API client get()method with the search/facebook_pages path. This document describes the syntax andparameters and shows how to perform basic queries using the method.All of the examples in this document assume you have created a Python or R Jupyter notebook anda client object. See Getting started to learn more.See Data dictionary for detailed information about the fields that are available on a Facebook pagenode.
ParametersParameterParameterTypeTypeDescriptionDescriptionQOptionalStringKeyword(s) to search for. Searches a Page name and descriptionﬁelds. See Advanced search guidelines for information about howmultiple keyword searches with Boolean operators are handled.FIELDSOptionalListComma-separated list of Page ﬁelds you want included in search results.See Data dictionary for descriptions of all available ﬁelds.PAGE_IDSOptionalListComma-separated list of Meta Content Library Page IDs as strings.Limits the query to the speciﬁed Pages. Maximum of 250 IDs.CATEGORIESOptionalListComma-separated list of categories to include in the search.IS_VERIFIEDOptionalBooleanThe veriﬁcation status of the Facebook Page. A Facebook Page with averiﬁed badge indicates that Facebook has conﬁrmed that it is theauthentic presence for that person or brand. Learn more.WEBSITEOptionalStringWebsite to match against the Facebook Page's "About" section.ADMIN_COUNTRIESOptionalListComma-separated list of countries by which to ﬁlter the Facebook Page'sadmin. Takes ISO Alpha-2 Country Code in 2-letter uppercase format.SINCEOptionalString orIntegerDate in YYYY-MM-DD (date only) or UNIX timestamp (translates to adate and time to the second) format. Facebook Pages created on or afterthis date or timestamp are returned (used with UNTIL to deﬁne a timerange). SINCE and UNTIL are based on UTC time zone, regardless ofthe local time zone of the user who created the Page.If both SINCE and UNTIL are included, the search includes thetime range deﬁned by those values.If SINCE is included and UNTIL is omitted, the search includes theSINCE time through the present time.If SINCE 


key: chroma:document
string_value:
zone of the user who created the Page.If both SINCE and UNTIL are included, the search includes thetime range deﬁned by those values.If SINCE is included and UNTIL is omitted, the search includes theSINCE time through the present time.If SINCE is omitted and UNTIL is included, the search goes fromthe beginning of Facebook time through the UNTIL time.If SINCE and UNTIL are both omitted, the search goes from thebeginning of Facebook time to the present time.If SINCE and UNTIL are the same UNIX timestamp, the searchincludes the SINCE time through the SINCE time plus one hour.If SINCE and UNTIL are the same Date (YYYY-MM-DD), thesearch includes the SINCE date through the SINCE date plus oneday.UNTILOptionalString orIntegerDate in YYYY-MM-DD (date only) or UNIX timestamp (translates to adate and time to the second) format. Facebook Pages created on orbefore this date or timestamp are returned (used with SINCE to deﬁne atime range). SINCE and UNTIL are based on UTC time zone, regardlessof the local time zone of the user who created the Page.If both SINCE and UNTIL are included, the search includes thetime range deﬁned by those values.If SINCE is included and UNTIL is omitted, the search includes theSINCE time through the present time.If SINCE is omitted and UNTIL is included, the search goes fromthe beginning of Facebook time through the UNTIL time.If SINCE and UNTIL are both omitted, the search goes from thebeginning of Facebook time to the present time.If SINCE and UNTIL are the same UNIX timestamp, the searchincludes the SINCE time through the SINCE time plus one hour.If SINCE and UNTIL are the same Date (YYYY-MM-DD), thesearch includes the SINCE date through the SINCE date plus oneday.Sample queriesSearch for Pages by keywordTo search for Pages that contain a specific keyword, use the q parameter. See Advanced searchguidelines for information 


key: chroma:document
string_value:
and UNTIL are the same Date (YYYY-MM-DD), thesearch includes the SINCE date through the SINCE date plus oneday.Sample queriesSearch for Pages by keywordTo search for Pages that contain a specific keyword, use the q parameter. See Advanced searchguidelines for information about how multiple keyword searches are handled.library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)response <- client$get( path = "search/facebook_pages", params = list('q' = "cybercrime"))jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page# Fetch next pageif (client$has_next_page(response)) { response <- client$query_next_page(response)
R
PythonThis example shows how to iterate through responses by using the query_next_page() method.You can keep calling query_next_page() to get the next page of 10 results, until all the searchresults have been returned. You can call has_next_page() to check if there is more data. SeeSearch guide for other display and storage options.Request specific fieldsTo have the API return only specific fields on any Pages in the response, with the fields parameterand a comma-separated list of fields you want included. If omitted, default fields will be returned.
Search for Pages by Page IDTo search for Pages with specific Page IDs (obtained from the results of previous Page searches),create a search object using the get() method with the page_ids parameter. jsonlite::fromJSON(response$text, flatten=TRUE) # Display second page}
library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)response <- client$get( path = "search/facebook_pages", params = list("q" = "cybercrime", 'fields' = "id,name"))jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page
response <- client$get( path = "search/facebook_pages", R
Python
R
PythonContent Library and APIGet accessQuick linksContent LibraryContent Library APIOverviewChangelogGetting startedGuidesFacebook PagesFacebook groupsFacebook eventsFacebook profilesFacebook postsFacebook commentsInstagram accountsInstagram postsInstagram commentsID-based retrievalFor using Page IDs to search for posts from specific Facebook Pages, see Guide to Facebook postsdata. params = list("page_ids" = list("282820031228465"), 'fields' = "id,name"))jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page
Learn moreGetting startedSearch guideAdvanced search guidelinesGuide to Facebook posts data


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Facebook posts - Content Library and API - Documentazione - Meta for Developers.pdf


key: chroma:document
string_value:
DocumentiContent Library and APIContent Library APIGuidesFacebook postsSu questa PaginaGuide to Facebook posts dataYou can perform Facebook post searches by calling the Meta Content Library API client get()method with the search/facebook_posts path. This document describes the parameters, andshows how to perform basic queries using the method.All of the examples in this document assume you have created a Jupyter notebook and a clientobject. See Getting started to learn more.See Data dictionary for detailed information about the fields that are available on a Facebook postnode.
ParametersParameterParameterTypeTypeDescriptionDescriptionQOptionalStringKeyword(s) to search for. See Advanced search guidelines forinformation about how multiple keyword searches with Boolean operatorsare handled.FIELDSOptionalListComma-separated list of Facebook post ﬁelds you want included insearch results. See Data dictionary for descriptions of all available ﬁelds.POST_IDSOptionalListComma-separated list of Meta Content Library post IDs as strings. Limitsthe query to posts in the list. Maximum of 250 IDs.*DeprecatedPAGE_IDSListThis parameter is no longer available. You can use the SURFACE_IDSparameter instead, which accepts Meta Content Library IDs from anyeligible Facebook post surface to ﬁlter by surface without specifying thetype.*DeprecatedPROFILE_IDSListComma-separated list of Meta Content Library Proﬁle IDs as strings.Limits the query to posts from Proﬁles in the list. Maximum of 250 IDs.*DeprecatedGROUP_IDSListComma-separated list of Meta Content Library group IDs as strings.Limits the query to posts from groups in the list. Maximum of 250 IDs.*DeprecatedEVENT_IDSListComma-separated list of Meta Content Library event IDs as strings.Limits the query to posts from events in the list. Maximum of 250 IDs.SURFACE_IDSOptionalStringComma-separated list of Meta Content Library IDs from post surfaces asstrings. Limits the query to posts made to the surfaces in the list.Maximum of 250 IDs.LANGOptionalStringThe content languages of the Facebook posts to include, speciﬁed asISO 639-1 language codes in 2-letter lowercase format. Multiplelanguages are comma-separated either in a single string(lang="ru,es") or in an array (lang=["ru" "es"]).LINKOptional withthe qparameterStringPosts containing the speciﬁed URL are included in search results. 


key: chroma:document
string_value:
of the Facebook posts to include, speciﬁed asISO 639-1 language codes in 2-letter lowercase format. Multiplelanguages are comma-separated either in a single string(lang="ru,es") or in an array (lang=["ru" "es"]).LINKOptional withthe qparameterStringPosts containing the speciﬁed URL are included in search results. Allforms of the URL that point to the same piece of content will be returned.Usage:Can only be used with the q parameter.Returns posts from exact matches only.Searching for multiple URLs in one query is not supported.If you want to search all posts from a domain, the linkparameter is not the best option since it returns postsfrom exact matches only.Instead, you can use the q parameter where q=url. Resultswould include all posts in which the value of q is at least apart of the URL in the post. For example, posts fromcnn.com/entertainment would be included in a search forcnn.com. Once you have the larger set of results, you canwrite Python or R code in your Jupyter environment tonarrow them down.IS_BRANDED_CONTENTOptionalBooleanIndicates whether the Facebook posts returned can include brandedcontent or not. Learn more.MEDIA_TYPESOptionalListComma-separated list of media types to be included in the searchresults. Media types include albums, photos, videos (including reels),links, reshare and status.*DeprecatedADMIN_COUNTRIESListThis parameter is no longer available. You can use theSURFACE_COUNTRIES parameter instead.SURFACE_COUNTRIESOptionalListComma-separated list of countries by which to ﬁlter posts made toFacebook Pages and proﬁles using the country location from thetransparency section. Only returns posts for which surface_types ispage or profile, whether or not the surface_types parameter hasbeen set. Takes ISO Alpha-2 Country Code in 2-letter uppercase format.*DeprecatedOWNER_TYPESListThis parameter is no longer available. You can use the SURFACE_TYPESparameter instead.SURFACE_TYPESOptionalListComma-separated list of post surface types included in the searchresults. Possible values are page, profile, group and event.VIEWS_BUCKET_STARTOptionalIntegerFacebook posts with view counts larger than or equal to this numbermatch the search criteria. Range is from 0 to the maximum of more 


key: chroma:document
string_value:
list of post surface types included in the searchresults. Possible values are page, profile, group and event.VIEWS_BUCKET_STARTOptionalIntegerFacebook posts with view counts larger than or equal to this numbermatch the search criteria. Range is from 0 to the maximum of more than100 million. Used with VIEWS_BUCKET_END to deﬁne a range.Views are the number of times the post or reel was on screen, notincluding times it appeared on the post owner’s screen. See DataDictionary for more details.VIEWS_BUCKET_ENDOptionalIntegerFacebook posts with view counts smaller than or equal to this numbermatch the search criteria. Range is from 0 to the maximum of more than100 million. Used with VIEWS_BUCKET_START to deﬁne a range.Views are the number of times the post or reel was on screen, notincluding times it appeared on the post owner’s screen. See Datadictionary for more details.SINCEOptionalString orIntegerDate in YYYY-MM-DD (date only) or UNIX timestamp (translates to adate and time to the second) format. Facebook posts created on or afterthis date or timestamp are returned (used with UNTIL to deﬁne a timerange). SINCE and UNTIL are based on UTC time zone, regardless ofthe local time zone of the user who made the post.If both SINCE and UNTIL are included, the search includes thetime range deﬁned by those values.If SINCE is included and UNTIL is omitted, the search includes theSINCE time through the present time.If SINCE is omitted and UNTIL is included, the search goes fromthe beginning of Facebook time through the UNTIL time.If SINCE and UNTIL are both omitted, the search goes from thebeginning of Facebook time to the present time.If SINCE and UNTIL are the same UNIX timestamp, the searchincludes the SINCE time through the SINCE time plus one hour.If SINCE and UNTIL are the same Date (YYYY-MM-DD), thesearch includes the SINCE date through the SINCE date plus oneday.UNTILOptionalString orIntegerDate in YYYY-MM-DD (date 


key: chroma:document
string_value:
are the same UNIX timestamp, the searchincludes the SINCE time through the SINCE time plus one hour.If SINCE and UNTIL are the same Date (YYYY-MM-DD), thesearch includes the SINCE date through the SINCE date plus oneday.UNTILOptionalString orIntegerDate in YYYY-MM-DD (date only) or UNIX timestamp (translates to adate and time to the second) format. Facebook posts created on orbefore this date or timestamp are returned (used with SINCE to deﬁne atime range). SINCE and UNTIL are based on UTC time zone, regardlessof the local time zone of the user who made the post.If both SINCE and UNTIL are included, the search includes thetime range deﬁned by those values.If SINCE is included and UNTIL is omitted, the search includes theSINCE time through the present time.If SINCE is omitted and UNTIL is included, the search goes fromthe beginning of Facebook time through the UNTIL time.If SINCE and UNTIL are both omitted, the search goes from thebeginning of Facebook time to the present time.If SINCE and UNTIL are the same UNIX timestamp, the searchincludes the SINCE time through the SINCE time plus one hour.If SINCE and UNTIL are the same Date (YYYY-MM-DD), thesearch includes the SINCE date through the SINCE date plus oneday.SORTOptionalEnumSorting mode in which the posts are returned (only for synchronousendpoint). Available options:newest_to_oldest: Posts are returned in reverse chronologicalorder (newest ﬁrst).oldest_to_newest: Posts are returned in chronological order(oldest ﬁrst).most_to_least_views: Posts are returned based on the number ofviews (most views ﬁrst).Default value: newest_to_oldest*The parameters are deprecated in the API 4.0 versionSample queriesSearch for posts by keywordTo search for all public posts on Facebook Pages, groups, profiles, and events that contain specifickeywords, use the q parameter. See Advanced search guidelines for information about howmultiple keyword searches are handled.
This example shows how to iterate through responses by using the query_next_page() method.You can keep calling query_next_page() to 


key: chroma:document
string_value:
groups, profiles, and events that contain specifickeywords, use the q parameter. See Advanced search guidelines for information about howmultiple keyword searches are handled.
This example shows how to iterate through responses by using the query_next_page() method.You can keep calling query_next_page() to get the next page of 10 results, until all the searchresults have been returned or the limit of 1,000 for synchronous search has been reached. You cancall has_next_page() to check if there is more data. See Search guide for other display and storageoptions.The API only returns posts made to Facebook Pages, profiles, groups, or events that can bereturned on their respective paths (search/facebook_pages, search/facebook_profiles,search/facebook_groups and search/facebook_events).Search for posts by post IDTo search for posts with specific post IDs (that you obtained from a previous post search), use thepost_ids parameter specifying a list of post IDs to include in the results.library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)response <- client$get( path="search/facebook_posts", params = list("q"="cybercrime"))jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page# Fetch next pageif (client$has_next_page(response)) { response <- client$query_next_page(response) jsonlite::fromJSON(response$text, flatten=TRUE) # Display second page}
R
PythonSearch for posts made to specific Facebook Pages, profiles, groups, or eventsSearching for posts made to specific Facebook Pages, profiles, groups, or events requires that youfirst obtain Page, group, or event IDs by searching using the search/facebook_pages,search/facebook_profiles, search/facebook_groups and search/facebook_events paths.The search results will include the ID field by default (you don't have to specify it in your query). SeeGuides to learn about these methods.The IDs that are displayed in the search results are Meta Content Library IDs that protect userprivacy and will not match the IDs of the content on Meta platforms. These Meta Content LibraryIDs are the ones you use in your subsequent post searches.To search posts made to specific Pages, profiles, groups, or events, use the surface_idsparameter with the page_ids, profile_ids, group_ids, or event_ids parameter, and with orwithout the q parameter. 


key: chroma:document
string_value:
Meta Content LibraryIDs are the ones you use in your subsequent post searches.To search posts made to specific Pages, profiles, groups, or events, use the surface_idsparameter with the page_ids, profile_ids, group_ids, or event_ids parameter, and with orwithout the q parameter. q is not required but can be added to further filter posts. It does notmatter when the posts were created. If you omit the q parameter, all public posts on the specifiedPages, profiles, groups, or events are returned.# Search for posts with specific post IDs response <- client$get( path="search/facebook_posts", params = list("post_ids"=list("877107953929200")))
# Search for posts made to specific Page IDsresponse <- client$get( path="search/facebook_posts", params = list("surface_ids"=list("282820031228465")))
R
Python
R
Python# Search for posts made to specific group IDs response <- client$get( path="search/facebook_posts", params = list("surface_ids"=list("339983685122355")))
# Search for posts made to specific Profile IDs response <- client$get( path="search/facebook_posts", params = list("surface_ids"=lis("755732639815385")))
# Search for posts made to specific event IDs response <- client$get( path="search/facebook_posts", params = list("surface_ids"=list("1025592588867344")))
# Search for posts made to specific Page IDs and specific group IDs response <- client$get( path="search/facebook_posts", params=list("surface_ids"=list("282820031228465","339983685122355")))
R
Python
R
Python
R
Python
R
PythonRequest specific fieldsTo have the API return only specific fields on any Facebook posts in the response, use the fieldsparameter and a comma-separated list of fields you want included. If omitted, default fields will bereturned.
Search for Facebook posts containing a specific URLTo search for all public posts made to Facebook Pages, profiles, groups, and events that containspecific keywords and a specific URL, use the q and link parameters. The link parameter cannotbe used without the q parameter. See Advanced search guidelines for information about howmultiple keyword searches are handled.All forms of the URL that point to the same piece of content will be returned. Searching for multipleURLs in one query is not supported.# Return specific list of fieldsresponse <- client$get( path="search/facebook_posts", params = list("q"="cybercrime", "fields"="id,text,lang"))jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page
# Search including both 


key: chroma:document
string_value:
that point to the same piece of content will be returned. Searching for multipleURLs in one query is not supported.# Return specific list of fieldsresponse <- client$get( path="search/facebook_posts", params = list("q"="cybercrime", "fields"="id,text,lang"))jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page
# Search including both the `q` and `link` parameters:response <- client$get( path="search/facebook_posts", params = list("q"="nike", "link"="https://nike.com"))jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page
R
Python
R
PythonContent Library and APIGet accessQuick linksContent LibraryContent Library APIOverviewChangelogIncluding multimedia in search results: Third-party cleanroomenvironment onlyIf you are using the Meta Content Library API in an approved third-party cleanroom environment (asopposed to Meta's Researcher Platform), and if that environment supports it, you have the option ofincluding multimedia (photo, video) in your search results. Multimedia in posts from FacebookPages, profiles, groups, and events are all eligible.Include the keyword multimedia in your query (fields parameter).For any media contained in a post, the response will include the type of media (photo, video),an ID, and either the media itself or a link to where the cleanroom environment has stored themedia. Whether the media can be displayed directly in the response or not depends on thethird-party cleanroom interface.The number of calls allowed that include multimedia is controlled by a multimedia querybudget specific to the third-party cleanroom environment. See Rate limiting and querybudgeting for multimedia for more information.Learn moreGetting startedSearch guideData dictionaryAdvanced search guidelinesRate limiting and query budgeting for multimediaChangelogGetting startedGuidesFacebook PagesFacebook groupsFacebook eventsFacebook profilesFacebook postsFacebook commentsInstagram accountsInstagram postsInstagram commentsID-based retrievalSearch guideAdvanced searchRate limitingData deletionAppendixSupportDisclosures and DisclaimersCitations


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Facebook profiles - Content Library and API - Documentazione - Meta for Developers.pdf


key: chroma:document
string_value:
Docume…Content Library and …Content Library …Guid…Facebook pro7l…Su questa PaginaGuide to Facebook profiles dataYou can perform Facebook profile searches by calling Meta Content Library API client get()method with the search/facebook_profiles path. This document describes the parameters andshows how to perform basic queries by using the method.All of the examples in this document assume you have already created a Python or R Jupyternotebook and have created a client object. See Getting started to learn more.See Data dictionary for detailed information about the fields that are available on a Facebook profilenode.
ParametersParameterParameterTypeTypeDescriptionDescriptionQOptionalStringKeyword(s) to search for. Searches a proﬁle's name and intro ﬁelds.See Advanced search guidelines for information about how multiplekeyword searches with Boolean operators are handled.FIELDSOptionalListComma-separated list of proﬁle ﬁelds you want included in searchresults. See Data dictionary for descriptions of all available ﬁelds.CATEGORIESOptionalListComma-separated list of categories to include in the search.IS_VERIFIEDOptionalBooleanThe veriﬁcation status of the Facebook proﬁle. A Facebook proﬁle with averiﬁed badge indicates that Facebook has conﬁrmed that it is theauthentic presence for that person or brand. Learn more.WEBSITEOptionalStringWebsite to match against the Facebook proﬁle's "About" section.PROFILE_IDSOptionalListComma-separated list of Meta Content Library proﬁle IDs as strings.Limits the query to the speciﬁed proﬁles. Maximum of 250 IDs.ADMIN_COUNTRIESOptionalListComma-separated list of countries by which to ﬁlter the Facebookproﬁle's admin. Takes ISO Alpha-2 Country Code in 2-letter uppercaseformat.SINCEOptionalString orIntegerDate in YYYY-MM-DD (date only) or UNIX timestamp (translates to adate and time to the second) format. Facebook proﬁles created on orafter this date or timestamp are returned (used with UNTIL to deﬁne atime range). SINCE and UNTIL are based on UTC time zone, regardlessof the local time zone of the user who created the proﬁle.If both SINCE and UNTIL are included, the search includes thetime range deﬁned by those values.If SINCE is included and UNTIL is omitted, the search includes theSINCE time through the present time.If SINCE 


key: chroma:document
string_value:
zone of the user who created the proﬁle.If both SINCE and UNTIL are included, the search includes thetime range deﬁned by those values.If SINCE is included and UNTIL is omitted, the search includes theSINCE time through the present time.If SINCE is omitted and UNTIL is included, the search goes fromthe beginning of Facebook time through the UNTIL time.If SINCE and UNTIL are both omitted, the search goes from thebeginning of Facebook time to the present time.If SINCE and UNTIL are the same UNIX timestamp, the searchincludes the SINCE time through the SINCE time plus one hour.If SINCE and UNTIL are the same Date (YYYY-MM-DD), thesearch includes the SINCE date through the SINCE date plus oneday.UNTILOptionalString orIntegerDate in YYYY-MM-DD (date only) or UNIX timestamp (translates to adate and time to the second) format. Facebook proﬁles created on orbefore this date or timestamp are returned (used with SINCE to deﬁne atime range). SINCE and UNTIL are based on UTC time zone, regardlessof the local time zone of the user who created the proﬁle.If both SINCE and UNTIL are included, the search includes thetime range deﬁned by those values.If SINCE is included and UNTIL is omitted, the search includes theSINCE time through the present time.If SINCE is omitted and UNTIL is included, the search goes fromthe beginning of Facebook time through the UNTIL time.If SINCE and UNTIL are both omitted, the search goes from thebeginning of Facebook time to the present time.If SINCE and UNTIL are the same UNIX timestamp, the searchincludes the SINCE time through the SINCE time plus one hour.If SINCE and UNTIL are the same Date (YYYY-MM-DD), thesearch includes the SINCE date through the SINCE date plus oneday.Sample queriesSearch for profile by keywordTo search for profiles that contain a specific use the get() method with the q parameter. SeeAdvanced search 


key: chroma:document
string_value:
and UNTIL are the same Date (YYYY-MM-DD), thesearch includes the SINCE date through the SINCE date plus oneday.Sample queriesSearch for profile by keywordTo search for profiles that contain a specific use the get() method with the q parameter. SeeAdvanced search guidelines for information about how multiple keyword searches are handled.library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)response <- client$get( path = "search/facebook_profiles", params = list('q' = "cybercrime"))jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page# Fetch next pageif (client$has_next_page(response)) {
R
PythonYou can use the query_next_page() and has_next_page() to get the next page of 10 resultsuntil all the results have been returned. See Search guide for other display and storage options.Request specific fieldsTo have the API return specific fields on any profiles in the response, include the fields parameterand a comma-separated list of fields you want included. If omitted, default fields will be returned.
Search for profiles by profile IDTo search for profiles with specific profile IDs (obtained from the results of previous profilesearches), use get() method with the profile_ids parameter. response <- client$query_next_page(response) jsonlite::fromJSON(response$text, flatten=TRUE) # Display second page}
library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)response <- client$get( path = "search/facebook_profiles", params = list("q" = "cybercrime", 'fields' = "id,name"))jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page
response <- client$get( path = "search/facebook_profiles", params = list("page_ids" = list('755732639815385'), 'fields' = "id,name")
R
Python
R
PythonContent Library and APIGet accessQuick linksContent LibraryContent Library APIOverviewChangelogGetting startedGuidesFacebook PagesFacebook groupsFacebook eventsFacebook profilesFacebook postsFacebook commentsInstagram accountsInstagram postsInstagram commentsFor using profile IDs to search for posts from specific Facebook profiles, see Guide to Facebookposts data.)jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page
Learn moreGetting startedSearch guideData dictionaryAdvanced search guidelinesGuide to Facebook posts data


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\FAQ - Content Library and API.pdf


key: chroma:document
string_value:
DocumentiContent Library and APISupportFAQSu questa PaginaFrequently asked questionsThe following general disclosures apply to both Meta Content Library and API.
Access, eligibility, and publicationWho can gain access to Content Library and API?Any researchers who meet the eligibility criteria (see Get access), provided all other terms andconditions are met, may access Content Library and API.Are global researchers eligible for access to Content Library and API?We welcome global researchers, but access to or use of our tools and data must comply with allapplicable laws, rules and regulations. In addition, the researcher applicant, and any academicuniversity or institution with which the applicant is a!iliated, must not be in a jurisdiction that is thetarget of sanctions imposed by the United States, United Kingdom, European Union or UnitedNations.Do researchers have to pay to access Content Library and API?No. There are no fees associated with access or computation.Do researchers have to reapply for access if they change their research topic or proposal?If the researcher has made any substantive changes to their research topic, proposal or researchethics documentation since having their application approved by the Inter-university Consortiumfor Political and Social Research (ICPSR), they must reapply for access.Do global researchers a!iliated with institutions not in the United States still need to applythrough ICPSR?Yes. All Content Library and API researcher applications are processed and reviewed by ICPSR.How does the application and access process work for researchers who collaborate together oras part of a larger research team?ICPSR will process and review applications from teams of researchers with a clearly identifiedresearch lead and collaborators. For more information please reference the ICPSR application page.Does Meta place any restrictions on how I can publish with data from the Meta Content Libraryand API?Researchers may publish Research Outputs (such as tables, graphs, and analysis), but may notpublish any Confidential Information or Personal Data. For publications based solely 


key: chroma:document
string_value:
Meta place any restrictions on how I can publish with data from the Meta Content Libraryand API?Researchers may publish Research Outputs (such as tables, graphs, and analysis), but may notpublish any Confidential Information or Personal Data. For publications based solely on ContentLibrary and/or API, Meta will not ask to review research manuscripts prior to publication. However,we ask that researchers follow Meta’s attribution guidelines (see Citations) and provide notice uponpublishing.Please refer to the Product Terms for Meta Research Tools for the requirements and conditionsrelated to publication.How does Meta define qualified in terms of academic and research institutions?For academic institutions, qualified means the institution meets all of the following criteria. It is:Dedicated to the pursuit of education and research.Accredited, as indicated by recognized standards and evidence on the institution's website(such as a university), or as demonstrated by documentation provided to ICPSR.Qualified to grant academic degrees (such as undergraduate, graduate, doctoral).A not-for-profit endeavor (in other words, not a business whose sole purpose is to make aprofit).For research institutions, qualified means the institution is a non-university organization, institute,or society/entity which operates as a not-for-profit entity and holds scientific or public interestresearch as a primary purpose or core activity.ViewsHow are views defined?In Meta Content Library and API, views are defined as the cumulative number of times a post wason screen, including multiple appearances of the post on screen from the same account. Thecontent must be displayed for at least 250 milliseconds in order to qualify. Appearances on thepost owner’s screen are not included. The post has to be fully visible in order to qualify.Video posts: views are counted whether the video was played or not.Reshares: When a reshared post is on screen for a user, the view count for both the original postand the reshared post increment by one. For example, suppose user A makes 


key: chroma:document
string_value:
views are counted whether the video was played or not.Reshares: When a reshared post is on screen for a user, the view count for both the original postand the reshared post increment by one. For example, suppose user A makes a post and user Bshares that post. If a third user views the post shared by B, then the view counts for both theoriginal post from A and the reshare from B increment.Only posts with more than 100 views display the view count. A post displays no view count value ifthere were fewer than 100 views as of the last refresh.Some posts don't have any views even though they have engagement on them. Why is that?Views are available for posts created after January 2017 on Facebook and after October 2022 onInstagram. Updates to views can take up to 17 days. This means the number of views visible for apost can be up to 17 days old and for posts newer than 17 days, it's possible that some would nothave views available.Researcher Platform and Content Library APICan I export data out of the Researcher Platform?Download or export of Content Library API data from the Researcher Platform is not permitted.Can I upload datasets into my research environment on Researcher Platform?You may not upload any data to Researcher Platform when working with data from Content LibraryAPI. However, machine learning models, code, and code libraries that you have the necessaryrights to use are permitted for upload.What research environments are available on Researcher Platform?Researchers will have access to JupyterLab with support for R and Python programming languages.How does data deletion work on Researcher Platform?Researcher Platform JupyterHub environment programmatically deletes all Content Library APIresearch output data and local files generated by the user from the JupyterHub environment every30 days on the first of every month. This 


key: chroma:document
string_value:
programming languages.How does data deletion work on Researcher Platform?Researcher Platform JupyterHub environment programmatically deletes all Content Library APIresearch output data and local files generated by the user from the JupyterHub environment every30 days on the first of every month. This ensures that updates made to the visibility of content onFacebook or Instagram are carried over to Researcher Platform in accordance with Meta policies.See Data deletion to learn more.Can I use the Meta Content Library API outside of Researcher Platform?The API is also hosted in approved third-party virtual cleanroom environments such as the oneprovided by the Inter-university Consortium for Political and Social Research (ICPSR) at theUniversity of Michigan. The user interface and feature support specifics of third-party cleanroomsdepend upon the individual environments. The documentation of these user interfaces is outsideContent Library and APIGet accessQuick linksContent LibraryContent Library APIAppendixSupportFAQGet HelpDisclosures and DisclaimersCitationsthe scope of Meta Content Library API documentation.Rate limits and query budgetDoes rate-limiting apply to Content Library API?Yes it does. The limits are as follows:You can perform up to 60 synchronous calls per minute.You can perform one asynchronous call per minute.Does rate-limiting apply to Content Library?Yes it does. You can perform up to 60 searches per minute.Is there a limit to the total number of results allowed in Content Library and API?For Content Library and API combined, one researcher can retrieve a maximum of 500,000 datarecords per 7-day rolling window. This is referred to as a query budget. The rolling window is oneweek previous to the current timestamp (to the second).See Rate limiting and query budgeting to learn more.


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Field expansion - Content Library and API.pdf


key: chroma:document
string_value:
DocumentiContent Library and APIAppendixField expansionSu questa PaginaField expansionThere are a number of fields in the data available through the Meta Content Library API that arenested. For example, the statistics field contains the like_count, haha_count, and severalother fields. When you create search objects, you might want to include some or all of the nestedfields in your search. Field expansion allows you to perform queries for multiple fields and theirnested fields in a single call. We refer to the nested fields as expanded fields.In the Data dictionary, expanded fields are indicated by a dot notation. For example,statistics.like_count indicates that like_count is available within statistics. To specifyexpanded fields in your search objects, you can either use this dot notation or you can append thenames of the expanded fields in curly braces after the parent field. See the examples in thissection.
Specifying multiple fieldsYou can specify which multiple fields you want returned on any associated data by using thefields parameter, with the field names separated by commas.# Return specific list of fieldsresponse <- client$get( path="search/facebook_posts", params = list("q"="cybercrime", "fields"="id,text,lang"))Specifying expanded fields
R
PythonContent Library and APIYou can specify which expanded fields you want returned on  of expanded field names wrapped in curlybraces to the end of any parent field name.
If you specify a field but do not specify any of its expanded fields, default expanded fields on theassociated node are included in the response. If you omit the fields parameter altogether, defaultexpanded fields on default parent fields on the associated data are included in the response.# Return specific list of fieldsresponse <- client$get( path="search/facebook_postsContent Library and APIGet accessQuick linksContent LibraryContent Library APIAppendixData dictionaryField expansionSearch qualityGet API CodeShare producer listSupportDisclosures and DisclaimersCitations


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Get access - Content Library and API.pdf


key: chroma:document
string_value:
DocumentiContent Library and APIGet accessSu questa PaginaGet accessTo help ensure a fair and independent application process, Meta has partnered with the Inter-university Consortium for Political and Social Research (ICPSR) based at the University of Michiganto assess researcher qualifications and review submissions from global applicants to Meta ContentLibrary and API.
Eligibility requirementsTo be eligible for access, applicants must be a"iliated with a qualified academic institution or aqualified research institution. Individuals from diﬀerent disciplinary and professional backgroundsare welcome to apply.For academic institutions, qualified means the institution meets all of the following criteria. It is:Dedicated to the pursuit of education and research.Accredited, as indicated by recognized standards and evidence on the institution's website(such as a university), or as demonstrated by documentation provided to ICPSR.Qualified to grant academic degrees (such as undergraduate, graduate, doctoral).A not-for-profit endeavor (in other words, not a business whose sole purpose is to make aprofit).For research institutions, qualified means that the institution meets all of these criteria:A non-university organization, institute, society or entity.Not-for-profit institution.Institution dedicated to scientific or public interest research.Application and access processStep 1: Review application requirements and submit an application.You can find an overview of the application process and data tools on the ICPSR Social MediaArchive (SOMAR). We also encourage you to familiarize yourself with the Meta Content Libraryapplication page on the SOMAR site and ICPSR’s application guide before applying.ICPSR will notify Meta and the applicant if the application is approved. Applicants can expect thereview process to take between four and six weeks.Step 2: Fulfill additional data access requirements.Each individual who will access the Meta Content Library user interface (UI) must accept aclickthrough agreement for the Product Terms. If the clickthrough agreement is not appropriate foryour institution (e.g., if your institution does not allow employees to consent to click-throughProduct Terms), Meta oﬀers the option for the institution to sign 


key: chroma:document
string_value:
(UI) must accept aclickthrough agreement for the Product Terms. If the clickthrough agreement is not appropriate foryour institution (e.g., if your institution does not allow employees to consent to click-throughProduct Terms), Meta oﬀers the option for the institution to sign an Information Sharing Agreement(ISA) to govern access at an institution level. The executed ISA may apply to various researchagendas; however, new applications for new research proposals must be submitted. The MetaContent Library API is available to access via the ICPSR Virtual Data Enclave. A Data Use Agreementbetween ICPSR and your institution must be executed before you can be granted access to theplatform.The UI can be used separately or in conjunction with the Content Library API. For more informationon the application requirements, please reference the ICPSR application guide.Step 3: Gain access.Access to Meta Content Library and Content Library API is provisioned after all accessrequirements are fulfilled. To continue accessing the tools, you must recertify your a"iliation withyour institution and research project on an annual basis.Frequently asked questions about access, eligibility, andpublicationAre global applicants eligible for access to Content Library and API?We welcome global users, but access to or use of our tools and data must comply with allapplicable laws, rules and regulations. In addition, the researcher applicant, and any academicuniversity or institution with which the applicant is a"iliated, must not be in a jurisdiction that is theContent Library and APIGet accesstarget of sanctions imposed by the United States, United Kingdom, European Union or UnitedNations.Is payment required to access Content Library and API?No. There are no fees associated with access or computation.What if my research agenda changes? Is a new application required?If any substantive changes were made to a research agenda since having an application approvedby ICPSR, a new application must be submitted.Do global applicants a"iliated with institutions not in the United 


key: chroma:document
string_value:
if my research agenda changes? Is a new application required?If any substantive changes were made to a research agenda since having an application approvedby ICPSR, a new application must be submitted.Do global applicants a"iliated with institutions not in the United States still need to apply throughICPSR?Yes. All Content Library and API researcher applications are processed and reviewed by ICPSR.How does the application and access process work for users who collaborate together or are partof a larger research team?ICPSR will process and review applications from teams of researchers with a clearly identifiedresearch lead and collaborators. For more information please reference the ICPSR application page.Does Meta place any restrictions on how I can publish with data from the Meta Content Libraryand API?Research Outputs (such as tables, graphs, and analysis) may be published, but no ConfidentialInformation or Personal Data.For publications based solely on Content Library and/or API, Meta willnot ask to review research manuscripts prior to publication. However, we ask that researchersfollow the Meta attribution guidelines (see Citations) and provide notice upon publishing.Please refer to the Product Terms for Meta Research Tools for the requirements and conditionsrelated to publication.Learn moreInter-university Consortium for Political and Social Research (ICPSR)Quick linksContent LibraryContent Library APIAppendixSupportDisclosures and DisclaimersCitations


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Get API Code - Content Library and API.pdf


key: chroma:document
string_value:
DocumentiContent Library and APIAppendixGet API CodeSu questa PaginaGet API CodeGet API Code is a tool within Meta Content Library that automatically generates a Python or R codesnippet corresponding to your current search that you can copy and paste into your Meta ContentLibrary API Jupyter notebook. NOTE: This feature is only available if you are using Content LibraryAPI in the Researcher Platform.Remember the limitsIf you submit a synchronous query in the Content Library API that would return more than1000 results, you will only see the top 1000.If you submit an asynchronous query in the API that would return more than 100,000results, the API will give you an error message and will not complete the query.The automatically generated R or Python code might return more than 100,000 results. Besure to check the very top of the Content Library search results to see the size of theresults before you use the same search in the API.
In Content LibraryDefine your searchSelect the parameters for your search. The About page in the web UI describes all the filters thatare available.Open the Get API Code toolClick </> in the top menu bar (mouse over the button to see the label).Select Python or RA new window opens in which your search parameters are listed, and  the correct tab selected, click Copy to Clipboard below the code block.The code block also includes instructions for submitting the code to the API as anasynchronous search which processes in the background. See Search guide to learn aboutthe difference between synchronous (default) and asynchronous searches.Go to Content Library APIAt the bottom of the Get API Code window, there is a Go to Content Library API button that opensthe Content Library API sign-in window.VPN connection is required for Content Library API:The Go to Content Library API button is clickable if you are 


key: chroma:document
string_value:
of the Get API Code window, there is a Go to Content Library API button that opensthe Content Library API sign-in window.VPN connection is required for Content Library API:The Go to Content Library API button is clickable if you are connected to VPN.If you believe you are connected, but the button is not  search (query) into a blank cell in your Jupyter notebook. Be sureContent Library and APIGet accessQuick linksContent LibraryContent Library APIAppendixData dictionaryField expansionSearch qualityGet API CodeShare producer listSupportDisclosures and DisclaimersCitationsthe language (R or Python) of the notebook matches the language of the code you copied. If youhave not already set up your Jupyter environment, see Getting started for guidance.Run the codeClick the triangular button to run the code and display the results.Learn moreContent Library API documentationSearch guideGetting started


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Getting started - Content Library and API - Documentazione - Meta for Developers.pdf


key: chroma:document
string_value:
DocumentiContent Library and APIContent Library APIGetting startedSu questa PaginaGetting startedYou can work with Meta Content Library API within Meta's Researcher Platform or within anapproved third-party cleanroom environment. The getting started procedure documented here isspecific to Researcher Platform which runs a modified version of Jupyter and provides you with avirtual data cleanroom where you can securely search for and analyze data. If you are accessing theContent Library API through a third-party cleanroom environment, you will be provided with gettingstarted instructions from the cleanroom's system administrator.To get up and running with Content Library API in Researcher Platform:Set up OpenVPNLog in to the Researcher Platform URLCreate a Jupyter notebookImport the Content Library API clientTest with a basic search
Set up OpenVPNContent Library API can only be accessed through a Virtual Private Network (VPN). This sectionshows you how to install and configure the OpenVPN client and connect to our VPN server. Onceconnected, you will be able to access Meta Content Library API.Step 1: Download and install OpenVPNWhen the setup wizard completes, OpenVPN Connect launches and you will be required to acceptthe OpenVPN Inc. Data Collection, Use and Retention policy to continue.Step 2: Set up your profileIn the Import Profile window, select the UPLOAD FILE tab.Step 3: Download the OpenVPN configuration fileClicking this link downloads the OpenVPN configuration file (fortVpnCredentials.ovpn) to yourcomputer (check your downloads folder). Once downloaded, drag and drop the file into the ImportProfile window.Step 4: Connect to the VPNIn the Imported Profile window, click CONNECT.Once successfully connected, you will see this window:
While you are connected to our VPN server, all of your internet traffic is routed through it,so be sure to disconnect when you are finished.Log in to the Researcher Platform URLWhile connected to the VPN, go to the Researcher Platform URL.Log in to the site using your Facebook credentials. This will spin 


key: chroma:document
string_value:
traffic is routed through it,so be sure to disconnect when you are finished.Log in to the Researcher Platform URLWhile connected to the VPN, go to the Researcher Platform URL.Log in to the site using your Facebook credentials. This will spin up an instance of JupyterHubserver for your use in the Researcher Platform.You will be oﬀered the choice of CPU or GPU server. You can learn more about the diﬀerencebetween the two here and there is complete documentation on Researcher Platform here.Create a Jupyter notebookTo create a new notebook:. In your Jupyter hub environment, click the blue "+" symbol in the upper left corner of thewindow.. Under Notebook in the Launcher tab, select Python 3 or R according to your preferredlanguage. This creates and opens a new Jupyter notebook.To name the notebook, right-click the notebook in the left navigation bar and select Rename.You enter queries in the blank cells of the notebook. To run a query, click the play icon.Import the Content Library API clientAll calls are made using the Content Library API Client. You only need to import the Content LibraryAPI client once per Jupyter notebook server session.In code block examples in this documentation, select the R or Python tab to see thecorresponding code. You can copy the code and paste it into your notebook.library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClient# Set specific MCL_API_VERSION, or use client$LATEST_VERSION to get the latest client$set_default_version(client$LATEST_VERSION)Test with a basic searchTest your setup by running a basic search query. Here is an example to try for Facebook Pages:
R
Python
R
PythonTest with fetching by Meta Content Library IDTest how to fetch any entity by their ID (obtained from the results of previous searches), by fetchingone of the Pages from previous example: Here is an example to try:library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)# Search for Facebook Pagespages_response <- client$get( path="search/facebook_pages", params = list("q"="mountains")) jsonlite::fromJSON(pages_response$text, flatten=TRUE) # 


key: chroma:document
string_value:
entity by their ID (obtained from the results of previous searches), by fetchingone of the Pages from previous example: Here is an example to try:library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)# Search for Facebook Pagespages_response <- client$get( path="search/facebook_pages", params = list("q"="mountains")) jsonlite::fromJSON(pages_response$text, flatten=TRUE) # Display first page
pages_data <- jsonlite::fromJSON(pages_response$text, flatten=TRUE)$datapage_mcl_id <- pages_data[c('id')][1,]# Fetch by Meta Content Library IDresponse <- client$get(path=page_mcl_id) jsonlite::fromJSON(response$text, flatten=TRUE)Learn moreJupyterJupyterLab documentationJupyter Notebook basicsResearcher Platform documentation
R
PythonContent Library and APIGet accessQuick linksContent LibraryContent Library APIOverviewChangelogGetting startedGuidesAppendixSupportDisclosures and DisclaimersCitations


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Guides - Content Library and API - Documentazione - Meta for Developers.pdf


key: chroma:document
string_value:
DocumentiContent Library and APIContent Library APIGuidesSu questa PaginaGuidesThis section provides a guide to each of the diﬀerent types of data that Meta Content Library APIsupports plus some additional guides to further develop your expertise with the API.
Facebook Pages dataDescribes the search/facebook_pagesendpoint, including parameters and some queryexamples.Facebook groups dataDescribes the search/facebook_groupsendpoint, including parameters and some queryexamples.Facebook events dataDescribes the search/facebook_eventsendpoint, including parameters and some queryexamples.Facebook profiles dataDescribes the search/facebook_profilesendpoint, including parameters and some queryexamples.Facebook posts dataDescribes the search/facebook_postsendpoint, including parameters and some queryexamples.Facebook comments dataDescribes the Facebook /comments endpoint,including parameters and some query examples.Instagram accounts dataDescribes the search/instagram_accountsendpoint, including parameters and some queryInstagram posts dataDescribes the search/instagram_postsendpoint, including parameters and some querytrievalExplains how to fetch a Meta Content Librarynode by using a Meta Content Library ID.Search guideExplains how search works in the Content LibraryAPI and how to create search objects.Advanced search guidelines the fixed 30-day deletion scheduleMeta employs.Facebook profilesFacebook postsFacebook commentsInstagram accountsInstagram postsInstagram commentsID-based retrievalSearch guideAdvanced searchRate limitingData deletionAppendixSupportDisclosures and DisclaimersCitations


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\ID-based retrieval - Content Library and API.pdf


key: chroma:document
string_value:
Docume…Content Library and …Content Library A…Guid…ID-based retrie…Su questa PaginaID-based retrievalThis feature allows you to fetch a Meta Content Library node using its Meta Content Library ID. Wesupport the following nodes for ID-based retrieval:Facebook postsFacebook groupsFacebook eventsFacebook PagesFacebook commentsFacebook profilesInstagram postsInstagram accountsInstagram commentsWe also support retrieval of edges to a node. An edge is a connection between two nodes. Forexample, the Facebook post node can have comments connected to it.See Data dictionary for detailed information about the fields on each node.
Getting started with ID-based retrievalMeta Content Library IDs can be used in queries and displayed in the search results. Meta ContentLibrary IDs are unique IDs linked to an entity in MCL. These IDs cannot be used to search on Meta’stechnologies.To get sample Meta Content Library IDs users can do a search query defined here. The response ofthese queries will give a list of Meta Content Library entities with a field ID. This ID field can be usedfor ID-based retrieval by following the steps below.
R
PythonThe following table describes the parameters:ParameterParameterTypeTypeDescriptionDescriptionpathStringMeta Content Library ID.versionOptional[String]Optional version of Meta Content Library API.Get edgeBelow is the syntax for fetching content library ID-based retrieval edge:library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClient# Set specific MCL_API_VERSION, or use client$LATEST_VERSION to get the latestclient$set_default_version("MCL_API_VERSION")# Get the response of MCL IDresponse <- client$get(path="MCL_ID")# Display the responsejsonlite::fromJSON(response$text)
library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClient# Set specific MCL_API_VERSION, or use client$LATEST_VERSION to get the latestclient$set_default_version(client$LATEST_VERSION)# Get the response of the edge of MCL ID with optional params fieldsresponse <- client$get( path="<MCL_ID>/<EDGE>", params=list("fields" = FIELDS))# Display the response
R
PythonThe following table describes the parameters:ParameterParameterTypeTypeDescriptionDescriptionPATHStringMeta Content Library ID, followed by edge.PARAMSOptionalListComma-separated list of ﬁelds you want included in the result. See Datadictionary for descriptions of all available ﬁelds.Get asynchronous edgeSimilarly to how asynchronous search works, you can fetch an edge that returns multiple entries,with an asynchronous request.When you submit an asynchronous query, the API returns 


key: chroma:document
string_value:
want included in the result. See Datadictionary for descriptions of all available ﬁelds.Get asynchronous edgeSimilarly to how asynchronous search works, you can fetch an edge that returns multiple entries,with an asynchronous request.When you submit an asynchronous query, the API returns a handle ID indicating the successfulsubmission of the asynchronous query if the expected results are below the 100,000 query resultslimit, and an error message if the expected results are over the limit.If the query is successfully submitted, you can check on the status and receive either IN_PROGRESSor COMPLETE.Submit an Asynchronous query using getjsonlite::fromJSON(response$text)
library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientasync_utils <- import("metacontentlibraryapi")$MetaContentLibraryAPIAsyncUtilsclient$set_default_version(client$LATEST_VERSION)# Submit query as an async response <- client$get( path="<MCL_ID>/async_<EDGE_NAME>" , params=list("fields" = FIELDS))
R
PythonGet dataWhen the check for status shows COMPLETE, you can fetch the data. You can also write the data to afile, which will be stored in the /previous_queries/ folder in your Jupyter environment in JSONformat.
The following table describes the parameters for write_to_file method:ParameterParameterTypeTypeDescriptionDescriptionFILE_NAMEStringCustom ﬁlename to write generated data.Estimate response size for asynchronous queriesUse the estimate param to get a rough idea of how much data would be returned from an edgequery you have defined. Since the API can only return up to 100,000 results from a singleasynchronous query, it can be helpful to know in advance if your query is likely to fail because theresponse size is too large. If the estimate comes out higher than 100,000, consider modifying theparameters to reduce the response size. You can continue to modify the query parameters and getnew estimates until the results are predicted to fall below the maximum allowed.# Returns IN_PROGRESS or COMPLETEstatus_response <- async_utils$get_status(response=response)jsonlite::fromJSON(status_response$text)
data_response <- async_utils$get_data(response=response)jsonlite::fromJSON(data_response$text, flatten=TRUE)# Write data to file using below commandasync_utils$write_data_to_file(response=response, file_name=FILENAME)
R
PythonThis example is typically most useful for posts with many comments because the number of resultstend to be higher, but it can be used to estimate the size 


key: chroma:document
string_value:
<- async_utils$get_status(response=response)jsonlite::fromJSON(status_response$text)
data_response <- async_utils$get_data(response=response)jsonlite::fromJSON(data_response$text, flatten=TRUE)# Write data to file using below commandasync_utils$write_data_to_file(response=response, file_name=FILENAME)
R
PythonThis example is typically most useful for posts with many comments because the number of resultstend to be higher, but it can be used to estimate the size of data that would be returned by anyquery.library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)# Get summary of results by making sure to pass field summary and set it to Trueresponse <- client$get( path="MCL_ID/EDGE_NAME", params=list( fields="FIELDS"), estimate=TRUE)jsonlite::fromJSON(response$text, flatten=TRUE)Sample queriesFetch Facebook Page by Page ID# Sample query for Python library for ID-based retrieval of a Facebook page with optional param fieldslibrary(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)# Fetch the entity by calling the get method with optional fields parameterresponse <- client$get( path="990512972055041", params=list("fields"="about,description"))# Print the Meta Content Library entityjsonlite::fromJSON(response$text, flatten=TRUE)
R
Python
R
PythonFetch comments on a postComments can be fetched both for Facebook and Instagram posts. The following examples use aFacebook post, but the same structure applies to Instagram posts.
The example above returns 10 results per page. You can use the query_next_page() andhas_next_page() to get the next page of 10 results until all the results have been returned. Asdescribed above, the synchronous query can return up to 1,000 results. Asynchronous queryshould be used instead if there are more than 1.000 comments available.library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)# Fetch comments by calling /comments edge, with a POST Meta Content Library IDresponse <- client$get( path = "1927859627616307/comments", params=list("fields"="owner,creation_time"))# Fetch resultsjsonlite::fromJSON(response$text, flatten=TRUE)
all_comments <- list()# Check if a post has next page and if it exists fetch the next pagewhile (client$has_next_page(response)) { comments <- jsonlite::fromJSON(response$text, flatten = TRUE)$data all_comments <- dplyr::bind_rows(all_comments, comments) # Get next page response <- client$query_next_page(response)}
R
Python
R
PythonAsynchronously fetch comments on a postSubmit asynchronous query
Check status
Once STATUS is COMPLETE, fetch data# Display the responseall_comments
library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientasync_utils <- import("metacontentlibraryapi")$MetaContentLibraryAPIAsyncUtilsclient$set_default_version(client$LATEST_VERSION)# Submit query as an async response <- client$get(path="1927859627616307/async_comments")jsonlite::fromJSON(response$text, flatten=TRUE)
# Returns IN_PROGRESS or COMPLETEstatus_response <- async_utils$get_status(response=response)jsonlite::fromJSON(status_response$text, flatten=TRUE)
# Fetch data data_response <- async_utils$get_data(response=response)jsonlite::fromJSON(data_response$text, 


key: chroma:document
string_value:
comments on a postSubmit asynchronous query
Check status
Once STATUS is COMPLETE, fetch data# Display the responseall_comments
library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientasync_utils <- import("metacontentlibraryapi")$MetaContentLibraryAPIAsyncUtilsclient$set_default_version(client$LATEST_VERSION)# Submit query as an async response <- client$get(path="1927859627616307/async_comments")jsonlite::fromJSON(response$text, flatten=TRUE)
# Returns IN_PROGRESS or COMPLETEstatus_response <- async_utils$get_status(response=response)jsonlite::fromJSON(status_response$text, flatten=TRUE)
# Fetch data data_response <- async_utils$get_data(response=response)jsonlite::fromJSON(data_response$text, flatten=TRUE)
R
Python
R
Python
R
PythonContent Library and APIGet accessQuick linksContent LibraryContent Library APIOverviewChangelogGetting startedGuidesFacebook PagesFacebook groupsFacebook eventsEstimating commentslibrary(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClien<client$set_default_version(client$LATEST_VERSION)# Get summary of results by making sure to pass field summary and set it to Trueresponse <- client$get( path = "1927859627616307/comments", params=list("fields"="owner,creation_time", "summary"=TRUE))# Fetch resultsjsonlite::fromJSON(response$text, flatten=TRUE)Learn moreGetting startedData dictionary
R
PythonFacebook profilesFacebook postsFacebook commentsInstagram accountsInstagram postsInstagram commentsID-based retrievalSearch guideAdvanced searchRate limitingData deletionAppendixSupportDisclosures and DisclaimersCitations


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Instagram accounts - Content Library and API.pdf


key: chroma:document
string_value:
Docume…Content Library and …Content Library …Guid…Instagram accou…Su questa PaginaGuide to Instagram accountsdataYou can perform searches for Instagram creator, business, and certain personal accounts by callingthe Meta Content Library API client get() method method, with thesearch/instagram_accounts path.For personal accounts, only those that have account privacy set to public, and have either a verifiedbadge or 25,000* or more followers are included. This document describes the parameters andshows how to perform basic queries by using this method.*v2.0 will continue to only fetch personal accounts that have account privacy set to public witheither a verified badge or 50,000 or more followers.All of the examples in this document assume you have already created a Python or R Jupyternotebook and have created a client object. See Getting started to learn more.See Data dictionary for detailed information about the fields that are available on an Instagramaccount node.
ParametersParameterParameterTypeTypeDescriptionDescriptionQOptionalStringKeyword(s) to search Instagram accounts for. See Advanced searchguidelines for information about how multiple keyword searches withBoolean operators are handled.FIELDSOptionalListA comma-separated list of Instagram account ﬁelds you want included insearch results. See Data dictionary for descriptions of all available ﬁelds.ACCOUNT_IDSOptionalListComma-separated list of Meta Content Library Instagram account IDs toinclude in the search results. Maximum of 250 IDs.ACCOUNT_TYPESOptionalListComma-separated list of account types of the Instagram accounts to beincluded in the search results. Possible values are creator, businessand personal.Public Instagram accounts include professional accounts for businessesand creators. They also include a subset of personal accounts that haveprivacy set to public and have either a veriﬁed badge or 25,000* or morefollowers. A veriﬁed badge in this context refers to accounts conﬁrmed asauthentic and not those with a paid Meta Veriﬁed subscription.*v2.0 will continue to include a subset of personal accounts that haveprivacy set to public with either a veriﬁed badge or 50,000 or morefollowers.IS_VERIFIEDOptionalBooleanWhether the Instagram account is veriﬁed. An Instagram account with alegacy 


key: chroma:document
string_value:
those with a paid Meta Veriﬁed subscription.*v2.0 will continue to include a subset of personal accounts that haveprivacy set to public with either a veriﬁed badge or 50,000 or morefollowers.IS_VERIFIEDOptionalBooleanWhether the Instagram account is veriﬁed. An Instagram account with alegacy blue veriﬁed badge means that Instagram has conﬁrmed that it isthe authentic presence for that person or brand. Learn more.SINCEOptionalString orIntegerDate in YYYY-MM-DD (date only) or UNIX timestamp (translates to adate and time to the second) format. Instagram accounts created on orafter this date or timestamp are returned (used with UNTIL to deﬁne atime range). SINCE and UNTIL are based on UTC time zone, regardlessof the local time zone of the user who created the account.If both SINCE and UNTIL are included, the search includes thetime range deﬁned by those values.If SINCE is included and UNTIL is omitted, the search includes theSINCE time through the present time.If SINCE is omitted and UNTIL is included, the search goes fromthe beginning of Instagram time through the UNTIL time.If SINCE and UNTIL are both omitted, the search goes from thebeginning of Instagram time to the present time.If SINCE and UNTIL are the same UNIX timestamp, the searchincludes the SINCE time through the SINCE time plus one hour.If SINCE and UNTIL are the same Date (YYYY-MM-DD), thesearch includes the SINCE date through the SINCE date plus oneday.UNTILOptionalString orIntegerDate in YYYY-MM-DD (date only) or UNIX timestamp (translates to adate and time to the second) format. Instagram accounts created on orbefore this date or timestamp are returned (used with SINCE to deﬁne atime range). SINCE and UNTIL are based on UTC time zone, regardlessof the local time zone of the user who created the account.If both SINCE and UNTIL are included, the search includes thetime range deﬁned by those values.If SINCE is included and UNTIL is 


key: chroma:document
string_value:
UNTIL are based on UTC time zone, regardlessof the local time zone of the user who created the account.If both SINCE and UNTIL are included, the search includes thetime range deﬁned by those values.If SINCE is included and UNTIL is omitted, the search includes theSINCE time through the present time.If SINCE is omitted and UNTIL is included, the search goes fromthe beginning of Instagram time through the UNTIL time.If SINCE and UNTIL are both omitted, the search goes from thebeginning of Instagram time to the present time.If SINCE and UNTIL are the same UNIX timestamp, the searchincludes the SINCE time through the SINCE time plus one hour.If SINCE and UNTIL are the same Date (YYYY-MM-DD), thesearch includes the SINCE date through the SINCE date plus oneday.Sample queriesSearch for Instagram accounts by keywordTo search for Instagram accounts that contain a specific keyword use the get() method with the qparameter. See Advanced search guidelines for information about how multiple keyword searchesare handled.
R
PythonThis example would return only 10 results per page. You can use the query_next_page() andhas_next_page() to get the next page of 10 results until all the results have been returned. SeeSearch guide for other display and storage options.Request specific fieldsTo have the API return only specific fields on any Instagram accounts in the response, use theget() method with the fields parameter and a comma-separated list of fields you want included.If omitted, default fields will be returned. To more easily see columns of data, this example specifiesa DataFrame response format (the default response format is JSON).library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)response <-client$get( path = "search/instagram_accounts", params = list('q' = "cybercrime"))jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page# Fetch next pageif (client$has_next_page(response)) { response <- client$query_next_page(response) jsonlite::fromJSON(response$text, flatten=TRUE) # Display second page}
library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)response <- client$get(path = "search/instagram_accounts", params = list('q'="cybercrime", 'fields'='id,name,biography'))jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page
R
PythonSearch for 


key: chroma:document
string_value:
params = list('q' = "cybercrime"))jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page# Fetch next pageif (client$has_next_page(response)) { response <- client$query_next_page(response) jsonlite::fromJSON(response$text, flatten=TRUE) # Display second page}
library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)response <- client$get(path = "search/instagram_accounts", params = list('q'="cybercrime", 'fields'='id,name,biography'))jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page
R
PythonSearch for Instagram accounts by account IDYou can search for Instagram accounts using specific account IDs obtained from previous accountsearches.To get data on specific Instagram accounts that contain specific keywords or phrases, use get()the account_ids parameter (specifying the list of account IDs you want included). If you omit the qargument, all accounts in the list of IDs are included, not just those with a specific keyword orphrase.
For using Instagram account IDs to search for posts from specific Instagram accounts, see Guide toInstagram posts data.library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)response <- client$get( path = "search/instagram_accounts", params = list("account_ids"=list("315242517956050")))jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page
Learn moreGetting startedSearch guideData dictionaryAdvanced search guidelinesGuide to Instagram posts data
R
PythonContent Library and APIGet accessQuick linksContent LibraryContent Library APIOverviewChangelogGetting startedGuidesFacebook PagesFacebook groupsFacebook eventsFacebook profilesFacebook postsFacebook commentsInstagram accountsInstagram postsInstagram commentsID-based retrievalSearch guideAdvanced searchRate limitingData deletionAppendixSupportDisclosures and DisclaimersCitations


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Instagram comments - Content Library and API.pdf


key: chroma:document
string_value:
Docume…Content Library and …Content Library …Guid…Instagram comme…Su questa PaginaGuide to Instagram commentsdataYou can fetch comments on an Instagram post or replies to a specific Instagram comment byleveraging ID-based retrieval, using the get() method with the <MCL_ID>/comments path. Thisdocument describes the parameters and shows you how to perform basic queries by using thismethod.All of the examples in this document assume you have created a Python or R Jupyter notebook anda client object. See Getting started to learn more.See the Data dictionary for detailed information about the fields that are available on an Instagramcomment node.
ParametersParameterParameterTypeTypeDescriptionDescriptionFIELDSOptionalListComma-separated list of ﬁelds you want included in the result. See theData dictionary for descriptions of all available ﬁelds.SINCEOptionalString orIntegerDate in YYYY-MM-DD (date only) or UNIX timestamp (translates to adate and time to the second) format. Instagram comments created on orafter this date or timestamp are returned (used with UNTIL to deﬁne atime range). SINCE and UNTIL are based on UTC time zone, regardlessof the local time zone of the user who made the comment.If both SINCE and UNTIL are included, the query includes thetime range deﬁned by those values.If SINCE is included and UNTIL is omitted, the query includes theSINCE time through the present time.If SINCE is omitted and UNTIL is included, the query goes fromthe beginning of Instagram time through the UNTIL time.If SINCE and UNTIL are both omitted, the query goes from thebeginning of Instagram time to the present time.If SINCE and UNTIL are the same UNIX timestamp, the queryincludes the SINCE time through the SINCE time plus one hour.If SINCE and UNTIL are the same Date (YYYY-MM-DD), thequery includes the SINCE date through the SINCE date plus oneday.UNTILOptionalString orIntegerDate in YYYY-MM-DD (date only) or UNIX timestamp (translates to adate and time to the second) format. Instagram comments created on orafter this date or timestamp 


key: chroma:document
string_value:
same Date (YYYY-MM-DD), thequery includes the SINCE date through the SINCE date plus oneday.UNTILOptionalString orIntegerDate in YYYY-MM-DD (date only) or UNIX timestamp (translates to adate and time to the second) format. Instagram comments created on orafter this date or timestamp are returned (used with SINCE to deﬁne atime range). SINCE and UNTIL are based on UTC time zone, regardlessof the local time zone of the user who made the comment.If both SINCE and UNTIL are included, the query includes thetime range deﬁned by those values.If SINCE is included and UNTIL is omitted, the query includes theSINCE time through the present time.If SINCE is omitted and UNTIL is included, the query goes fromthe beginning of Instagram time through the UNTIL time.If SINCE and UNTIL are both omitted, the query goes from thebeginning of Instagram time to the present time.If SINCE and UNTIL are the same UNIX timestamp, the queryincludes the SINCE time through the SINCE time plus one hour.If SINCE and UNTIL are the same Date (YYYY-MM-DD), thequery includes the SINCE date through the SINCE date plus oneday.SORTOptionalEnumSorting mode in which the comments are returned (only forsynchronous endpoint). Available options:newest_to_oldest: Comments are returned in reversechronological order (newest ﬁrst).oldest_to_newest: Comments are returned in chronologicalorder (oldest ﬁrst).none: No sorting is applied to the returned data.Default value: newest_to_oldestFETCH_ALLOptionalBooleanBoolean value that allows you to change the way of fetching thecomments. Available options:True: all of the comments of the entity are returned, both nestedand unnested. Since they are going to be returned in a “ﬂattenedway,” no sorting is applied.False: only top-level replies of the entity are returned. Sortingcan be applied.Default value: FalseSample queriesFetch comments on an Instagram postFetching comments from specific Instagram posts requires that you first obtain the post ID by usingthe get() method, with the appropriate “path” and “params.” The search results will include 


key: chroma:document
string_value:
returned. Sortingcan be applied.Default value: FalseSample queriesFetch comments on an Instagram postFetching comments from specific Instagram posts requires that you first obtain the post ID by usingthe get() method, with the appropriate “path” and “params.” The search results will include the IDfield by default (you don't have to specify it in your query). See the Guide to Instagram posts datato learn about this method.The results will include top-level comments on a specific post but not the nested comments. To getthe nested comments on a specific post, refer to fetch comments of an Instagram comment, or usethe fetch_all parameter.Meta Content Library IDs can be used in comment queries and displayed in the search results. MetaContent Library IDs are unique IDs linked to an entity in MCL. These IDs cannot be used to searchon Meta’s technologies.To fetch top-level replies on a specific Instagram post, generate a post ID using theget(path=’search/instagram_posts’, ...) method. Then, queryget(path=’<post_id>/comments’) method to fetch top-level replies on this post.The following example would return 10 results per page. You can use the query_next_page() andhas_next() to get the next page of 10 results, until all the query results have been returned. Inorder to fetch all top-level replies of a post with a single call, you can follow the instructions onasynchronous fetching.
Fetch replies on an Instagram commentTo fetch top-level replies on specific Instagram comments, take a comment ID that you obtainedfrom a previous comment fetch call and pass it as a path param, with a /comment su"ix.This example returns 10 results per page. You can use the query_next_page() andhas_next_page() to get the next page of 10 results.To fetch all the top-level replies on a commentwith a single call, follow the instructions on asynchronous fetching.library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)# Fetch first 10 commentsresponse <- client$get(path="943578593983539/comments")jsonlite::fromJSON(response$text, flatten=TRUE)# Fetch next pageif (client$has_next_page(response)) { response <- client$query_next_page(response) jsonlite::fromJSON(response$text, 


key: chroma:document
string_value:
next page of 10 results.To fetch all the top-level replies on a commentwith a single call, follow the instructions on asynchronous fetching.library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)# Fetch first 10 commentsresponse <- client$get(path="943578593983539/comments")jsonlite::fromJSON(response$text, flatten=TRUE)# Fetch next pageif (client$has_next_page(response)) { response <- client$query_next_page(response) jsonlite::fromJSON(response$text, flatten=TRUE) # Display second page}
library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)
R
Python
R
PythonRequest specific fieldsTo have the API return specific fields from the Instagram comments, create a comment fetch call,passing the fields parameter as a comma-separated list of fields you want included. If omitted,default fields will be returned.
Request comments with “since” and/or “until” filtersTo have the API return comments within a specific time and date range, create a comment fetchcall and pass the since and until parameters you want included.# Fetch first 10 subcommentsresponse <- client$get(path="995467055185836/comments")jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page
library (reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)# Fetch first 10 comments with specific fieldsresponse <- client$get( path="943578593983539/comments", params=list("fields"="text,creation_time"))jsonlite::fromJSON(response$text, flatten=TRUE)
library(reticulate)
R
Python
R
PythonRequest comments with a “fetch_all” filterTo have the API return all comments, not just the top-level replies, you can use the fetch_allboolean param, by setting it to true. Since the data are returned flattened, no sorting is applied.
Request comments with a “sort” filterTo have the API return comments in a specific order, you can use the sort param.client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)# Will fetch comments that were created after 2023-12-10# but before 1702771200 (epoch timestamp of "2023-12-17 12:00:00 AM)# Both formats (date and UNIX timestamp) are allowedresponse <- client$get( path="278197145061596/comments", params=list("since"="2023-12-10", "until"="1702771200"))jsonlite::fromJSON(response$text, flatten=TRUE)
library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)# Fetch ALL comments (paginated)response <- client$get( path="995467055185836/comments", params=list("fetch_all"=TRUE))jsonlite::fromJSON(response$text, flatten=TRUE)
R
PythonContent Library and APIGet accessQuick linksContent LibraryContent Library APIOverviewChangelogGetting startedGuidesFacebook PagesFacebook groupslibrary(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)# Fetch first 10 comments, from oldest to newest (chronological order)response <- client$get( path="943578593983539/comments", params=list("sort"="oldest_to_newest"))jsonlite::fromJSON(response$text, flatten=TRUE)Learn moreGetting startedData dictionaryGuide to Instagram posts dataGuide to ID-based retrievalRate limiting for comments fetching
R
PythonFacebook eventsFacebook profilesFacebook postsFacebook commentsInstagram accountsInstagram postsInstagram commentsID-based retrievalSearch guideAdvanced searchRate limitingData deletionAppendixSupportDisclosures and DisclaimersCitations


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Instagram posts - Content Library and API.pdf


key: chroma:document
string_value:
Docume…Content Library and A…Content Library A…Guid…Instagram pos…Su questa PaginaGuide to Instagram posts dataYou can perform Instagram posts searches by calling the Meta Content Library API client get()method, syntax and parameters It also shows how to perform basic queries using the method withthe search/instagram_posts path. This document describes the parameters and shows you howto perform basic queries by using this method.Public Instagram accounts include professional accounts for businesses and creators. They alsoinclude a subset of personal accounts that have privacy set to public and have either a verifiedbadge or 25,000* or more followers. (Version 2.0 requires 50,000 or more followers for the accountto be included.) A verified badge in this context refers to accounts confirmed as authentic and notthose with a paid Meta Verified subscription.
ParametersParameterParameterTypeTypeDescriptionDescriptionQOptionalStringKeyword(s) to search for. See Advanced search guidelines forinformation about how multiple keyword searches with Boolean operatorsare handled.FIELDSOptionalListComma-separated list of Instagram post ﬁelds to be included in searchresults. See Data dictionary for descriptions of all available ﬁelds.POST_IDSOptionalListComma-separated list of Meta Content Library post IDs to include insearch results. Limits the query to posts in the list. Maximum of 250 IDs.ACCOUNT_IDSOptionalListComma-separated list of Meta Content Library account IDs as strings.Limits the query to posts from accounts in the list. Maximum of 250 IDs.ACCOUNT_TYPESOptionalListComma-separated list of Instagram account types. Possible values arecreator, business, and personal.Public Instagram accounts include professional accounts for businessesand creators. They also include a subset of personal accounts that haveprivacy set to public and have either a veriﬁed badge or 25,000 or morefollowers. A veriﬁed badge in this context refers to accounts conﬁrmed asauthentic and not those with a paid Meta Veriﬁed subscription.*v2.0 will continue to include a subset of personal accounts that haveprivacy set to public and have either a veriﬁed badge or 50,000 or morefollowers.LANGOptionalStringThe content languages of the Instagram posts to include, speciﬁed 


key: chroma:document
string_value:
those with a paid Meta Veriﬁed subscription.*v2.0 will continue to include a subset of personal accounts that haveprivacy set to public and have either a veriﬁed badge or 50,000 or morefollowers.LANGOptionalStringThe content languages of the Instagram posts to include, speciﬁed asISO 639-1 language codes in 2-letter lowercase format. Multiplelanguages are comma-separated either in a single string(lang="ru,es") or in an array (lang=["ru" "es"]).IS_BRANDED_CONTENTOptionalBooleanIndicates whether the Instagram posts returned can include brandedcontent or not. Learn more.MEDIA_TYPESOptionalListComma-separated list of media types to be included in the searchresults. Media types include albums, photos, and videos (includingreels).VIEWS_BUCKET_STARTOptionalIntegerInstagram posts with view counts larger than or equal to this numbermatch the search criteria. Range is from 0 to the maximum of more than100 million.Views are the number of times the post or reel was on screen, notincluding times it appeared on the post owner’s screen. See Datadictionary for more details.VIEWS_BUCIntegerInstagram posts with view counts smaller than or equal to this numberKET_ENDOptionalmatch the search criteria. Range is from 0 to the maximum of more than100 million.Views are the number of times the post or reel was on screen, notincluding times it appeared on the post owner’s screen. See Datadictionary for more details.SINCEOptionalString orIntegerDate in YYYY-MM-DD (date only) or UNIX timestamp (translates to adate and time to the second) format. Instagram posts created on or afterthis date or timestamp are returned (used with UNTIL to deﬁne a timerange). SINCE and UNTIL are based on UTC time zone, regardless ofthe local time zone of the user who made the post.If both SINCE and UNTIL are included, the search includes thetime range deﬁned by those values.If SINCE is included and UNTIL is omitted, the search includes theSINCE time through the present time.If SINCE is omitted and UNTIL is included, the search goes fromthe beginning of Instagram time through the UNTIL time.If 


key: chroma:document
string_value:
range deﬁned by those values.If SINCE is included and UNTIL is omitted, the search includes theSINCE time through the present time.If SINCE is omitted and UNTIL is included, the search goes fromthe beginning of Instagram time through the UNTIL time.If SINCE and UNTIL are both omitted, the search goes from thebeginning of Instagram time to the present time.If SINCE and UNTIL are the same UNIX timestamp, the searchincludes the SINCE time through the SINCE time plus one hour.If SINCE and UNTIL are the same Date (YYYY-MM-DD), thesearch includes the SINCE date through the SINCE date plus oneday.UNTILOptionalString orIntegerDate in YYYY-MM-DD (date only) or UNIX timestamp (translates to adate and time to the second) format. Instagram posts created on orbefore this date or timestamp are returned (used with SINCE to deﬁne atime range). SINCE and UNTIL are based on UTC time zone, regardlessof the local time zone of the user who made the post.If both SINCE and UNTIL are included, the search includes thetime range deﬁned by those values.If SINCE is included and UNTIL is omitted, the search includes theSINCE time through the present time.If SINCE is omitted and UNTIL is included, the search goes fromthe beginning of Instagram time through the UNTIL time.If SINCE and UNTIL are both omitted, the search goes from thebeginning of Instagram time to the present time.If SINCE and UNTIL are the same UNIX timestamp, the searchincludes the SINCE time through the SINCE time plus one hour.If SINCE and UNTIL are the same Date (YYYY-MM-DD), thesearch includes the SINCE date through the SINCE date plus oneday.SORTOptionalEnumSorting mode in which the posts are returned (only for synchronousendpoint). Available options:newest_to_oldest: Posts are returned in reverse chronologicalorder (newest ﬁrst).oldest_to_newest: Posts are returned in chronological order(oldest ﬁrst).most_to_least_views: Posts are returned based on the number ofviews (most views ﬁrst).Default value: newest_to_oldestSample 


key: chroma:document
string_value:
mode in which the posts are returned (only for synchronousendpoint). Available options:newest_to_oldest: Posts are returned in reverse chronologicalorder (newest ﬁrst).oldest_to_newest: Posts are returned in chronological order(oldest ﬁrst).most_to_least_views: Posts are returned based on the number ofviews (most views ﬁrst).Default value: newest_to_oldestSample QueriesSearch for Instagram posts by keywordTo search for all public posts from public Instagram accounts that contain a specific keyword, useget() method with the q parameter. See Advanced search guidelines for information about howmultiple keyword searches are handled.library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)
R
PythonThis example would return only 10 results per page. You can use the query_next_page() andhas_next_page() to get the next page of 10 results until all the results have been returned. SeeSearch guide for other display and storage options.The API only returns posts from Instagram accounts that can be returned on their respective paths(search/instagram_accounts).Request specific fieldsTo have the API return only specific fields on any Instagram posts in the response, use the get()method with the fields parameter and a comma-separated list of fields you want included. Ifomitted, default fields will be returned.# Search for posts with specific keywordresponse <- client$get( path = "search/instagram_posts", params = list('q' = "cybercrime"))# No results are displayed until you provide display instructions: jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page# Fetch next pageif (client$has_next_page(response)) { response <- client$query_next_page(response) jsonlite::fromJSON(response$text, flatten=TRUE) # Display second page}
# Create an endpoint including a list of fields:response <- client$get( path = "search/instagram_posts", params = list('q' = "cybercrime", 'fields'='id,text,creation_time'))jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page
R
PythonSearch for posts by post IDTo search for posts with specific post IDs (that you obtained from a previous post search), useget() method with the post_ids parameter specifying a list of post IDs to include in the results.
Search for posts from specific Instagram accountsSearching for posts from specific Instagram accounts requires that you first obtain account IDs byusing get() method with search/instagram_accounts 


key: chroma:document
string_value:
method with the post_ids parameter specifying a list of post IDs to include in the results.
Search for posts from specific Instagram accountsSearching for posts from specific Instagram accounts requires that you first obtain account IDs byusing get() method with search/instagram_accounts path. The search results will include theID field by default (you don't have to specify it in your query). See Guide to Instagram accounts datato learn about this method.The IDs that are displayed are Meta Content Library IDs that protect user privacy and will not matchthe IDs of the content on Meta platforms. These Meta Content Library IDs are the ones you use inyour subsequent post searches.To search for posts from specific accounts, use account_ids parameter, and with or without the qparameter. q is not required but can be added to further filter posts. It does not matter when theposts were created. If you omit the q parameter, all public posts from the specified accounts arereturned.# Search for posts with specific post IDsresponse <- client$get( path = "search/instagram_posts", params = list('post_ids'=list('7069734086407812')))jsonlite::fromJSON(response$text, flatten=TRUE) # Display first page
# Search for posts from specific account IDsresponse <- client$get( path = "search/instagram_posts",
R
Python
R
PythonContent Library and API params = list('account_ids'='315242517956050'))jsonlite::fromJSON(response$text, flatten=TRUE) # Display first pageIncluding multimedia in search results: Third-party cleanroomenvironments onlyIf you are using the Meta Content Library API in an approved third-party cleanroom environment (asopposed to Meta's Researcher Platform), and if that environment supports it, you have the option ofincluding multimedia (photo, video) in your search results. Multimedia in posts from Instagrambusiness, creator, and personal accounts are all eligible.Include the keyword multimedia in your query (fields parameter).For any media contained in a post, the response will include the type of media (photo, video),an ID, and either the media itself or a link to where the cleanroom environment has stored themedia. Whether the media can 


key: chroma:document
string_value:
query (fields parameter).For any media contained in a post, the response will include the type of media (photo, video),an ID, and either the media itself or a link to where the cleanroom environment has stored themedia. Whether the media can be displayed directly in the response or not depends on thethird-party cleanroom interface.The number of calls allowed that include multimedia is controlled by a multimedia querybudget specific to the third-party cleanroom environment. See Rate limiting and querybudgeting for multimedia for more information.Learn moreGetting startedSearch guideData dictionaryAdvanced search guidelinesGuide to Instagram accounts dataRate limiting and query budgeting for multimediaContent Library and APIGet accessQuick linksContent LibraryContent Library APIOverviewChangelogGetting startedGuidesFacebook PagesFacebook groupsFacebook eventsFacebook profilesFacebook postsFacebook commentsInstagram accountsInstagram postsInstagram commentsID-based retrievalSearch guideAdvanced searchRate limitingData deletionAppendixSupportDisclosures and DisclaimersCitations


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Overview - Content Library and API - Documentazione - Meta for Developers.pdf


key: chroma:document
string_value:
DocumentiContent Library and APIContent Library APIOverviewSu questa PaginaOverviewMeta Content Library API provides access to real-time data from public discussions on Facebookand Instagram, equipping researchers to study existing topics of interest as well as understandevolving or emerging topics on our platforms.Content Library API can be accessed either through Meta's Researcher Platform or through anapproved third-party cleanroom environment. The following third-party cleanroom environmentsare approved as of Content Library API version 4.0:Inter-university Consortium for Political and Social Research (ICPSR) at the University ofMichiganUser documentation for third-party cleanroom interfaces is outside the scope of the Meta ContentLibrary API documentation and can instead be provided by the third-party's system administrator.Downloading data from the API is not permittedDownloading of Facebook and Instagram data from the Content Library API by any means isnot permitted, regardless of whether you are accessing the API through ResearcherPlatform or a third-party cleanroom such as ICPSR.
Content Library API clientWhen you access the API through Meta's Researcher Platform, you use our Content Library APIClient which runs on Jupyter and with which you can create Jupyter notebooks. Once you havecreated a notebook, you can import our Python3 or R Content Library API client module whichallows you to perform queries using the API. See Getting started.VPNYou access the API through our  that describes the data names displayed in the Meta ContentLibrary (the Name column) if applicable, and the corresponding API fields returned in ContentLibrary API search responses (the API field column).Meta Content LibraryMeta Content Library is a web-based tool that allows researchers to explore and understand dataacross Facebook and Instagram by oﬀering a comprehensive, visual, searchable collection ofpublicly accessible content—the same content that is also accessible through the Content LibraryAPI. The web-based user interface allows you to explore data, test out search parameters, andassess whether the resulting data is appropriate for your planned research. 


key: chroma:document
string_value:
visual, searchable collection ofpublicly accessible content—the same content that is also accessible through the Content LibraryAPI. The web-based user interface allows you to explore data, test out search parameters, andassess whether the resulting data is appropriate for your planned research. No knowledge of queryor programming languages is needed.Code examplesCode examples in this documentation use a tabbed code block with tabs for R and Python. Clickthe tab for the language of your choice to display  the R tab to display R code here
Learn more
R
PythonContent Library and APIGet accessQuick linksContent LibraryContent Library APIOverviewChangelogGetting startedGuidesAppendixSupportDisclosures and DisclaimersCitationsFrequently asked questionsSearch quality approachResearcher PlatformMeta Content Library


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Rate limiting - Content Library and API.pdf


key: chroma:document
string_value:
DocumentiContent Library and APIContent Library APIGuidesRate limitingSu questa PaginaRate limiting and querybudgetingMeta Content Library and API both have limits at the individual researcher level that:Put a cap on the number of queries allowed per user per minute (a separate limit for eachtool). This is called a rate limit.Put a cap on the number of retrieved data records (posts, for example) per user per seven-day rolling window. This limit, called a query budget, is shared between the two tools peruser. In other words, a single researcher has a total query budget between the two tools,regardless if they are using just Content Library, just Content Library API, or both.Maintaining a rate-limiting and query-budgeting policy ensures that the tools run e!iciently andprovide all users with consistent data access, unhindered by reduced performance. It also providesa measure of protection against system flooding.
What are the limits?Rate limits for Content Library60 queries over any one-minute intervalRate limits for Content Library APISynchronous search queries: 60 queries over any one-minute intervalAsynchronous search queries: 1 query per minuteSee Search guide for information about the diﬀerence between synchronous and asynchronoussearches.Combined query budget per researcherFor Content Library and API combined, you can retrieve a maximum of 500,000 data records perseven-day rolling window. You have a maximum query budget of 500,000 comment data recordsper seven-day rolling window. The rolling window is one week previous to the current timestamp (tothe second). If you are blocked by hitting the query budget, you should not need to wait longbefore you try again.If you are using the Content Library API in a third-party cleanroom environment, and if thatenvironment supports including multimedia in posts, there is an additional query budget of 1000queries with multimedia per rolling week.How to request a limit increaseIf you have questions or concerns about the impact of your limits on your research, contact 


key: chroma:document
string_value:
if thatenvironment supports including multimedia in posts, there is an additional query budget of 1000queries with multimedia per rolling week.How to request a limit increaseIf you have questions or concerns about the impact of your limits on your research, contact usthrough Direct Support.Limit reached messagingContent LibraryContent Library warns you when you get close to the maximum number of data records retrievedper seven-day rolling window (query budget) with a banner at the top of the page. This is anexample of what the banner looks like:
When you reach your query budget, you will see a diﬀerent banner at the top of the page that lookslike this:The banner has a "Learn more" link, which will open the following message with additional detailsabout rate limits:
Content Library APIIf you reach the maximum number of queries per minute (rate limit) in Content Library API, you willsee a log message indicating that the system will retry your last request after a wait time.This is an example of what the message looks like:
If you reach the maximum number of data records retrieved per seven-day rolling window (querybudget), you will see an error message indicating that you have reached your allotted query budgetand recommending that you retry your latest query later. In this case, the system does not handleretrying the request for you.This is an example of what the message looks like:
Tips for staying below the limitsIn general, searching for common words and requesting to fetch all the results can exhaust yourquery budget. Consider narrowing your searches for more targeted results.Get your current usageUse query_budget endpoint to check your maximum number of data records retrieved per rolling7-day period (query budget) and how much of that budget you have already used
This is a sample of the output: [{'current_usage': 101000, 'preallocated_rows_for_running_queries': 0, 'total_usage': 101000, 'max_usage_limit': 500000, 'timestamp': 'Tuesday, July 18, 2023 


key: chroma:document
string_value:
maximum number of data records retrieved per rolling7-day period (query budget) and how much of that budget you have already used
This is a sample of the output: [{'current_usage': 101000, 'preallocated_rows_for_running_queries': 0, 'total_usage': 101000, 'max_usage_limit': 500000, 'timestamp': 'Tuesday, July 18, 2023 06:03:05 PM PDT', 'comments': { 'current_usage': 100000, 'preallocated_rows_for_running_queries': 0, 'total_usage': 100000, 'max_usage_limit': 500000}}]current_usage is the number of results already returned by completed queries in the current7-day rolling time window as of the current timestamp.preallocated_rows_for_running_queries is the number of results (rows) allocated forasynchronous queries that are in progress.library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)response <- client$get(path="query_budget")jsonlite::fromJSON(response$text, flatten = TRUE)
R
Pythontotal_usage is the sum of current_usage and preallocated_rows_for_running_queries.max_usage_limit is the maximum number of queries allowed in a 7-day rolling window.timestamp marks the point in time at which these statistics were collected.Current usage for commentsIf you are using the Meta Content Library API to also fetch comments, comment-specific querybudget is also available as comments JSON object with the following fields:comments.current_usage is the number of comment results already returned by completedqueries in the current 7-day rolling time window as of the current timestamp.comments.preallocated_rows_for_running_queries is the number of comment results (rows)allocated for asynchronous queries that are in progress.comments.total_usage is the sum of current_usage andpreallocated_rows_for_running_queries.comments.max_usage_limit is the maximum number of queries allowed in a 7-day rollingwindow.Current usage for multimediaIf you are using the Meta Content Library API in an approved third-party cleanroom environment (asopposed to Meta's Researcher Platform), and if that environment supports including multimedia inposts, multimedia-specific query budget usage is also available as a multimedia JSON object withthe following fields:multimedia.total_usage is the number of calls with multimedia in the current 7-day rolling timewindow as of the current timestamp.multimedia.max_usage_limit is the maximum number of calls with media allowed in a 7-dayrolling window.The query budget specific to queries containing multimedia is 1000 queries per 7-day rollingwindow.Estimate response size for asynchronous queriessummary param 


key: chroma:document
string_value:
7-day rolling timewindow as of the current timestamp.multimedia.max_usage_limit is the maximum number of calls with media allowed in a 7-dayrolling window.The query budget specific to queries containing multimedia is 1000 queries per 7-day rollingwindow.Estimate response size for asynchronous queriessummary param in search that gives you a rough idea of how much data would be returned from asearch you plan to run asynchronously. See Estimating response size and Asynchrounous search inthe Search Guide for more information on these topics.It can also be used for the same purpose for edges of entities that return multiple data (forexample, ‘comments’). See asynchronous edge fetching in the ID-based retrieval for moreinformation around this topic.Points to keep in mind:The API can only return up to 100,000 results from a single asynchronous query, so it can behelpful to know in advance if your query is likely to fail because the response size is too large.The query budget of 500,000 results in a rolling seven-day window can be used up quicklyon just a few queries with high predicted results.If the estimate comes out higher than 100,000, you might consider modifying the parameters toreduce the response size. You can continue to modify the search parameters and get newestimates until the search results are predicted to fall below the maximum allowed or close to theresponse size you prefer.This is typically most useful for post searches or comments fetching because the number of resultstend to be higher, but it can be used to estimate the number of results that would be returned byany query.library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)# Request an estimate:response <- client$get( path="search/facebook_posts", params=list("q"="dogs", "summary" = TRUE, "limit"= 0))# Display the estimate jsonlite::fromJSON(response$text, flatten = TRUE)Estimating comments
R
PythonContent Library and APIGet accessQuick linksContent LibraryContent Library APIOverviewChangelogGetting startedGuidesThe following examples are for Facebook comments, but the same structure applies to Instagramcomments.library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)# Request 


key: chroma:document
string_value:
path="search/facebook_posts", params=list("q"="dogs", "summary" = TRUE, "limit"= 0))# Display the estimate jsonlite::fromJSON(response$text, flatten = TRUE)Estimating comments
R
PythonContent Library and APIGet accessQuick linksContent LibraryContent Library APIOverviewChangelogGetting startedGuidesThe following examples are for Facebook comments, but the same structure applies to Instagramcomments.library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)# Request an estimate:response <- client$get( path="1927859627616307/comments", params=list("fields" = "text", "summary" = TRUE, "limit"= 0))# Display the estimate jsonlite::fromJSON(response$text, flatten = TRUE)Learn moreGetting startedData dictionarySearch guideID-based retrieval
R
PythonFacebook PagesFacebook groupsFacebook eventsFacebook profilesFacebook postsFacebook commentsInstagram accountsInstagram postsInstagram commentsID-based retrievalSearch guideAdvanced searchRate limitingData deletionAppendixSupportDisclosures and DisclaimersCitations


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Search guide - Content Library and API.pdf


key: chroma:document
string_value:
DocumentiContent Library and APIContent Library APIGuidesSearch guideSu questa PaginaSearch guide
How search worksQueries in Meta Content Library and API are powered by a version of Facebook’s search engineinfrastructure, which relies on a combination of indexing and ranking to return relevant entities.The retrieval function combines matched and ranked IDs from a query using the same distributedmemory caching layer which serves live platform content. This ensures that results represent themost current state of content on the platform and meet privacy-preserving visibility criteria (seeFrequently asked questions for details).As content is created or modified on Meta platforms, associated entities are registered to a searchindex built from individual words extracted from text fields as tokens. Tokenization generallyisolates words separated by spaces or punctuation ( ?@$%^*()+=~[{}];:"<>|. ), with some URLnormalization and locale-specific adjustments for non-English languages. Tokenization is exact, inthat it does not introduce additional word variants ("cats" will not be tokenized to "cat"). Directmentions of users or other platform entities (via @) are not tokenized and not searchable. Directmentions are scrubbed from returned text fields if the user does not meet eligibility criteria forproducer.At query time, relevant content is identified by exact matching between tokens and individualsearch terms. Candidate matches are then subject to additional filtering via Boolean query logic(see Advanced search guidelines) and other selected filters. Matching is performed independentlyby word in a query, meaning that searching by phrase is not supported (queries “All for one” and“One for all” are equivalent).Search endpoints in the APIThe Content Library API uses search endpoints to extract a subset of data from an extremely largeonline database. Each search endpoint specifies the search path to be used and sets the values ofthe parameters that determine which data will be returned.The parameters accepted by each search are described in the search guides.The following sections describe how to use search endpoints to 


key: chroma:document
string_value:
specifies the search path to be used and sets the values ofthe parameters that determine which data will be returned.The parameters accepted by each search are described in the search guides.The following sections describe how to use search endpoints to achieve various objectives,providing query examples in both R and Python.Basic synchronous search with paginated resultsResponse formatsAltering search parametersAsynchronous searchEstimating response sizeBasic synchronous search with paginated resultsUnless you specify otherwise, a search endpoint is synchronous in nature, meaning that you submitthe query and wait for the results, and you cannot submit another until the first one finishes.Synchronous search results display 10 results at a time (a "page") and you request the next pagesone by one. You can use the limit parameter to update the number of entries returned per page,with a maximum of 500 entries. This type of search is most useful when the data matching thesearch criteria is expected to be small or when you just want to sample some results to see if theyare appropriate for your research and don't necessarily need to see everything. This can be a stepin the process of fine-tuning your search criteria.Synchronous searches can return a maximum of 1,000 results. When you need a larger setof results, use asynchronous searches.library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)response <- client$get( path = "search/facebook_posts", params = list( "q" = "mountains", "since" = "1072915200",
R
PythonAsynchronous searchAsynchronous searching capability is available for when you want to work with all of the datareturned from a search, up to the search results limit that applies to every individual asynchronoussearch. Asynchronous searches can take some time (minutes to days) to complete because theyreturn all of the data requested, not just one page at a time. However, because the search happensin the background, you don't have to wait for the results before submitting another search or doingother work. 


key: chroma:document
string_value:
to days) to complete because theyreturn all of the data requested, not just one page at a time. However, because the search happensin the background, you don't have to wait for the results before submitting another search or doingother work. Once the search results are ready, you can fetch them.The search result limit for each asynchronous search is 100,000 results. See Estimating responsesize.Researcher Platform also has an asynchronous search feature, but that is strictly for staticdatabase use and does not work the same way. With Content Library API, you can only usethe async_search endpoints described here.When you submit an asynchronous search, the API returns a handle id indicating the successfulsubmission of the asynchronous query if the expected results are below the 100,000 search resultslimit, and an error message if the expected results are over the limit.If the search is successfully submitted, you can check on the status and receive eitherIN_PROGRESS or COMPLETE.Use the get_status() method to get the status and the get_data` method to get the data: "until" = "1721058315", ))all_posts <- list()while (client$has_next(response)) { text <- jsonlite::fromJSON(response$text, flatten = TRUE)$data all_posts <- dplyr::bind_rows(all_posts, text) response <- client$`next`(response)}all_postsWhen status shows COMPLETE, you can fetch the data. You can also write the data to a file, whichwill be stored in the /previous_searches/ folder in your Jupyter environment in JSON format.
Use the get_all_async_queries() method to get a list of all your previously executedasynchronous searches.
Estimating response sizelibrary(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientasync_utils <- import("metacontentlibraryapi")$MetaContentLibraryAPIAsyncUtilsresponse <- client$get( path="async_search/facebook_posts", params=list("q"="mountains", "since"=1072915200, "until"=1720820310))jsonlite::fromJSON(response$text, flatten = TRUE)# Check the status of an asynchronous querystatus_response <- async_utils$get_status(response=response)
# Retrieve the results of an asynchronous query get_data_response = async_utils.get_data(response=response)# Write data to fileasync_utils$write_data_to_file(response=response)
response = async_utils$get_all_async_queries()jsonlite::fromJSON(response$text, flatten=TRUE)
R
Python
R
Python
R
PythonContent Library and APIGet accessUse the estimate param to get a rough idea of how much data would be returned from a searchyou have defined. Since the API 


key: chroma:document
string_value:
an asynchronous query get_data_response = async_utils.get_data(response=response)# Write data to fileasync_utils$write_data_to_file(response=response)
response = async_utils$get_all_async_queries()jsonlite::fromJSON(response$text, flatten=TRUE)
R
Python
R
Python
R
PythonContent Library and APIGet accessUse the estimate param to get a rough idea of how much data would be returned from a searchyou have defined. Since the API can only return up to 100,000 results from a single asynchronoussearch, it can be helpful to know in advance if your search is likely to fail because the response sizeis too large. If the estimate comes out higher than 100,000, consider modifying the parameters toreduce the response size. You can continue to modify the search parameters and get newestimates until the search results are predicted to fall below the maximum allowed.This is typically most useful for post searches because the number of results tend to be higher, butit can be used to estimate the size of data that would be returned by any search.library(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClientclient$set_default_version(client$LATEST_VERSION)# Request an estimate response <- client$get( path="search/facebook_posts" , params=list("q" = "mountains"), estimate=True)# Display the estimatejsonlite::fromJSON(response$text, flatten=TRUE)Learn moreRate limiting and query budgetingAdvanced search guidelinesSearch quality approach
R
PythonQuick linksContent LibraryContent Library APIOverviewChangelogGetting startedGuidesFacebook PagesFacebook groupsFacebook eventsFacebook profilesFacebook postsFacebook commentsInstagram accountsInstagram postsInstagram commentsID-based retrievalSearch guideAdvanced searchRate limitingData deletionAppendixSupportDisclosures and DisclaimersCitations


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Search quality - Content Library and API.pdf


key: chroma:document
string_value:
DocumentiContent Library and APIAppendixSearch qualitySu questa PaginaSearch quality approachThis document describes Meta's approach to search quality for Meta Content Library and API.
DefinitionsEntities Objects in the social graph returned by Meta Content Library and Meta ContentLibrary API which generate or contain content and are associated with a unique ID in internalsystems. Includes Facebook Pages, groups, events and posts, as well as Instagram accountsand posts.Content Text and other data associated with entities, returned as fields in Meta ContentLibrary and API.Eligible / Visible Entities or content permitted to be returned in Meta Content Library and APIwhich meet privacy commitments and legal requirements. See Frequently asked questionsfor details.Endpoint Meta Content Library or API endpoint corresponding to a specific type of entity.Search overviewQueries in Meta Content Library and API are powered by a version of Facebook’s search engineinfrastructure, which relies on a combination of indexing and ranking to return relevant entities.The retrieval function combines matched and ranked IDs from a query using the same distributedmemory caching layer which serves live platform content. This ensures that results represent themost current state of content on the platform and meet privacy-preserving visibility criteria (seeFrequently asked questions for details).As content is created or modified on Meta platforms, associated entities are registered to a searchindex built from individual words extracted from text fields as tokens. Tokenization generallyisolates words separated by spaces or punctuation ( ?@$%^*()+=~[{}];:"<>|. ), with some URLnormalization and locale-specific adjustments for non-English languages. Tokenization is exact, inthat it does not introduce additional word variants ("cats" will not be tokenized to "cat"). Directmentions of users or other platform entities (via @) are not tokenized and are scrubbed fromreturned text fields, and are thus not searchable.At query time, relevant content is identified by exact matching between tokens and individualsearch terms. Candidate matches are then subject to additional filtering via Boolean 


key: chroma:document
string_value:
(via @) are not tokenized and are scrubbed fromreturned text fields, and are thus not searchable.At query time, relevant content is identified by exact matching between tokens and individualsearch terms. Candidate matches are then subject to additional filtering via Boolean query logic(see Advanced search guidelines) and other selected filters. Matching is performed independentlyby word in a query, meaning that searching by phrase is not supported (queries “All for one” and“One for all” are equivalent).Initial testingWe expect our methodology to measure search quality to evolve over time. Here we outline a set ofinitial tests of search quality in the Meta Content Library and API. The systems which underliesearch are complex and the data models as well as privacy rules which determine content visibilityevolve over time, meaning that quality regressions can occur. Furthermore, as we develop theproduct, we welcome feedback about bugs or unexpected behavior from the user community. SeeAppendix on this page for details on reporting issues.MethodsInitial test queriesWe generated test search results for each endpoint (Facebook Pages, groups, events, and posts,and Instagram business and creator accounts, and posts) using a sample of 130 terms chosen tospan a breadth of set size (for example, obscure words such as stopthesteal and common wordssuch as spray), polarization (for example, neutral words such as sugar and socially charged wordssuch as transphobic), as well as most queried keywords by researchers in Meta platforms. Theseinitial test queries consisted of single terms all in English without non-Latin characters or anysymbols (for example ‘, #, $ or @). Additional query parameters for each endpoint are listed in Testsearch scope for endpoints. Test queries resulting in > 100,000 results were excluded from furtheranalysis.Validation dataLists of expected entities for test queries were generated from regex-based full-text searches on aSQL-like database backend. Tables in this database are built from periodic snapshots 


key: chroma:document
string_value:
scope for endpoints. Test queries resulting in > 100,000 results were excluded from furtheranalysis.Validation dataLists of expected entities for test queries were generated from regex-based full-text searches on aSQL-like database backend. Tables in this database are built from periodic snapshots of loggedplatform content and thus are known to diﬀer slightly from what is available in Meta Content Libraryand API at search time due to time lags and incomplete visibility filters. This dataset thusconstitutes a secondary validation channel rather than source of truth and regressions in qualitymetrics may be a composite of both true indexing errors and/or measurement noise. See Caveatsand known limitations.RecallIn principle, entities should be returned when (a) there is an exact match with search term(s), (b)the content is eligible to be retrieved, and (c) the total corpus of matching results does not exceedthe technical query limit of 100,000 results.We measured recall as follows:(entities returned) ∩ (entities expected) / (entities expected)The following table shows the average of daily recall values across test queries from November 8th,2023 to November 15th, 2023.EndpointEndpoint20th percentile recall20th percentile recallMedianMedianFacebook Page96%98%Facebook group93%96%Facebook event90%93%Facebook post85%92%Instagram account98%99%Instagram post90%94%Rank recallResults which represent the top N results ordered by creation time or views should also becomplete. For Meta Content Library, which returns a truncated list of ranked results, we generateda ranked version of recall which is calculated as follows:(top N entities) ∩ (top N expected entities) / (top N expected entities)The following table shows the average of daily recall values for the top 1000 results ranked bycreation time and view across test queries from November 8th, 2023 to November 15th, 2023.EndpointEndpoint20th percentile ranked20th percentile rankedrecallrecallMedian ranked recallMedian ranked recallFacebook post (ranked by creationtime)86%92%Instagram post (ranked by creationtime)64%75%Facebook post (ranked by view)52%63%Instagram post (ranked by view)62%73%PrecisionOnly results which exactly match search terms should be returned, excluding, for instance, partialindex matches 


key: chroma:document
string_value:
15th, 2023.EndpointEndpoint20th percentile ranked20th percentile rankedrecallrecallMedian ranked recallMedian ranked recallFacebook post (ranked by creationtime)86%92%Instagram post (ranked by creationtime)64%75%Facebook post (ranked by view)52%63%Instagram post (ranked by view)62%73%PrecisionOnly results which exactly match search terms should be returned, excluding, for instance, partialindex matches (broom → broomstick) or fuzzy matches (broom → mop). Precision was measuredas:(returned entities matching query exactly) / (all returned entities)The following table shows the range in average daily precision values across test queries byendpoint from November 8th, 2023 to November 15th, 2023.EndpointEndpoint20th percentile precision20th percentile precisionMedian Median precisionprecisionFacebook Page99%99%Facebook group99%99%Facebook event99%99%Facebook post99%99%Instagram account97%98%Instagram post98%99%RepresentativenessIn cases where incomplete results are returned (recall < 100%), results may be useful provided theyare not overly biased (that is, they are consistent with a random uniform sample of the completeresults). We measured representativeness using a series of statistical tests for bias at the individualquery level.Query-level biasFor each test query we compared whether a summary statistic (mean, for example) calculatedusing the results from the Meta Content Library API reasonably approximated results obtained fromthe validation dataset (which has high recall). Across several data dimensions includingengagement, exposure, and creator demographics, we performed a series of t-tests comparingmeans derived from the Meta Content Library API to means derived from the validation dataset. Wethen calculated the percent of queries which lacked statistically significant evidence of bias (p >0.05). Finally, we calculated the mean of metrics across all dimensions.We performed two versions of this test using methods which diﬀered in their level of sensitivity tosmall diﬀerences between Meta Content Library API results and validation data. In the first version,we used a Welch’s T-test, which is appropriate for detecting major distributional diﬀerencesbetween datasets that might aﬀect inference about population-level traits. It is less sensitive tosmall diﬀerences between datasets and we expect most appropriate for research use casesinvolving trends and summaries.The following table 


key: chroma:document
string_value:
Welch’s T-test, which is appropriate for detecting major distributional diﬀerencesbetween datasets that might aﬀect inference about population-level traits. It is less sensitive tosmall diﬀerences between datasets and we expect most appropriate for research use casesinvolving trends and summaries.The following table shows average daily percent of test queries generating non-biased results usinga Welch’s T-test across endpoints from November 8th, 2023 to November 15th, 2023.EndpointEndpointRepresentativeness - Welch t-testRepresentativeness - Welch t-testFacebook Page96%Facebook group86%Facebook event78%Facebook post86%Instagram account97%Instagram post96%In the second version of the query-level bias test we compared Meta Content Library API andvalidation datasets using a pairwise t-test (incorporating covariance between samples). This test ismore powered to detect diﬀerences between datasets and appropriate for assessing whether smallsubsets of entities may be missing or over-represented. For instance, this metric could highlightsignificant bias even with 98% recall and a negligible diﬀerence in means, due to any imbalance inthe remaining data. Given known issues with the validation dataset failing to exclude someineligible entities based on visibility criteria, we expect these measures to be more conservativeand likely underestimates of representativeness.The following table shows percent of test queries generating non-biased results using a paired t-test across endpoints from November 8th, 2023 to November 15th, 2023.EndpointEndpointRepresentativeness - paired t-testRepresentativeness - paired t-testFacebook Page80%Facebook group54%Facebook event41%Facebook post53%Instagram account74%Instagram post64%Search quality measurement expansionWhile in initial testing we focused on English to measure the search quality, in our expansion, weextended the exact same methodology to other languages and advanced search (search with logicoperators AND, OR and NOT).Other languagesWe used the same methodology to measure the search quality of the queries in Arabic, German andHindi. These languages were selected based on the language features that the team believe aremost likely to impact search quality. The features that the team considered are diacritics (such asaccents), non-Roman characters, and right-to-left. We also wanted to cover 


key: chroma:document
string_value:
German andHindi. These languages were selected based on the language features that the team believe aremost likely to impact search quality. The features that the team considered are diacritics (such asaccents), non-Roman characters, and right-to-left. We also wanted to cover at least one non-EnglishEuropean language.Based on the analysis, we learned:The overall search quality of all the new languages is about the same level as English singlekeywords.The precision is over 95% for all endpoints in new languages.Since the search quality is reasonable for these languages, we expect to see very similarresults for most other languages too.The following table shows all metric values across test queries by language and endpoint fromNovember 8th, 2023 to November 15th, 2023. Representativeness is an average across alldimensions that are mentioned in the representativeness section.LanguageLanguageEndpointEndpointRecallRecallPrecisionPrecisionRepresentativenessRepresentativeness- paired t-- paired t-testtestRepresentativenessRepresentativeness- Welch t-- Welch t-testtestArabicFacebookPage96%99%93%99%ArabicFacebookgroup92%99%41%61%ArabicFacebookevent82%99%80%97%ArabicFacebook post9199%70%94%ArabicInstagramaccount93%99%87%91%ArabicInstagram post80%99%85%97%GermanFacebookPage97%99%96%99%GermanFacebookgroup95%99%76%95%GermanFacebookevent95%99%67%94%GermanFacebook post8899%73%96%GermanInstagramaccount99%99%95%99%GermanInstagram post91%98%88%99%HindiFacebookPage96%99%93%99%HindiFacebookgroup96%99%39%61%HindiFacebookevent87%99%77%96%HindiFacebook post9299%71%95%HindiInstagramaccount97%99%94%100%HindiInstagram post73%99%80%96%We are also aware of a few limitations that our system has for other languages. The limitations areas follows:Meta Content Library API does not read any keywords with “ß” in German or semi-space (half-space) in Arabic.In Arabic, a word can be written with and without diacritics. Content Library API can only findthe exact match for each form. Thus, if a researcher wants to find all posts related to thatkeyword, they have to search all forms of those keywords to get full results. For example, if aresearcher need to find all post related to term ﻣﻬﺎﺟﺮthey need to search ﺮِﻬﺎﺟُﻣor ﻬﺎﺟﺮُﻣorﺮِﻣﻬﺎﺟor ﻣﻬﺎﺟﺮto get all the results.Advanced searchAdvanced search includes searching keyword combinations with logic operators AND, OR and NOT.The following table shows all metric values across advanced search test queries by endpoint fromNovember 8th, 2023 to November 15th, 2023. Representativeness is an average across alldimensions that are mentioned in the representativeness section.Entity typeEntity typeRecallRecallRepresentativeness -Representativeness -Paired t-testPaired t-testRepresentativeness -Representativeness -Welch 


key: chroma:document
string_value:
table shows all metric values across advanced search test queries by endpoint fromNovember 8th, 2023 to November 15th, 2023. Representativeness is an average across alldimensions that are mentioned in the representativeness section.Entity typeEntity typeRecallRecallRepresentativeness -Representativeness -Paired t-testPaired t-testRepresentativeness -Representativeness -Welch t-testWelch t-testFacebook Page95%77%94%Facebook group93%71%93%Facebook event90%59%83%Facebook post83%70%93%Instagram account98%79%99%Instagram post78%83%99%Caveats and known limitationsWhy would results be inconsistent from one time point to another?Inconsistencies between identical searches made at separate time points can be caused by entityvisibility changes over time, which may be due to content being created, deleted or modified.There may also occasionally be short lags between when content is created or modified and whenit is indexed.Why am I not seeing an entity I can find on the platform?Apart from coverage gaps or delivery issues mentioned below (see Factors aﬀecting recall), it ispossible the content is not eligible to be visible in the Meta Content Library and API. The visibilityrules for content are complex and constantly evolving with new policies and regulations, making itpossible that some content could be theoretically viewed by an individual on platform but notexposed via the Meta Content Library and API. For instance, visibility of some content isgeographically restricted to users from the country where the content was produced. Also, directmentions (via @) are not searchable, meaning that a result will not be returned if a matching term isonly found in a direct mention.Why would a search result not match my query?Apart from tokenization issues listed below (see Factors aﬀecting precision), it is possible that thecontent actually does contain the search terms, but they are found in diﬀerent text fields or farapart within the text. Search matches query terms independently and scans all text fields visiblefrom the UI. It also does not support phrase searching. Thus a search for “Walter Payton” couldmatch a page listing basketball players “Walter 


key: chroma:document
string_value:
text fields or farapart within the text. Search matches query terms independently and scans all text fields visiblefrom the UI. It also does not support phrase searching. Thus a search for “Walter Payton” couldmatch a page listing basketball players “Walter Williams” and “Gary Payton” without reference to a“Walter Payton” anywhere in the text.Factors aﬀecting recallFalse positives in the validation data (denominator of recall equation). In our tests, we havefound that the validation dataset may occasionally include non-eligible entities for a givensearch term due to lags between real-time content visibility and privacy status and theirrepresentation in the databases used for validation (see validation data presented earlier).This means that true recall estimates are likely underestimated.Edge cases or gaps in coverage (true negatives). Indexing data at the scale which Metaoperates means that occasionally some content may be imperfectly indexed or missed.Furthermore, internal data models may change, such as when new features for creating andsharing content on platform are added. Thus there may be a lag between when content isavailable on platform and when it is indexed. As we improve and scale the product, weappreciate any reported cases of missing data from search (see Appendix on this page fordetails).Asynchronous delivery issues. The Meta Content Library and API’s entity loading mechanismsare complex and memory-intensive at scale. Occasionally, the loading process for an entitycan become too memory-intensive and fail, resulting in the exclusion of that entity from thereturned results.Factors aﬀecting precisionString-matching used to validate precision is unable to approximate tokenization rules.Precision is checked using basic regular expression searches with strict definitions of wordboundaries. However tokenization may be more flexible, especially with diﬀerent languagelocalizations, text involving unicode, URLs, and other patterns. The existence of these edgecases means that precision will be under-estimated to some extent.The search term was tokenized in a context-specific way. Occasionally words with unicodesymbols, 


key: chroma:document
string_value:
be more flexible, especially with diﬀerent languagelocalizations, text involving unicode, URLs, and other patterns. The existence of these edgecases means that precision will be under-estimated to some extent.The search term was tokenized in a context-specific way. Occasionally words with unicodesymbols, non-English characters, accent marks or URLs may be tokenized in a form thatdiﬀers from its presented value. For instance, the content with the French wordcongrégation may be returned for a query on the English word congregation, despite theliteral diﬀerence between the acute accented e and its English counterpart.The index has matched text not returned by the Meta Content Library or API. In some cases,content with complex, nested data models such as reshares may contain text fields that aretokenized and indexed but not returned by the Meta Content Library or API. We appreciateuser feedback identifying such cases (see Appendix on this page for details).For the Facebook posts endpoint, there is a known issue involving post reshare text beingindexed but not returned in the Meta Content Library API. These posts may either have novisible text (since they are reshares), or the text returned may not contain any mention of thequery term. We are exploring this issue further.Factors aﬀecting representativenessRepresentativeness issues generally stem from the same factors aﬀecting recall. In thesecases there is a population of entities which are either (a) not returned by the Meta ContentLibrary API due to gaps in indexing / delivery, or (b) incorrectly included in the validationdataset adding noise to the calculation. If these groups of entities have similar propertiesalong the data dimensions tested they can influence the representativeness metricsThe per-query bias test uses a probabilistic statistical test which uses an alpha = 0.05 cutoﬀby convention. Thus for each test term there is a 5% probability that the test will be a falsepositive (Type I error rate).
AppendixTest search 


key: chroma:document
string_value:
representativeness metricsThe per-query bias test uses a probabilistic statistical test which uses an alpha = 0.05 cutoﬀby convention. Thus for each test term there is a 5% probability that the test will be a falsepositive (Type I error rate).
AppendixTest search scope for endpointsThe following table summarizes the test search scope for all endpointsEndpointEndpointTest search scopeTest search scopeFacebook PageEligible Facebook pages created within the year prior to the query dateContent Library and APIGet accessQuick linksContent LibraryContent Library APIAppendixData dictionaryField expansionSearch qualityGet API CodeShare producer listFacebook groupAll eligible Facebook groupsFacebook eventEligible Facebook events created within the year prior to the query dateFacebook postEligible posts created within two days prior to the given query dateInstagram accountEligible Instagram Creator and Business accounts created within a year prior to thequery dateInstagram postEligible posts created within a day prior to the given query dateLearn moreFacebook's search engine infrastructureDistributed memory caching layerAdvanced search guidelinesFrequently asked questionsSupportDisclosures and DisclaimersCitations


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Share producer list - Content Library and API.pdf


key: chroma:document
string_value:
DocumentiContent Library and APIAppendixShare producer listSu questa PaginaShare producer listProducer lists can be shared between Meta Content Library and Content Library API. Researcherscan see their producer list in the Producer lists tab in Content Library. Those you share a producerlist with must have the same account type as you to access the list.To share a producer list:Select Producers lists from the left navigation bar.Click View in the card for the producer list you want to share.
Click the Share button in the producer list. The dropdown menu displays.Select Copy link to get a URL link to the list or select Create API list ID to get an API Producerlist ID.If you select Copy link, the URL is copied to your clipboard and can be pasted into abrowser window to display the producer list.If you select Create API list ID, you will see a dialog with the ID which you can use toaccess the producer list in the API with the path received through the user interface.
The syntax of the snapshot of the producer list that can be accessed on the API is:/lists/producers/<api_producer_list_id>RequestNameNameTypeTypeDescriptionDescriptionapi_producer_list_idStringUnique API ID created via UI fora snapshot of the producer listResponse structureNameNameTypeTypeDescriptionDescriptionidStringMCL ID of the shared producerlistnameStringName of the shared producer listplatformStringPlatform of the shared producerlist (Facebook or Instagram)producers.data[].idStringMCL ID of the producer in theproducer listproducers.data[].typeString`Type of the producer like groups,pages, events, proﬁles, etc.producers.data[].nameString`Name of the producerSample querieslibrary(reticulate)client <- import("metacontentlibraryapi")$MetaContentLibraryAPIClient
R
PythonContent Library and APIGet accessQuick linksContent LibraryContent Library APIAppendixData dictionaryField expansionSearch qualityGet API CodeShare producer listSupportDisclosures and DisclaimersCitations# set default version to latestclient$set_default_version(client$LATEST_VERSION)# Get the response by using the API ID received by UIresponse <- client$get(path="lists/producers/2024-07-22-xlyr")# Display the json responseresponse$textLearn moreContent Library API documentationSearch guideGetting started


key: file_path
string_value:
C:\Users\Emile\Documents\Opsci\Code\git\ENOPrompt\data\chatbot_40_12\KB_4012\META\Support - Content Library and API.pdf


key: chroma:document
string_value:
DocumentiContent Library and APISupportSu questa PaginaSupportFor product support and troubleshooting, you can raise a ticket to the Meta Support Community totriage and help with your questions.See Get help to learn how to access and use this tool.But first:For answers to many common questions, see Frequently asked questions.For questions related to the application for access and eligibility requirements, please refer tothe Meta Content Library and API application page at the Inter-university Consortium forPolitical and Social Research (ICPSR)Content Library and APIGet accessQuick linksContent LibraryContent Library APIAppendixSupportFAQGet HelpDisclosures and DisclaimersCitations


