Developer
API Documentation
Drevo exposes a full GraphQL API for querying genealogy data. Use it to build mobile apps, custom visualizations, or integrate with other platforms.
GraphQL 4.x
Live
REST — Coming Soon
POST
/graphql/drevo
Content-Type: application/json
Send a JSON body with query and optional variables.
Anonymous access is enabled for read operations.
Queries
person(id)
Fetch a single person by their Drupal node ID.
Request
{
person(id: "16") {
id
name
birthYear
deathYear
birthPlace
biography
gender
photo
parents { id name }
children { id name birthYear }
spouses { id name }
}
}
Response
{
"data": {
"person": {
"id": "16",
"name": "Queen Victoria",
"birthYear": 1819,
"deathYear": 1901,
"gender": "female",
"children": [
{ "id": "17", "name": "Princess Victoria", "birthYear": 1840 },
...
]
}
}
}
persons(filter, limit, offset)
List persons with optional filtering and pagination.
Request
{
persons(
filter: { name: { contains: "Victoria" } }
limit: 10
offset: 0
) {
total
items {
id
name
birthYear
gender
}
}
}
Response
{
"data": {
"persons": {
"total": 3,
"items": [
{ "id":"16", "name":"Queen Victoria", "birthYear":1819 },
...
]
}
}
}
Schema
schema { query: Query } type Query { person(id: ID!): Person persons(filter: PersonFilter, limit: Int = 20, offset: Int = 0): PersonConnection } type Person { id: ID! name: String! birthYear: Int deathYear: Int birthPlace: String biography: String photo: String gender: String # "male" | "female" parents: [Person] children: [Person] spouses: [Person] siblings: [Person] } type PersonConnection { total: Int! items: [Person!] } input PersonFilter { id: IDFilter name: StringFilter birthYear: IntFilter } input StringFilter { contains: String; eq: String } input IntFilter { eq: Int; gt: Int; lt: Int }
Try it live
The GraphQL endpoint is live and open for anonymous reads. You can use any GraphQL client (GraphQL Playground, Insomnia, Postman, curl).
curl -X POST https://drevo.artlogic.studio/graphql/drevo \
-H "Content-Type: application/json" \
-d '{"query":"{ persons(limit:5) { total items { id name birthYear } } }"}'
-H "Content-Type: application/json" \
-d '{"query":"{ persons(limit:5) { total items { id name birthYear } } }"}'
API Roadmap
✅ Live
GraphQL Queries
Read persons, relations, photos
🔜 Q3 2026
GraphQL Mutations
Create/update persons and relations
🔜 Q3 2026
REST/JSON:API
Standard Drupal REST endpoints
🔜 Q4 2026
Webhooks
Event push for new persons/relations
🔜 Q4 2026
GEDCOM Import API
Upload GEDCOM files via API
🔜 2027
OAuth 2.0
Token auth for write operations