PUBLIC DATA // HUMANITARIAN USE
ISSACHAR / Vetted Records & Feed API
GroundTruth
What happened, and how we know.

Records of attacks and what follows them, that you can check, cite and share.

GroundTruth is where your organization keeps what it knows about attacks, illegal mining, occupied farmland, displaced families and blocked roads. Every record carries its sources and a rating. Confirmed deaths are kept apart from reported ones. Every change stays on the record for good. And a feed API keeps your partners’ systems, and your own, up to date.

Five Kinds of Record  //  Sourced & Rated  //  Full History  //  Feed API for Partners
Scenario 06:10 LOCAL · GUMA LGA, BENUE
Why Counting the Dead Is Hard

By mid-morning there are twelve news stories about last night’s attack, four different death tolls and one list of names. Which number goes in the report?

Gunmen came into a farming community in Guma at about one in the morning. By six the first reports are out. A national daily, quoting residents, says forty-three people were killed. A wire service says at least twenty, and within the hour ten other outlets run its story almost word for word. A police spokesman tells a radio station nine.

Then a church partner’s field staff, who spent the morning going from house to house, send a list: seventeen names, each one confirmed with a family member.

43
National daily, quoting residents
20+
Wire service, and 10 outlets repeating it
9
Police spokesman, on radio
17
Names confirmed with families
“Eleven stories repeating one wire report are one source, not eleven. And the average of four numbers is a number nobody reported.”

In a spreadsheet, this becomes a row that says “about 30 killed”, with a link to whichever article someone found first. A month later nobody remembers where 30 came from, two of the links are dead, and a second row for the same attack has crept in from another list.

In GroundTruth, the analyst opens one record. Each report goes in as a source, with a saved copy of the page, so a story that is later taken down is still on file. The wire story and its ten copies count as one source. The seventeen names are stored encrypted, and the record now reads at least 17 confirmed, up to 43 reported, with a flag that the reports disagree. Nothing is averaged.

GroundTruth suggests a rating from the separate sources; the analyst applies B2: a usually reliable source, probably true. The residents’ account of who did it goes in as alleged: Fulani militants. Within minutes the duplicate check notices that a partner organization has recorded the same attack in its own public dataset, and puts the match in both teams’ review queues. A person on each side confirms it.

Every change goes out on the dataset’s feed. A research partner’s database and a coalition dashboard both follow it, and each one sees only what the dataset’s sharing settings allow.

Six months later, an official says the toll was inflated after the fact. The team opens the record as it stood the morning after the attack: what was known, from whom, and when. A check of the record’s chain confirms that nothing has been quietly changed since.

None of these facts were new. What GroundTruth adds is that every one of them now has a source, a rating, the date it was learned, and a history nobody can rewrite.
An illustrative scenario. The figures are invented.
Anatomy of a Record ONE ATTACK · SIX VERSIONS

A GroundTruth record is more than a pin on a map. Here is the attack from the scenario, as your own team sees it.

GroundTruth · Attacks Example
Attack by Fulani militants in Guma (Benue)
Verified B2 · High confidence Reports disagree
1 When 14 March 2026, overnightKnown to the day
2 Where A farming community, Guma LGA, BenueKnown to the community
3 Casualties
ConfirmedReported
Killed1743
Injured1230
Abducted06+
4 Sources 14 reports from 4 separate sources2 saved PDFs, 1 screenshot, 2 internal notes
5 Named victims 17, verifiedNames visible to your organization only
5 Carried out by Fulani militantsAlleged, by residents
6 Version 6 · recorded 16 Mar 2026, 09:42 UTC · “Verified after field confirmation of named victims”
  1. 1
    As precise as the evidence, and no more
    A date can be known to the minute, the day, the week, the month or only the year. GroundTruth stores exactly that, so a search for “attacks in March” doesn’t pretend to know more than it does.
  2. 2
    Places, not just points
    A location can be exact, or known only to the community, the LGA, the state or the country. Records can also carry a shape, such as the outline of a mining pit or an occupied field. On the map, a location known only to an area gets a dashed ring.
  3. 3
    Confirmed and reported, side by side
    For the killed, injured, abducted, missing and displaced, GroundTruth keeps the confirmed minimum and the highest figure reported, and flags when reports don’t agree. It never averages them.
  4. 4
    Every claim has a source
    News stories, NGO and church reports, government statements, social media posts, eyewitnesses and field reports, each linked, quoted and rated. Saved screenshots and PDFs are fingerprinted, so you can show they haven’t changed since you saved them. Internal sources stay internal.
  5. 5
    Named victims and who did it
    Victims’ names are kept encrypted and never leave your organization unless you choose to publish them. Who carried out an attack is recorded as claimed, confirmed, alleged or suspected, with its own source and rating.
  6. 6
    Every change has a reason
    Each edit makes a new version and keeps the old one. You can see what changed, when and why, and ask what the record said on any past date.
What You Can Record FIVE KINDS OF DATASET

Violence rarely ends when the attackers leave. GroundTruth records the attack and what follows it: the mines that pay for it, the farmland taken, the families who flee and the roads that close.

Attacks
Who was attacked, where and how, with confirmed and reported casualties, named victims and who carried it out. The full vetting tools are built for these.
VettingCasualty reports, named victims, attributions, ratings, duplicates
Illegal mining sites
Gold, lithium, tin and other minerals, with legal status, operator, foreign involvement and the site’s link to armed groups.
Tracked over timeActivity (active, inactive, abandoned) and disturbed area
Farmland occupation
Fields seized, crops destroyed, militant grazing on farmland and villages forced to abandon their land, with who is occupying it.
Tracked over timeArea occupied and households affected
Displacement
Camps, settlements and host communities: why people fled and which communities they came from.
Tracked over timeDisplaced people and households
Access conditions
Checkpoints, roadblocks, armed groups on a road, ambush and IED threats, curfews, damaged bridges and flooding, with who controls them.
Tracked over timeOpen, restricted or closed
Counts That Change
The number of people in a camp or the state of a road changes week to week. GroundTruth keeps each measurement with its own date and source, so you see the latest figure and the whole series, not one number that gets overwritten.
How Vetting Works THE PLATFORM SUGGESTS · PEOPLE DECIDE

GroundTruth does the careful bookkeeping that is hard to keep up by hand. It suggests; your analysts decide.

01
Copies count once
A wire story and the outlets that reprint it, two articles quoting the same statement, or several posts from one account all count as one source. Ten copies of one claim don’t make it ten times truer.
02
Never averaged
The confirmed figure is the higher of the verified named victims and the best-rated report. The reported figure is the highest anyone gave. When names outnumber every report, or reports don’t overlap, the record says so.
03
Ratings anyone can read
Every source and record is rated on the Admiralty scale used by analysts worldwide: how reliable the source is, and how believable the information. GroundTruth suggests a rating from the separate sources; an analyst applies it.
04
Names are protected
Names are stored encrypted. GroundTruth matches them through a keyed fingerprint, so the same person reported in two places is counted once, even when the spelling differs (Mohammed, Muhammad) or a title is added. An admin can erase a name everywhere at once.
05
Duplicates found, people decide
GroundTruth looks for the same event entered twice by matching place, time, names and details, then puts the likely matches in a review queue. Nothing merges by itself. In busy cities with several attacks a day, different stories count against a match.
06
Evidence that lasts
Saved screenshots and PDFs keep a fingerprint of the original, so you can prove a file hasn’t been altered. When a photo is shared beyond your organization, its hidden location data is removed first.
How reliable is the source?
ACompletely reliable
BUsually reliable
CFairly reliable
DNot usually reliable
EUnreliable
FReliability can’t be judged
How believable is the information?
1Confirmed by other sources
2Probably true
3Possibly true
4Doubtful
5Improbable
6Truth can’t be judged
Nothing Quietly Rewritten FULL HISTORY · TAMPER-EVIDENT

When the numbers are challenged, you need to show what you knew, and when you knew it. GroundTruth keeps both.

One record’s versions over two days Six versions of the record, each sealed to the one before it. A line marks 15 March at 06:00: asked as of then, the record was reported, with up to 43 killed and none yet confirmed. 14 MAR 06:10 15 MAR 16 MAR 09:42 V1 Reported up to 43 killed 1 source 3c1e…a90f V2 Sources 14 reports = 4 separate 77b2…14ce V3 Names 17 confirmed up to 43 e05d…3b71 V4 Merged duplicate folded in 5a9c…d2e0 V5 Rated B2 alleged: Fulani militants b81f…07aa V6 · NOW Verified 17 confirmed up to 43 9f2c…6e41 AS OF 15 MAR 06:00 reported, up to 43 0 confirmed yet EACH VERSION SEALED TO THE ONE BEFORE →
One record · six versions in two days Ask for any moment, get the record as it stood

Two kinds of time. Every record knows when the event happened and when your team learned each fact about it. Ask for the attacks of last March as your organization understood them on the first of April, and you get exactly that, even after later corrections.

Nothing is deleted. An edit closes the old version and adds a new one. A record found to be wrong is retracted with a reason: it disappears from the map and the feeds, but stays in the history.

A chain you can check. Each change is sealed with a cryptographic fingerprint that includes the change before it, one chain per dataset. Altering any past entry breaks every link after it. Your admins can re-check a whole chain with one button, and the database itself refuses edits to past versions.

Proof others can hold. Every feed response carries the latest fingerprint of each dataset’s chain. Partners who keep those fingerprints hold independent proof of what the record said, outside your control and ours.

Share on Your Terms PUBLIC · PARTNERS ONLY · PRIVATE

Some records save lives when everyone can see them. Others put people in danger if the wrong person does. Each dataset decides who sees what.

Public
Every organization on ISSACHAR
Other organizations see your verified and reported records with locations generalized to the level you choose, and the number of named victims, not their names, unless you decide to publish them.
Every plan
Partners only
You and the partners you name
Choose partner organizations one by one. Each can be given finer locations, down to the exact point and shape, and named victims. A public dataset can also give a trusted partner more than the public sees.
Professional plan
Private
Your organization only
For work that can’t be shared at all: sensitive investigations, protection cases or records that would expose a source.
Professional plan
The Feed API /API/V1 · OPENAPI 3.1

Your database, a partner’s research system or a coalition dashboard can follow GroundTruth directly. What your team does in the dashboard, your systems can do through the API, under the same rules.

  • Keys for systems, not people
    Your admins create a feed client for each system that connects. Each has one key, valid for 30 days to a year and shown only once. Keys can read by default; writing is switched on only where you need it. Replace or cancel a key at any time.
  • Read what your organization can read
    Your own datasets in full, other organizations’ public datasets with their protections applied, and anything partners have shared with you. Records come as JSON or GeoJSON, filtered by when events happened, a map box, status or minimum rating, and can be asked as_of any past moment.
  • Follow every change, in order
    The change feed replays a dataset’s whole history, or starts from now, and a signed cursor remembers where you left off. Retractions, merges and sharing changes arrive as their own entries, so a copy can stay correct, including deleting what it is no longer allowed to hold.
  • Write with the same checks
    Add and update records, sources and files, casualty reports, named victims, attributions and measurements. Every change goes through the same validation as the dashboard, needs a reason, and lands on the audit chain.
  • Fair limits, clear errors
    Requests are limited per organization by plan, with the limit in every response. Errors are always JSON. The guide, the full reference and the OpenAPI 3.1 specification are public, so your developers can read them before you sign up.
Start followingGET /feed
BASE=https://issacharanalytics.org/api/v1
AUTH="Authorization: Bearer $GROUNDTRUTH_TOKEN"

# Start at the current head of every dataset you can read
curl -H "$AUTH" "$BASE/feed?from=latest"

# Then keep asking with the next_cursor you were given
curl -H "$AUTH" "$BASE/feed?cursor=$NEXT_CURSOR"
Response200 OK
{
  "data": [
    {
      "seq": 1841, "op": "tombstone", "reason": "merged",
      "record": "01JPC7Q2…", "merged_into": "01JPB3R8…", …
    },
    {
      "seq": 1842, "op": "upsert",
      "record": "01JPB3R8…", "version": 6,
      "recorded_at": "2026-03-16T09:42:07Z",
      "data": {
        "title": "Attack by Fulani militants in Guma (Benue)",
        "status": "verified",
        "rating": { "code": "B2", "confidence": "high" },
        "location": { "precision": "community", "admin2": "Guma", … },
        "casualties": {
          "killed": { "floor": 17, "ceiling": 43, "conflict": true }
        },
        …
      }
    }
  ],
  "next_cursor": "eyJ2Ijox…",
  "has_more": false,
  "heads": {
    "01JP9ZK4…": { "feed_seq": 1842, "hash": "9f2c…6e41", … }
  }
}
MethodPathWhat it doesAccess
GET/datasetsThe datasets you can read, with each chain’s latest fingerprintread
GET/datasets/{id}/recordsRecords as JSON or GeoJSON: as_of, dates, map box, status, min_ratingread
GET/records/{id}One record with its sources, casualty reports, victims and attributionsread
GET/records/{id}/historyEvery version, with what changed and whyread
GET/feedEvery change, in order, across the datasets you followread
POST/datasets/{id}/recordsAdd a record to one of your datasetswrite
PATCH/records/{id}Change a record, with a reasonwrite
POST/records/{id}/sourcesAdd a source, with a saved screenshot or PDF. Also /claims, /persons, /attributions and /observations for casualty reports, named victims, attributions and measurementswrite
Bring What You Already Have IMPORT · MAP · IMAGERY
Import
Start from the lists you keep today
Load Terror Attack Data, ACLED exports or any spreadsheet (CSV) or map file (GeoJSON). Running an import again updates only what changed at the source and keeps your analysts’ corrections; it never makes duplicates. Imported records start unvetted: their deaths count as reported, and the confirmed figure waits for a person.
On the Map
See it in Overwatch
The GROUNDTRUTH layer puts every dataset you can read on the 3D globe, next to fires, displacement and alerts. Verified records are solid and unvetted ones hollow; attacks grow with the number of deaths reported, and can be filtered by who carried them out.
Explore Overwatch
Imagery
Before and after, from above
Select a record on the map and Overwatch’s Wayback archive lines up satellite captures from before and after the date (with your organization’s own ArcGIS key). Satellite imagery your organization buys can be cited on a record as an internal source, so the evidence sits with the claim.
Where We Stand
Some outside datasets describe the violence in Nigeria’s Middle Belt as “farmer-herder conflict”, as if both sides were equal. We reject that framing. When GroundTruth imports a record, the source’s own words are kept exactly as written, as a quote. The titles and labels are ours: attackers the source calls “herders” are recorded as Fulani militants, and nothing is blamed on a group unless the record supports it.
Who It Is For FOUR KINDS OF TEAMS
User 01
Church Networks & Advocates
You document attacks on communities and present the numbers to governments, the press and the courts. GroundTruth gives you figures that hold up when they are challenged: every death sourced, every name protected, every change on the record.
User 02
Humanitarian Teams
You need to know where displaced families are sheltering and which roads are open this week. Keep camp counts and road conditions current, and share them with partners at a level of detail that keeps people safe.
User 03
Researchers & Journalists
You need records you can cite and others can check. Each record has a permanent ID, a rating and its sources, and you can reproduce exactly what the data said on the day you wrote about it.
User 04
Coalitions & Partner Networks
Several organizations, one picture. Share datasets with named partners, confirm each other’s records of the same attack, and follow one another’s changes through the feed, while each organization keeps control of its own data.
Plans PER ORGANIZATION

Every ISSACHAR organization starts on Community. Professional adds private and partners-only datasets and higher API limits.

  CommunityIncluded with every organization ProfessionalSubscription per organization
Public datasetsUnlimitedUnlimited
Vetting, history & audit chainIncludedIncluded
Imports & the Overwatch layerIncludedIncluded
Feed API60 requests a minute600 requests a minute
Connected systems (feed clients)Up to 3Up to 25
Private datasetsNot includedIncluded
Partners-only datasets & partner accessNot includedIncluded
If a Plan Ends
Private and partners-only datasets stay exactly as private as they were. They become read-only, existing partner access keeps working until you revoke it, and nothing is ever made public automatically.
Get Involved KEEP RECORDS · CONNECT SYSTEMS · PARTNER WITH US

If your organization documents violence, tracks displacement or needs a shared record with partners that holds up under scrutiny, we’d like to show you GroundTruth.

“Of the children of Issachar, men that had understanding of the times, to know what Israel ought to do; the heads of them were two hundred; and all their brethren were at their commandment.”
1 Chronicles 12:32 · Understanding the Times
PUBLIC DATA // HUMANITARIAN USE