Skip to content

Releases: thobgg/api4webtrees

api4webtrees 1.18.0 – API level 30, the interface is complete

Choose a tag to compare

@thobgg thobgg released this 06 Oct 15:37

API level 30: the interface is complete. With this release every route needed for everyday genealogy work is there:
individuals, families, events, names, sources and citations, media, places and location records, godparents, merging with
undo, and now research tasks, ordering, change history and favourites. From here on releases will be rare. Changes
and fixes are collected and published together; pull requests are merged without an immediate release, so clients built
on this API are not served a new version every few days. Everything is additive; older clients keep working.

  • Bookmarks → webtrees favourites. GET/POST Bookmarks now use webtrees' own favorite table, so the bookmarks appear
    in the browser under “My page › My favourites” and survive any client. data are the user's, treeFavorites the
    tree's (managers set them with forTree: true), each person with a note. Bookmarks from the old user setting are
    taken over once, automatically.
  • Research tasks. GET Tasks lists webtrees' _TODO facts of the tree (text, date, user, note; ?open=1 only the
    ones due); POST Task adds or changes one (date defaults to today, user to the signed-in one); deleting with
    DeleteFact means done. Individual and Family answer with tasks. Nothing proprietary: _TODO is what the
    webtrees module “Research tasks” writes and shows.
  • Ordering. POST Reorder sorts children, partnerships, names or media – like the “Re-order” pages in webtrees,
    only the order of the GEDCOM lines changes.
  • Change history. GET Changes lists who created, changed or deleted which record and when (webtrees' change table,
    pending changes included), ?xref= for one record; Individual and Family answer with lastChange (CHAN).
  • Tests: StufeDreissig (favourites with migration, tasks, ordering, history); the documentation is generated again.

v1.17.2

Choose a tag to compare

@thobgg thobgg released this 06 Oct 13:46

Merge preview: contained facts. No API change; API level stays 29.

A fact that is contained in a fact of the other individual – same first line, every further line present there too, but the other version has more lines (birth with date only next to birth with date and place) – is now reported as same and not suggested for keeping; the more complete version stays, whichever individual it belongs to. Before, both births would have been kept.

v1.17.1

Choose a tag to compare

@thobgg thobgg released this 06 Oct 10:41

1.17.1 – 2026-10-06

Shorter “App” page. No API change.

  • Only the app for the visitor's device is open; every other app is one folded line below (before: wtWin and wtAnd
    were always open, which made the page long on every device). wtWin now comes first in the list, since most people
    open the page at a PC.

v1.17.0

Choose a tag to compare

@thobgg thobgg released this 06 Oct 10:19

1.17.0 – 2026-10-06

Logos on the “App” page, readable code. No API change; API level stays 29.

  • The “App” and “Connect” pages show an app's logo before its name (new optional field icon in src/Apps.php, file
    under resources/img; the tests check that the file exists). The four apps of the module author share one logo; a
    third-party app adds its own with its pull request. Under the author's apps a short note says why they come first:
    app and interface are developed together. The order of the apps is unchanged.
  • The code was reworked for readability, with no change in behaviour: named constants instead of bare numbers,
    helpers instead of repeated blocks (visibility check, fact lookup with rights, pending changes, GEDCOM sub-record
    replacement), English identifiers throughout, the longest actions split into named steps, misplaced comments fixed.
    The API level history now lives in docs/API.md and this file only.

api4webtrees 1.15.0

Choose a tag to compare

@thobgg thobgg released this 05 Oct 13:24

API levels 27 and 28: houses and farms as places, pending facts. Everything is additive; older clients keep working.

  • Level 27 – the whole GEDCOM-L _LOC record. Houses and farms are location records of their own with a type and a
    superior place (1 TYPE Hof, 1 _LOC @L1@), as GEDCOM-L and local heritage books with farm lists use them.
    GET Place now gives the _LOC record's type, its parents (the hierarchy pointers with their type and date) and
    its events (1 EVEN at the place – fire, rebuilding, sale … with type, date, notes and sources). children are
    merged from webtrees' place table and the _LOC hierarchy, each with location and type. A place that exists only
    as a _LOC in the hierarchy (a farm without recorded residents) is listed by Places?list=1 and answered by Place
    with 0 events instead of not-found. POST Place takes type and parent; with parent a place without events can
    be created. Renaming a place takes its farms along.
  • Level 28 – pending facts. Facts carry pending: true while a change waits for approval (only users who see
    pending changes get true). sex is everywhere what the facts show the user, also while a change of sex is pending.
  • Tests: test_hof, the test tree has two farms; the documentation is generated again.

v1.14.0

Choose a tag to compare

@thobgg thobgg released this 05 Oct 10:08

API levels 25 and 26, both from Andreas Scharf for his app webtrees mobile. Everything is additive; older clients keep working.

  • Level 25 – POST MyAccount. The signed-in user changes their own display name, as under “My account” in the
    browser: body {realName}, answer {ok, realName}. User name, email and password stay with the browser. Names
    longer than 64 characters (the column's limit) are refused with real-name-too-long; line breaks and control
    characters become spaces.
  • Level 26 – Info.loginForm. The settings of webtrees' sign-in page: welcomeMessage,
    isSelfRegistrationAllowed and registrationTerms (null when the site shows no terms), in the language of the
    request, so apps can show the same welcome text and offer registration only when the site allows it. The two texts are
    HTML written by the site administrator – show them as HTML only after sanitising.
  • Tests: test_mein_konto, test_anmeldeseite_in_info; the documentation is generated again, with a sample that has
    the terms switched on, so registrationTerms is described as text or null.

v1.13.1

Choose a tag to compare

@thobgg thobgg released this 04 Oct 07:52

API level 24, unchanged. iPhone and iPad get an app: webtrees mobile by Andreas Scharf (App Store, connect scheme
webtreesmobile://), the first app from another author in src/Apps.php. On iPhone and iPad the “App” page now
shows it with the App Store badge and one-tap connecting instead of the browser note; managers can untick it in the
settings like any other app.

api4webtrees 1.13.0

Choose a tag to compare

@thobgg thobgg released this 03 Oct 11:03

API levels 21–24: places, media objects, start person. Everything is additive; older clients keep working.

  • Level 21 – reading places. GET Places?list=1: every place at visible events with counts (events, individuals,
    families), coordinates (from the GEDCOM-L _LOC record, else webtrees' geographic data, else MAP at an event, with
    coordSource), the _LOC identifier, GOV identifier and short name. GET Place?name=: the individuals and families
    with their events there, places below, eventCounts (births, marriages, deaths, other) and the _LOC with GOV
    identifier, coordinates, postal code, region, country, short name, notes, sources and media. A place finds its _LOC
    by the pointer at the event, the binding of the place-register module, the GOV identifier or a unique leaf name.
    Privacy as everywhere: only visible events count; restricted records take the exact (slower) path.
  • Level 22 – writing places. POST Place {name, gov?, lat?, lng?, note?, media?, postalCode?, region?, country?, shortName?, mapData?} writes into the _LOC and creates it if missing (_POST/POST, _STAE, _CTRY,
    2 ABBR under the name – existing spellings stay). With an ambiguous leaf name the events get 3 _LOC @L…@.
    mapData: true also writes webtrees' geographic data (site administrators only).
  • Level 23 – renaming and merging places. POST PlaceRename {from, to, preview?}: every event at from gets to,
    places below move along. If to already has records it is a merge: the two _LOC become one (gaps filled, notes,
    sources and media appended, differing GOV identifier or coordinates reported). Locked or confidential events stay and
    are counted. POST MediaObject {title?, type?} changes title and type of a media object; media now carry
    type/format, at a _LOC also file size and image dimensions. POST Media {media} links an existing media
    object (edit rights suffice). NOTE facts name noteXref when they point to a shared note.
  • Level 24 – start person. Route Info names per tree startXref – the individual webtrees starts with for this
    user (own default individual, “this is me”, the tree's default individual, else the first) – and
    treeDefaultXref. POST StartPerson {xref, forTree?} sets the user's own default individual (empty removes it) or,
    for managers, the family tree's.
  • With SQLite (nas4webtrees, the family tree on this PC) webtrees can keep one place in two spellings that differ only
    in case (“Celle”, “celle”); places count both, renaming takes both along.
  • Tests: places (reading, writing, renaming, merging, privacy), media objects, start person; performance check with
    10,000 and 50,000 individuals (docs/leistung.md).

api4webtrees 1.12.0

Choose a tag to compare

@thobgg thobgg released this 01 Oct 15:21

API level 20: write godparents and witnesses (POST Association: linked as _ASSO + RELA, free as GEDCOM-L _GODP/_WITN, 1 ASSO into the baptism), Fact.type for the type of marriage, Fact.note no longer overwrites a godparent list. Used by wtWin/wtTux 1.32. Details in CHANGELOG.md.

api4webtrees 1.11.0

Choose a tag to compare

@thobgg thobgg released this 01 Oct 14:00

API level 19: godparents and witnesses (reading), GEDCOM-L _GODP/_WITN as free entries, associatedIn,
typeLabel, CONC in notes. Shown by wtAnd/wtWin/wtTux from 1.31. Details in CHANGELOG.md.