Project Details
GET /portfolio/project/{id}
Returns a public project profile, team, collaborators, and linked information.
Parameters
| Parameter | Type | Description |
|---|---|---|
id (path) |
string | Project MongoDB ObjectID. Prefer this to a project name because later operations require ObjectID conversion. |
apikey |
string | Portfolio API key, if configured; alternatively use X-API-Key. |
limit |
integer | Maximum list rows. Do not paginate this object response. |
offset |
integer | List rows to skip with limit. Defaults to 0; negative values become 0. |
Authentication, pagination, and error envelopes are described in Portfolio API Basics. Parameters such as json, filter, columns[], full, and aggregate are not supported unless listed here.
Example Request
1 | |
Example Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | |
The example uses illustrative values; the object is abbreviated. Optional stored or rendered fields may be omitted. For detail objects, response count usually counts top-level fields; see the basics.
Returned Fields
| Field | Description |
|---|---|
id, acronym, name, name_de, title, title_de |
Project identity and bilingual titles. |
type |
Translated configured project type label. |
abstract, abstract_de |
Bilingual abstract; empty/null fallbacks. |
funder, funding_number, coordinator, role |
Stored funding, coordinator, and role values; role defaults to partner. |
funding_organization, scholarship, university |
Organization names resolved by the project renderer in Portfolio mode, stored fallback values, or "-". |
start, end, start_date, end_date |
Legacy and stored date ranges. |
persons |
Team membership fields retained except user; adds person string id, bilingual role, and level-1 depts map {group_id:{en,de}}. |
activities |
Count of non-hidden linked activities, subject to workflow visibility; see the current restriction below. |
parent, subprojects |
Public parent/subproject summaries {id,name,title} when found. |
collaborators |
Resolved organizations: id, role, name, type, location, country, ror, lat, and lng. |
website, img |
Stored website and absolute uploaded project image URL, or null. |
topics |
Optional active topic objects {id,name,name_de,color}. |
news |
Optional public project news dated up to today, newest first. |
Response Behavior
Requires a public project. Use its MongoDB ObjectID: although the initial lookup accepts a project name, subsequent ObjectID conversion expects a valid ObjectID and a name can fail. Hidden/unresolved team members are skipped, but inactive members remain. Team memberships follow role order applicant, PI, Co-PI, worker, associate, student.
The activity counter normally matches the project name or ObjectID. With workflow visibility approved-or-empty, the handler overwrites that project $or with the workflow $or, so the counter can include unrelated non-hidden activities. This is documented as implemented; this change only fixes pagination. Public subprojects are found by parent_id, while the parent summary reads parent.
Errors
Missing or non-public projects return 404 DataNotFound with msg: "Project not found".