This packages provides a "fake API" for accessing Ao3 works and bookmarks by webscraping the website. This package does not work with anything requiring authentication into Ao3.


You can search for works given a certain keyword, or search through bookmarks of a person. As of now, only the first page of search/bookmarks is scraped.


void main() async {
  var favWork = await Ao3Client.searchWorks("Yesterday Upon the Stair");
  print(favWork[0].fandom) // Prints Sherlock (TV) 
  print(favWork[0].link) // Prints

  // You can also get link to the work from the workID
  var link = Ao3Client.getURLfromWorkID(favWork[0].workID);
  print(link) // Prints

  // Returns a list of bookmarks by the given user. Optionally, you may choose from which of the bookmark pages (if more than one)
  // you'd like to start scraping from. The scraper will always scrape from the starting point to the end; there's no way to scrape 
  // only one page.
  var bookmarkedWorks = await Ao3Client.getBookmarksFromUsername("John") 


Replicates an API (as Ao3 does not have a public one) by scraping for relevant information.