# Gramps Web API

> open-source genealogy database server for the Web

**Wikidata**: [Q127169072](https://www.wikidata.org/wiki/Q127169072)  
**Source**: https://4ort.xyz/entity/gramps-web-api

## Summary
Gramps Web API is an open-source genealogy database server designed for web use. It functions as a backend for managing genealogical data, allowing users to access and interact with their family history information over the internet. This software is classified as free software, enabling users to freely run, study, change, and distribute it.

## Key Facts
- Gramps Web API's inception date is August 13, 2020.
- It is developed by the Gramps Project.
- The software is primarily written in Python, a general-purpose programming language.
- Gramps Web API operates using the Representational State Transfer (REST) protocol.
- It supports Gramps XML as both a readable and writable file format.
- The latest stable version provided is 0.4.0, released on July 27, 2022.
- Gramps Web API is distributed under a free software license (Wikidata Q27017232).
- It depends on various software components including Flask, SQLAlchemy, and Pillow.

## FAQs
### Q: What is Gramps Web API?
A: Gramps Web API is an open-source genealogy database server for the Web. It provides a backend for managing and accessing genealogical data online, allowing users to interact with their family history information via web applications.

### Q: What programming language is Gramps Web API written in?
A: Gramps Web API is primarily written in Python. Python is a general-purpose programming language known for its versatility and widespread use in web development.

### Q: What software does Gramps Web API depend on?
A: Gramps Web API depends on several software components, including Flask, SQLAlchemy, Pillow, ffmpeg-python, pdf2image, flask-caching, flask-compress, flask-cors, flask-jwt-extended, and flask-limiter. It specifically utilizes SQLAlchemy for database interaction and pythontesseract for OCR functionalities.

### Q: When was Gramps Web API first developed?
A: The inception date for Gramps Web API is August 13, 2020, marking the beginning of its development.

### Q: What type of license does Gramps Web API use?
A: Gramps Web API is distributed under a free software license, which allows users to freely run, study, change, and distribute the software and its modified versions. This license is identified by the Wikidata Q-code Q27017232.

## Why It Matters
Gramps Web API is significant because it extends the capabilities of traditional genealogy software to the web, providing an open-source solution for managing and sharing family history data online. By acting as a backend server, it enables the development of web-based applications that can interact with genealogical databases, making family research more accessible and collaborative. Its classification as free software means it is openly available, fostering community contributions, transparency, and adaptability. This approach allows users to control their data and customize the software to their specific needs, promoting a more democratic and flexible ecosystem for genealogy enthusiasts and researchers. The use of standard protocols like REST and support for Gramps XML ensures interoperability and data portability, which are crucial for long-term preservation and sharing of genealogical information.

## Notable For
- Being an open-source genealogy database server specifically designed for web access.
- Its implementation primarily in Python, leveraging a widely used programming language for web services.
- Supporting Gramps XML as both a readable and writable file format, ensuring compatibility with Gramps desktop software.
- Operating under a free software license, promoting community development and user freedom.

## Body

### Overview and Purpose
Gramps Web API is an open-source genealogy database server. It is designed to provide a web-based backend for managing and accessing genealogical data. The software functions as a server application, enabling web-based interactions with a genealogy database. It is an instance of server software, genealogy software, and a database application.

### Development and History
Gramps Web API was developed by the Gramps Project. Its inception date is recorded as August 13, 2020. The software is named after Gramps Web.

#### Versions
Gramps Web API has seen several stable releases:
- **0.1**: Released on July 3, 2021
- **0.1.1**: Released on July 20, 2021
- **0.2**: Released on October 24, 2021
- **0.2.1**: Released on October 24, 2021
- **0.2.2**: Released on December 7, 2021
- **0.2.3**: Released on December 19, 2021
- **0.3.0**: Released on March 27, 2022
- **0.3.1**: Released on April 14, 2022
- **0.3.2**: Released on July 1, 2022
- **0.4.0**: Released on July 27, 2022

### Technical Architecture
Gramps Web API is built using various technologies and depends on several software components.

#### Programming Language
The primary programming language used for Gramps Web API is Python, a general-purpose programming language.

#### Dependencies and Requirements
Gramps Web API runs on or requires the following software:
- **SQLAlchemy**: A free software SQL toolkit and object-relational mapper.
- **pythontesseract**: A Python wrapper for Google's Tesseract-OCR.
- **Flask**: A micro web framework for Python.
- **Pillow**: A Python Imaging Library fork.
- **ffmpeg-python**: A Python wrapper for FFmpeg.
- **pdf2image**: A Python wrapper for poppler-utils.
- **flask-caching**: Caching support for Flask applications.
- **flask-compress**: Compresses responses from Flask applications.
- **flask-cors**: A Flask extension for handling Cross Origin Resource Sharing (CORS).
- **flask-jwt-extended**: Adds JSON Web Token (JWT) support to Flask.
- **flask-limiter**: A Flask extension to limit requests.

#### Protocol
The API utilizes the Representational State Transfer (REST) protocol for communication.

#### File Formats
Gramps Web API supports Gramps XML as both a readable and writable file format.

### Licensing and Availability
Gramps Web API is classified as free software.

#### License
The software is distributed under a license identified by the Wikidata Q-code Q27017232.

#### Copyright Status
Gramps Web API is copyrighted.

#### Source Code and Documentation
The source code repository is available at `https://github.com/gramps-project/gramps-web-api`.
A user manual is available in English at `https://gramps-project.github.io/gramps-web-api/`.
The official website is `https://www.grampsweb.org/`.

## References

1. [Source](https://github.com/gramps-project/gramps-web-api/blob/c6dbfd4cc78309bb23ea1a0dbb0ed397f84f900e/LICENSE)
2. [Release 0.1. 2021](https://github.com/gramps-project/gramps-web-api/releases/tag/v0.1)
3. [Release 0.1.1. 2021](https://github.com/gramps-project/gramps-web-api/releases/tag/v0.1.1)
4. [Release 0.2. 2021](https://github.com/gramps-project/gramps-web-api/releases/tag/v0.2)
5. [Release 0.2.1. 2021](https://github.com/gramps-project/gramps-web-api/releases/tag/v0.2.1)
6. [Release 0.2.2. 2021](https://github.com/gramps-project/gramps-web-api/releases/tag/v0.2.2)
7. [Release 0.2.3. 2021](https://github.com/gramps-project/gramps-web-api/releases/tag/v0.2.3)
8. [Release 0.3.0. 2022](https://github.com/gramps-project/gramps-web-api/releases/tag/v0.3.0)
9. [Release 0.3.1. 2022](https://github.com/gramps-project/gramps-web-api/releases/tag/v0.3.1)
10. [Release 0.3.2. 2022](https://github.com/gramps-project/gramps-web-api/releases/tag/v0.3.2)
11. [Release 0.4.0. 2022](https://github.com/gramps-project/gramps-web-api/releases/tag/v0.4.0)
12. [Release 0.4.1. 2022](https://github.com/gramps-project/gramps-web-api/releases/tag/v0.4.1)
13. [Release 0.4.2. 2022](https://github.com/gramps-project/gramps-web-api/releases/tag/v0.4.2)
14. [Release 0.4.3. 2022](https://github.com/gramps-project/gramps-web-api/releases/tag/v0.4.3)
15. [Release 0.4.4. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v0.4.4)
16. [Release 0.5.0. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v0.5.0)
17. [Release 0.5.1. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v0.5.1)
18. [Release 0.6.0. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v0.6.0)
19. [Release 0.6.1. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v0.6.1)
20. [Release 0.7.0. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v0.7.0)
21. [Release 1.0.0. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.0.0)
22. [Release 1.1.0. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.1.0)
23. [Release 1.1.1. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.1.1)
24. [Release 1.1.2. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.1.2)
25. [Release 1.1.3. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.1.3)
26. [Release 1.1.4. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.1.4)
27. [Release 1.1.5. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.1.5)
28. [Release 1.1.6. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.1.6)
29. [Release 1.1.7. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.1.7)
30. [Release 1.1.8. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.1.8)
31. [Release 1.1.9. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.1.9)
32. [Release 1.1.10. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.1.10)
33. [Release 1.1.11. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.1.11)
34. [Release 1.2.0. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.2.0)
35. [Release 1.2.1. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.2.1)
36. [Release 1.3.0. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.3.0)
37. [Release 1.3.1. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.3.1)
38. [Release 1.3.2. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.3.2)
39. [Release 1.4.0. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.4.0)
40. [Release 1.4.1. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.4.1)
41. [Release 1.4.2. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.4.2)
42. [Release 1.5.0. 2023](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.5.0)
43. [Release 1.5.1. 2024](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.5.1)
44. [Release 1.6.0. 2024](https://github.com/gramps-project/gramps-web-api/releases/tag/v1.6.0)
45. [Release 2.0.0. 2024](https://github.com/gramps-project/gramps-web-api/releases/tag/v2.0.0)
46. [Release 2.1.0. 2024](https://github.com/gramps-project/gramps-web-api/releases/tag/v2.1.0)
47. [Release 2.2.0. 2024](https://github.com/gramps-project/gramps-web-api/releases/tag/v2.2.0)
48. [Release 2.2.1. 2024](https://github.com/gramps-project/gramps-web-api/releases/tag/v2.2.1)
49. [Release 2.3.0. 2024](https://github.com/gramps-project/gramps-web-api/releases/tag/v2.3.0)
50. [Release 2.3.1. 2024](https://github.com/gramps-project/gramps-web-api/releases/tag/v2.3.1)