Project sheets. A sheet is persistent and carries NO Dolibarr compatibility: anything dated lives on the article, with its date.
GET
/projects
bez konta
List project sheets
Parametry zapytania
| Pole |
Typ |
Wymagane |
Opis |
per_page |
integer |
nie |
Items per page. Clamped to the 1-100 range.
Domyślnie: 25
|
Odpowiedzi
200 |
One page of sheets. |
429 |
RATE_LIMITED: too many requests. |
POST
/projects
wymagany token
konto współtwórcy
limit zapisu
Create a project sheet
The sheet is persistent and carries no dated information: no Dolibarr compatibility, no version. Those live on the articles, each with its date.
Treść żądania
application/json
| Pole |
Typ |
Wymagane |
Opis |
editor_id |
integer |
tak |
Editor the sheet belongs to. The account must be a member.
|
name |
string |
tak |
|
summary |
string |
tak |
|
description |
string |
nie |
|
license |
string |
nie |
|
Odpowiedzi
201 |
The created sheet. |
401 |
INVALID_TOKEN: missing, revoked or expired token. |
403 |
CONTRIBUTOR_REQUIRED: a verified contributor account is needed. A reader account can read and subscribe, never write. |
422 |
VALIDATION_FAILED: invalid payload. detail names the offending fields. |
429 |
RATE_LIMITED: too many requests. |
GET
/projects/{slug}
bez konta
Read one project sheet
Adds the typed links, the translations, the logo and the gallery of the sheet.
A sheet masked by the moderation team answers 404, except to a token of its own editor, which keeps reading it to correct it: `hidden` is then true. The announcements filed under it stay published and carry no project.
Parametry ścieżki
| Pole |
Typ |
Wymagane |
Opis |
slug |
string |
tak |
Project slug.
|
Odpowiedzi
200 |
The sheet, its links, its translations, its logo and its gallery. |
404 |
NOT_FOUND: unknown resource, or one the account may not see. |
429 |
RATE_LIMITED: too many requests. |
PATCH
/projects/{slug}
wymagany token
limit zapisu
Edit the reference fields of a sheet
Rewrites the text of a sheet the calling account publishes for: name, language, summary, description and licence. Only the fields present in the call are touched, so a tool fixing the description alone cannot blank the licence it did not send.
The description is Markdown, rendered through the same whitelist as an article body, and bounded by the instance. A sheet presents a project and never states its current Dolibarr compatibility: what is dated lives in the announcements.
Links, translations and status have their own endpoints.
Parametry ścieżki
| Pole |
Typ |
Wymagane |
Opis |
slug |
string |
tak |
Project slug.
|
Treść żądania
application/json
| Pole |
Typ |
Wymagane |
Opis |
name |
string |
nie |
|
locale |
string |
nie |
Content locale the sheet is written in (fr_FR, es_ES...).
|
summary |
string |
nie |
|
description |
string | null |
nie |
Markdown, bounded by the instance (8000 characters by default).
|
license |
string | null |
nie |
|
Odpowiedzi
200 |
The sheet as it now reads. |
401 |
INVALID_TOKEN: missing, revoked or expired token. |
403 |
FORBIDDEN: the account is not a member of the editor that owns the resource. |
404 |
NOT_FOUND: unknown resource, or one the account may not see. |
422 |
VALIDATION_FAILED: invalid payload. detail names the offending fields. |
429 |
RATE_LIMITED: too many requests. |
POST
/projects/{slug}/links
wymagany token
limit zapisu
Add a typed link to a sheet
Outgoing links carry rel="nofollow ugc" without exception. URL shorteners are refused: they mask the destination and can be redirected after validation.
A Dolistore link already claimed by another sheet answers CONFLICT. That is a detection, not a verdict: the conflict is surfaced for human resolution.
Parametry ścieżki
| Pole |
Typ |
Wymagane |
Opis |
slug |
string |
tak |
Project slug.
|
Treść żądania
application/json
| Pole |
Typ |
Wymagane |
Opis |
type |
string |
tak |
Wartości: dolistore, shop, demo, doc, repo, support, other
|
url |
string |
tak |
|
label |
string |
nie |
|
Odpowiedzi
201 |
The created link. |
401 |
INVALID_TOKEN: missing, revoked or expired token. |
403 |
FORBIDDEN: the account is not a member of the editor that owns the resource. |
404 |
NOT_FOUND: unknown resource, or one the account may not see. |
409 |
Destination already claimed by another sheet, or shortener refused. |
422 |
VALIDATION_FAILED: invalid payload. detail names the offending fields. |
429 |
RATE_LIMITED: too many requests. |
PUT
/projects/{slug}/logo
wymagany token
limit zapisu
Set or clear the logo of a sheet
Deposit the image with POST /media first, then name its id here. The media must belong to the editor of the sheet. A null media_id clears the logo.
Parametry ścieżki
| Pole |
Typ |
Wymagane |
Opis |
slug |
string |
tak |
Project slug.
|
Treść żądania
application/json
| Pole |
Typ |
Wymagane |
Opis |
media_id |
integer | null |
tak |
|
Odpowiedzi
200 |
The sheet as it now reads. |
401 |
INVALID_TOKEN: missing, revoked or expired token. |
403 |
Not a member of the sheet's editor, or media of another editor. |
404 |
NOT_FOUND: unknown resource, or one the account may not see. |
422 |
VALIDATION_FAILED: invalid payload. detail names the offending fields. |
429 |
RATE_LIMITED: too many requests. |
POST
/projects/{slug}/gallery
wymagany token
limit zapisu
Add an image to the gallery of a sheet
Deposit the image with POST /media first, then name its id here. The media must belong to the editor of the sheet. Naming an image already in the gallery rewrites its caption and, when given, its position: a tool can run again without piling up duplicates.
The gallery is bounded by the instance; the refusal names the maximum. A Dolibarr screenshot routinely holds real personal data: publish screenshots taken on demonstration data only.
Parametry ścieżki
| Pole |
Typ |
Wymagane |
Opis |
slug |
string |
tak |
Project slug.
|
Treść żądania
application/json
| Pole |
Typ |
Wymagane |
Opis |
media_id |
integer |
tak |
|
caption |
string | null |
nie |
|
position |
integer | null |
nie |
Display order. Defaults to after the last image.
|
Odpowiedzi
200 |
The image was already in the gallery; its caption and position were rewritten. |
201 |
The image added to the gallery. |
401 |
INVALID_TOKEN: missing, revoked or expired token. |
403 |
Not a member of the sheet's editor, or media of another editor. |
404 |
NOT_FOUND: unknown resource, or one the account may not see. |
422 |
Invalid input, or gallery full: detail.gallery_max carries the maximum. |
429 |
RATE_LIMITED: too many requests. |
DELETE
/projects/{slug}/gallery/{mediaId}
wymagany token
limit zapisu
Take an image out of the gallery of a sheet
The file itself stays deposited; it is purged later if nothing else holds it.
Parametry ścieżki
| Pole |
Typ |
Wymagane |
Opis |
slug |
string |
tak |
Project slug.
|
mediaId |
integer |
tak |
Media identifier of the gallery image.
|
Odpowiedzi
200 |
The image left the gallery. |
401 |
INVALID_TOKEN: missing, revoked or expired token. |
403 |
FORBIDDEN: the account is not a member of the editor that owns the resource. |
404 |
Unknown sheet, or image not in its gallery. |
429 |
RATE_LIMITED: too many requests. |
POST
/projects/{slug}/translations
wymagany token
konto współtwórcy
limit zapisu
Translate a project sheet
Sheet translations live on their own, one row per locale. Unlike an article translation, this one does not go through the review.
Parametry ścieżki
| Pole |
Typ |
Wymagane |
Opis |
slug |
string |
tak |
Project slug.
|
Treść żądania
application/json
| Pole |
Typ |
Wymagane |
Opis |
locale |
string |
tak |
Content locale, five characters.
Wartości: fr_FR, en_US, es_ES, de_DE, it_IT, nl_NL, pt_PT
|
name |
string |
tak |
|
summary |
string |
tak |
|
description |
string |
nie |
|
Odpowiedzi
201 |
The translated sheet. |
401 |
INVALID_TOKEN: missing, revoked or expired token. |
403 |
CONTRIBUTOR_REQUIRED: a verified contributor account is needed. A reader account can read and subscribe, never write. |
404 |
NOT_FOUND: unknown resource, or one the account may not see. |
422 |
VALIDATION_FAILED: invalid payload. detail names the offending fields. |
429 |
RATE_LIMITED: too many requests. |