Universes ESG Cases
Get cases for one universe
Request
Parameters
universe_id*uuidUnique identifier of the universe.
sizeintegerNumber of records per page
Default: 10Range: [1, 10000]search_afterstringsearch_afterfield value from the previous pagescoreinteger (operator)Intensity score
You can input an integer or use the following operators: lt (<), lte (≤), gt (>), gte (≥), neq (≠), in, nin (not in), between
Range: [1, 5]start_datedate (operator)Start date
You can input a date or use the following operators: lt (<), lte (≤), gt (>), gte (≥), neq (≠), between
Example: "between:2022-01-01;2022-01-02"last_activitydate (operator)Last activity date
You can input a date or use the following operators: lt (<), lte (≤), gt (>), gte (≥), neq (≠), between
Example: "between:2022-01-01;2022-01-02"event_idstring[]Unique event identifier to retrieve the associated cases
You can specify multiple values
Example: "e7c2464e-0dc8-441a-970b-0d23eeabe3d1"orderfield:direction[]Order to apply to the result.
Possible fields are:
score,last_activity,start_date,ungc_classification.Possible directions are:
ascanddesc.You can specifiy multiples values.
When using
Example: "score:asc"ungc_classification, results are sorted by the level of importance :low risk, thenwatchlist, thenviolatorcategory(string (enum))[]Filter by category.
Values: "E", "S", "G"sub_category(string (enum))[]Filter by a sub category.
Values: "Animal Welfare", "Atmospheric Pollution", "Biodiversity And Ecosystems", "Climate Change", "Energy & Natural Resources Management", "Environmental Misreporting", "Food Waste", "Industrial Accidents & Physical Risk", "Land And Soil ...contentstring[]Search for keywords inside the
titleandsummary.Note: symbols are ignored in the query, if you use
hello@world, the query will behello world, accentuated letters are preserved.Example:
wordwill matchWORD,wordsand any conjugated forms such aswording.However, it will not match
keyword. To match both terms, you must add each one separately.Example:
hard drivewill return result mentioninghard drivesbut alsohard disk drives, but will not mention document that matchdriveonly. To match those you'll have to search them separately.ungc_classification(string (enum))[]UN Global Compact classification. Used to filter events based on their assessed compliance status.
Values: "violator", "watchlist", "low risk"ungc_principles(string (enum))[]UN Global Compact principles to filter by (e.g. 'Principle 1: Businesses should support and respect the protection of internationally proclaimed human rights.)' for human rights
Values: "Principle 1: Businesses should support and respect the protection of internationally proclaimed human rights.", "Principle 2: Businesses should make sure that they are not complicit in human rights abuses.", "Principle 3: Businesse...fields(string (enum))[]Fields to include in the response
Values: "id", "categories", "entity_id", "dashboard_url", "last_activity", "score", "start_date", "sub_categories", "summary", "title", "related_events_count", "related_documents_count", "ungc_classification", "ungc_principles", "translated...translatelanguage-code (enum)In which language to translate the results.
Default translated fields are:
title,summary.If empty,
translated_fields won't be returned.Example:
Values: "af", "afr", "afrikaans", "albanian", "am", "amh", "amharic", "ar", "ara", "arabic", "armenian", "az", "aze", "azerbaijani", "ben", "bengali", "bg", "bn", "bos", "bosnian", "bs", "bul", "bulgarian", "ca", "cat", "catalan", "chinese"...french
Response
Properties of the cases
data*object[]Properties of the cases.
size*integerNumber of records per page requested.
Example: 1has_next*booleanTrue if there are more records available.
Example: truecount*integerNumber of records returned in the current page.
Example: 1search_after*string | nullCursor for next page.
{
"data": [
{
"id": "5eb7182b-9b55-4f7a-b3e1-49062ee7cef9",
"categories": [
"E"
],
"entity_id": "f337e172-528e-4808-b46e-be1ad6db7fbb",
"dashboard_url": "https://dashboards.textreveal.com/case/5eb7182b-9b55-4f7a-b3e1-49062ee7cef9",
"last_activity": "2025-11-07T08:35:37.658Z",
"score": 2,
"start_date": "2025-10-06T04:55:21.713Z",
"sub_categories": [
"Climate Change",
"Water Pollution"
],
"summary": "string",
"title": "string",
"related_events_count": 8,
"related_documents_count": 43,
"ungc_classification": "violator",
"ungc_principles": [
"Principle 1: Businesses should support and respect the protection of internationally proclaimed human rights.",
"Principle 2: Businesses should make sure that they are not complicit in human rights abuses."
],
"translated_summary": null,
"translated_title": "string"
}
],
"size": 1,
"has_next": true,
"count": 1,
"search_after": "string"
}Error
Bad request
message*stringError message.
Example: "The server returned an unexpected response"code*integerError code.
Example: 400reason*string (enum)Error reason.
Values: "invalid", "timeout", "offline", "unknown", "not_found", "unauthorized", "forbidden", "internal", "too_many_requests"errorsobject[]Possible error causes, like query params, headers or body.
{
"message": "The server returned an unexpected response",
"code": 400,
"reason": "invalid",
"errors": [
{
"message": "Expected number, received string",
"field": "size",
"reason": "invalid_type"
}
]
}Not authorized
message*stringExample: "Not authorized to access this resource"code*numberError code.
reason*string
{
"message": "Not authorized to access this resource",
"code": 0,
"reason": "string"
}