Octibiz
Demo

Durchsucht Website und Dokumentation gemeinsam. Enter zeigt alle Treffer, Esc schließt.

Projekte — API und MCP

Überblick

Dieser Bereich stellt 93 Operationen bereit. Jede davon ist zugleich ein MCP-Werkzeug.

Der Bereich hängt am Modul-Schalter module.projects. Ist das Modul aus, antworten diese Operationen mit 404.

Operationen

MethodePfadZweckRechtParameter
GET/api/v1/project-acceptancesListe der ProjectAcceptanceprojects.project.viewpage, projectId, projectUlid, status
GET/api/v1/project-acceptances/{ulid}/pdfAbnahme-Beleg als PDF — Beleg einer Abnahme mit Marken-Briefkopf: Gegenstand, Art, Entscheidung, wer/wann, IP, Browser, Kommentar bzw. Änderungswunsch und — bei Kunden-Abnahmen im Portal — Unterzeichner und Nachweis-Hash. Antwort application/pdf; Abnahme eines unsichtbaren Projekts 404.projects.project.viewulid
GET/api/v1/project-activityListe der ProjectActivityprojects.project.viewpage, itemsPerPage, projectUlid, order[occurredAt]
GET/api/v1/project-boardsListe der Boardprojects.project.viewpage, projectId, projectUlid
POST/api/v1/project-boardsEine Board anlegenprojects.project.edit+ Rumpf
GET/api/v1/project-boards/{boardUlid}/columnsSpalten einer Tafel — Spalten des Boards in Reihenfolge (sortOrder): Name, gebundener Aufgaben-Status (statusKey), WIP-Grenze. Verlangt projects.project.view am Projekt der Tafel; eine unsichtbare Tafel antwortet 404.projects.project.viewboardUlid
POST/api/v1/project-boards/{boardUlid}/columnsSpalte anlegen — Legt eine Spalte an der Tafel an: name, statusKey (Aufgaben-Status, je Tafel höchstens einmal — sonst 422), optional wipLimit (≤ 0/leer = keine Grenze) und sortOrder (ohne Angabe hinten angehängt). Verlangt projects.project.edit am Projekt der Tafel (sonst 403).projects.project.editboardUlid, + Rumpf
DELETE/api/v1/project-boards/{boardUlid}/columns/{ulid}Spalte löschen — Entfernt die Spalte von der Tafel. Die Vorgänge behalten ihren Status; ohne Spalte erscheinen sie nicht mehr auf dieser Tafel.projects.project.editboardUlid, ulid
GET/api/v1/project-boards/{boardUlid}/columns/{ulid}Eine BoardColumn lesenprojects.project.viewboardUlid, ulid
PATCH/api/v1/project-boards/{boardUlid}/columns/{ulid}Spalte ändern — Umbenennen, anderen Status binden, WIP-Grenze setzen oder aufheben (null), Position setzen (sortOrder — je Spalte ihr Ziel, keine Umnummerierung der übrigen).projects.project.editboardUlid, ulid, + Rumpf
DELETE/api/v1/project-boards/{ulid}Eine Board löschenprojects.project.editulid
GET/api/v1/project-boards/{ulid}Eine Board lesenprojects.project.viewulid
PATCH/api/v1/project-boards/{ulid}Eine Board ändernprojects.project.editulid, + Rumpf
GET/api/v1/project-file-requestsDatei-Anforderungen eines Projekts — Datei-Anforderungen beim Kunden mit Plätzen und hochgeladenen Dateien. Pflichtfilter projectUlid.projects.project.viewprojectUlid, status
POST/api/v1/project-file-requestsDateien beim Kunden anfordern — Legt eine Datei-Anforderung am Projekt an (projectUlid, title, description?, dueAt?, slotLabels?) und benachrichtigt die Portal-Nutzer des Kunden. Das Projekt braucht einen Kunden.projects.project.edit+ Rumpf
DELETE/api/v1/project-file-requests/{ulid}Datei-Anforderung löschen — Löscht die Anforderung; hochgeladene Dateien bleiben im Projekt.projects.project.editulid
GET/api/v1/project-file-requests/{ulid}Eine ProjectFileRequest lesenprojects.project.viewulid
PATCH/api/v1/project-file-requests/{ulid}Datei-Anforderung ändern — Ändert Titel, Hinweis oder Frist; status=completed erledigt, status=open öffnet wieder.projects.project.editulid, + Rumpf
GET/api/v1/project-gantt-baselinesBaselines eines Projektplans — Gespeicherte Baselines eines Projekts, neueste zuerst. Pflichtfilter projectUlid.projects.project.viewprojectUlid
POST/api/v1/project-gantt-baselinesBaseline des Projektplans speichern — Friert die aktuellen Termine des Projekts ein (Start/Ende je Aufgabe, Meilenstein-Termine, Projektrahmen). Body {projectUlid, name?}; ohne Namen „Baseline <Datum>". Der Plan wird danach gegen sie verglichen.projects.project.edit+ Rumpf
DELETE/api/v1/project-gantt-baselines/{ulid}Baseline verwerfen — Löscht eine Baseline des Projektplans.projects.project.editulid
GET/api/v1/project-gantt-baselines/{ulid}Eine ProjectGanttBaseline lesenprojects.project.viewulid
GET/api/v1/project-membersListe der ProjectMemberprojects.project.viewpage, projectId, employeeId
POST/api/v1/project-membersEine ProjectMember anlegenprojects.project.edit+ Rumpf
DELETE/api/v1/project-members/{id}Eine ProjectMember löschenprojects.project.editid
GET/api/v1/project-members/{id}Eine ProjectMember lesenprojects.project.viewid
PATCH/api/v1/project-members/{id}Eine ProjectMember ändernprojects.project.editid, + Rumpf
GET/api/v1/project-milestonesListe der Milestoneprojects.project.viewpage, projectId, order[dueAt], order[name], order[sortOrder]
POST/api/v1/project-milestonesEine Milestone anlegenprojects.project.edit+ Rumpf
DELETE/api/v1/project-milestones/{ulid}Eine Milestone löschenprojects.project.editulid
GET/api/v1/project-milestones/{ulid}Eine Milestone lesenprojects.project.viewulid
PATCH/api/v1/project-milestones/{ulid}Eine Milestone ändernprojects.project.editulid, + Rumpf
POST/api/v1/project-milestones/{ulid}/acceptMeilenstein intern abnehmen — Nimmt den Meilenstein INTERN ab. Die Kundenentscheidung läuft ausschließlich über das Portal.projects.acceptance.internalulid, + Rumpf
POST/api/v1/project-milestones/{ulid}/billMeilenstein abrechnen — Stößt die Festpreis-Abrechnung des Meilensteins an (meldet BillingRequested). Verlangt das eigene Auslöserecht für Abrechnungen; billedAt ist nicht direkt schreibbar.projects.billing.triggerulid, + Rumpf
POST/api/v1/project-milestones/{ulid}/request-acceptanceKundenabnahme des Meilensteins anfordern — Fordert die Abnahme durch den Kunden an: legt sie als pending an und benachrichtigt das Portal. Nimmt nur kind=customer.projects.project.editulid, + Rumpf
GET/api/v1/project-risksListe der ProjectRiskprojects.project.viewpage, projectId, projectUlid, status, type
POST/api/v1/project-risksEine ProjectRisk anlegenprojects.project.edit+ Rumpf
DELETE/api/v1/project-risks/{ulid}Eine ProjectRisk löschenprojects.project.editulid
GET/api/v1/project-risks/{ulid}Eine ProjectRisk lesenprojects.project.viewulid
PATCH/api/v1/project-risks/{ulid}Eine ProjectRisk ändernprojects.project.editulid, + Rumpf
GET/api/v1/project-templatesListe der ProjectTemplateprojects.project.viewpage, active, projectType, brandId, search, order[name], order[createdAt], order[updatedAt]
POST/api/v1/project-templatesEine ProjectTemplate anlegenprojects.config.manage+ Rumpf
DELETE/api/v1/project-templates/{ulid}Eine ProjectTemplate löschenprojects.config.manageulid
GET/api/v1/project-templates/{ulid}Eine ProjectTemplate lesenprojects.project.viewulid
PATCH/api/v1/project-templates/{ulid}Eine ProjectTemplate ändernprojects.config.manageulid, + Rumpf
GET/api/v1/project/milestone-statusesListe der MilestoneStatusprojects.project.viewpage
POST/api/v1/project/milestone-statusesEine MilestoneStatus anlegenprojects.config.manage+ Rumpf
DELETE/api/v1/project/milestone-statuses/{key}Eine MilestoneStatus löschenprojects.config.managekey
GET/api/v1/project/milestone-statuses/{key}Eine MilestoneStatus lesenprojects.project.viewkey
PATCH/api/v1/project/milestone-statuses/{key}Eine MilestoneStatus ändernprojects.config.managekey, + Rumpf
GET/api/v1/project/project-rolesListe der ProjectRoleprojects.project.viewpage
POST/api/v1/project/project-rolesEine ProjectRole anlegenprojects.config.manage+ Rumpf
DELETE/api/v1/project/project-roles/{key}Eine ProjectRole löschenprojects.config.managekey
GET/api/v1/project/project-roles/{key}Eine ProjectRole lesenprojects.project.viewkey
PATCH/api/v1/project/project-roles/{key}Eine ProjectRole ändernprojects.config.managekey, + Rumpf
GET/api/v1/project/project-statusesListe der ProjectStatusprojects.project.viewpage
POST/api/v1/project/project-statusesEine ProjectStatus anlegenprojects.config.manage+ Rumpf
DELETE/api/v1/project/project-statuses/{key}Eine ProjectStatus löschenprojects.config.managekey
GET/api/v1/project/project-statuses/{key}Eine ProjectStatus lesenprojects.project.viewkey
PATCH/api/v1/project/project-statuses/{key}Eine ProjectStatus ändernprojects.config.managekey, + Rumpf
GET/api/v1/project/project-typesListe der ProjectTypeprojects.project.viewpage
POST/api/v1/project/project-typesEine ProjectType anlegenprojects.config.manage+ Rumpf
DELETE/api/v1/project/project-types/{key}Eine ProjectType löschenprojects.config.managekey
GET/api/v1/project/project-types/{key}Eine ProjectType lesenprojects.project.viewkey
PATCH/api/v1/project/project-types/{key}Eine ProjectType ändernprojects.config.managekey, + Rumpf
GET/api/v1/projectsListe der Projectprojects.project.viewpage, customerId, brandId, teamId, type, statusId, statusCategory, showDone, health, mine, search, q, order[createdAt], order[updatedAt], order[name], order[code], order[dueAt], order[budgetAmount]
POST/api/v1/projectsEine Project anlegenprojects.project.create+ Rumpf
POST/api/v1/projects/from-quoteCreate project from a quote — Create project from a quote. Dedicated action endpoint — not a standard CRUD create.projects.project.create_from_quote+ Rumpf
POST/api/v1/projects/from-templateEine Project anlegenprojects.project.create+ Rumpf
POST/api/v1/projects/{projectUlid}/ai/risk-scanVerzugs- und Risikosignale erkennen — Erkennt Verzugs-/Risiko-Signale und ordnet sie ein; createRisk legt daraus ein Projekt-Risiko an (verlangt projects.project.edit).projects.project.viewprojectUlid, + Rumpf
POST/api/v1/projects/{projectUlid}/ai/status-summaryStatusbericht erzeugen — Erzeugt einen Statusbericht zum Projekt.projects.project.viewprojectUlid, + Rumpf
POST/api/v1/projects/{projectUlid}/ai/task-breakdownAufgaben-Vorschlag aus einem Briefing — Schlägt Aufgaben aus einem Briefing vor (Vorschau, legt nichts an).projects.project.viewprojectUlid, + Rumpf
POST/api/v1/projects/{projectUlid}/ai/task-breakdown/applyAufgaben-Vorschläge übernehmen — Legt die übergebenen Aufgaben-Vorschläge als Aufgaben des Projekts an.projects.project.editprojectUlid, + Rumpf
GET/api/v1/projects/{projectUlid}/autopilotEine ProjectAutopilot lesenprojects.project.viewprojectUlid
PATCH/api/v1/projects/{projectUlid}/autopilotAutopilot-Einstellungen ändern — Ändert die Autopilot-Einstellungen des Projekts. Wirkt ausschließlich auf Benachrichtigungen — nie auf Status oder Termine.projects.project.editprojectUlid, + Rumpf
POST/api/v1/projects/{projectUlid}/change-quoteNachtrag zum Projekt anbieten — Legt aus einem Änderungswunsch einen Angebots-Entwurf mit Projektbezug an (Herkunft sourceProjectId am Angebot): Kunde, Marke und Betreff kommen aus dem Projekt. Body {acceptanceUlid?, note?, title?} — acceptanceUlid übernimmt den Änderungswunsch einer Abnahme des Projekts (Status changes_requested) als Einleitung, sonst gilt note. Verlangt ein sichtbares Projekt (sonst 404) mit Kunde (sonst 422) und finance.quote.create in seiner Marke (sonst 403); ohne aktives Angebots-Modul 409. Ein noch unversendeter Nachtrags-Entwurf desselben Projekts wird zurückgegeben (created: false).finance.quote.createprojectUlid, + Rumpf
GET/api/v1/projects/{projectUlid}/ganttRetrieves a ProjectGantt resource. — Balken (Aufgaben mit Start/Ende), Kanten (Abhängigkeiten) und Meilensteine eines Projekts für die Zeitachse — mit kritischem Pfad (Gesamtpuffer je Balken) und Vergleich gegen eine gespeicherte Baseline (Abweichung in Tagen).projects.project.viewprojectUlid, baselineUlid
POST/api/v1/projects/{projectUlid}/progress-billingFestpreis nach Fertigstellungsgrad abrechnen — Rechnet ein Festpreis-Projekt (Abrechnungsmodus progress, Festpreis = Budget-Betrag) bis zum angegebenen Fertigstellungsgrad ab: die Differenz zum bereits abgerechneten Anteil wird als Einmal-Vorgabe an die Abrechnung gemeldet. Nur aufwärts; 100 % rechnet den Rest exakt ab.projects.billing.triggerprojectUlid, + Rumpf
DELETE/api/v1/projects/{ulid}Eine Project löschenprojects.project.deleteulid
GET/api/v1/projects/{ulid}Eine Project lesenprojects.project.viewulid
PATCH/api/v1/projects/{ulid}Eine Project ändernprojects.project.editulid, + Rumpf
POST/api/v1/projects/{ulid}/as-templateProjekt als Vorlage sichern — Legt aus dem Projekt eine Projektvorlage an. Verlangt das Konfigurationsrecht.projects.config.manageulid, + Rumpf
POST/api/v1/projects/{ulid}/duplicateProjekt kopieren — Legt eine Kopie des Projekts an.projects.project.createulid, + Rumpf
POST/api/v1/projects/{ulid}/request-acceptanceKundenabnahme des Projekts anfordern — Fordert die Abnahme des Projekts durch den Kunden an: legt sie als pending an und benachrichtigt das Portal. Nimmt nur kind=customer.projects.project.editulid, + Rumpf
POST/api/v1/projects/{ulid}/request-feedbackFeedback-Runde beim Kunden anfordern — Legt eine Feedback-Runde (scope=feedback, title Pflicht) als offene Kunden-Abnahme an und benachrichtigt das Portal. Der Kunde gibt frei oder wünscht Änderungen; keine Wirkung auf Meilensteine oder Abrechnung. Je Titel höchstens eine offene Runde.projects.project.editulid, + Rumpf
GET/api/v1/projects/{ulid}/status-pdfProjektstatus als PDF — Statusbericht mit Marken-Briefkopf: Eckdaten, Fortschritt, Budget (nur mit Budget-/Ertrags-Recht), Meilensteine, offene Risiken und Abnahmen. Antwort application/pdf; unsichtbares Projekt 404.projects.project.viewulid
POST/api/v1/projects/{ulid}/template-syncVorlagen-Fassung übernehmen, verwerfen oder Anlage wiederholen — templateSyncMode: adopt legt die in der neueren Vorlagen-Fassung HINZUGEKOMMENEN Meilensteine, Listen und Aufgaben an (Bestehendes bleibt unberührt) · dismiss markiert die Fassung als gesehen · retry stößt eine gescheiterte Anlage aus der Vorlage erneut im Hintergrund an.projects.project.editulid, + Rumpf
GET/api/v1/task-bundlesListe der TaskBundleprojects.project.viewpage, active, q, order[name], order[createdAt], order[updatedAt]
POST/api/v1/task-bundlesEine TaskBundle anlegenprojects.config.manage+ Rumpf
DELETE/api/v1/task-bundles/{ulid}Eine TaskBundle löschenprojects.config.manageulid
GET/api/v1/task-bundles/{ulid}Eine TaskBundle lesenprojects.project.viewulid
PATCH/api/v1/task-bundles/{ulid}Eine TaskBundle ändernprojects.config.manageulid, + Rumpf
POST/api/v1/task-bundles/{ulid}/applyAufgaben-Bündel in ein Projekt laden — Lädt das Bündel in ein bestehendes Projekt (gleichnamige Listen werden gemerged).projects.project.editulid, + Rumpf

Zweckangaben, die nicht dem Standardmuster folgen, stammen unverändert aus der Schnittstellen-Beschreibung im Code.

referenz.api-projects · Gilt ab Version 0.5.4