Skip to content

The Openverse API allows programmatic access to search for CC-licensed and public domain digital media.

License

Notifications You must be signed in to change notification settings

AbhiYHub/openverse-api

 
 

Repository files navigation

Project Board | Community Site | #openverse @ Slack | Handbook | Figma Mockups | Figma Design Library

Openverse API

Purpose

This repository is primarily concerned with back end infrastructure like datastores, servers, and APIs. The pipeline that feeds data into this system can be found in the Openverse Catalog repository. A front end web application that interfaces with the API can be found at the Openverse frontend repository.

Getting started

Our quickstart guide and other documentation can be found in our developer docs (or within the repo at ./api/docs/guides/quickstart.md). Our API documentation can also be found at https://api.openverse.engineering.

System architecture

System architecture

Basic flow of data

Search data is ingested from upstream sources provided by the data pipeline. As of the time of writing, this includes data from Common Crawl and multiple 3rd party APIs. Once the data has been scraped and cleaned, it is transferred to the upstream database, indicating that it is ready for production use.

Every week, the latest version of the data is automatically bulk copied ("ingested") from the upstream database to the production database by the Ingestion Server. Once the data has been downloaded and indexed inside of the database, the data is indexed in Elasticsearch, at which point the new data can be served up from the Openverse API servers.

Description of subprojects

  • api/: a Django Rest Framework API server For a full description of its capabilities, please see the browsable documentation.
  • ingestion_server/: a service for downloading and indexing search data once it has been prepared by the Openverse Catalog

Contributing

Pull requests are welcome! Feel free to join us on Slack and discuss the project with the engineers and community members on #openverse.

You are welcome to take any open issue in the tracker labeled help wanted or good first issue; there's no need to ask for permission in advance. Other issues are open for contribution as well, but may be less accessible or well-defined in comparison to those that are explicitly labeled.

See the CONTRIBUTING file for details.

Acknowledgments

Openverse, previously known as CC Search, was conceived and built at Creative Commons. We thank them for their commitment to open source and openly licensed content, with particular thanks to previous team members @ryanmerkley, @janetpkr, @lizadaly, @sebworks, @pa-w, @kgodey, @annatuma, @mathemancer, @aldenstpage, @brenoferreira, and @sclachar, along with their community of volunteers.

About

The Openverse API allows programmatic access to search for CC-licensed and public domain digital media.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 97.5%
  • Shell 1.7%
  • Other 0.8%