API-Dokumentation

Verbinde Projekte und Gespräche mit deinem eigenen System. Hier findest du die Anleitung für deine KI sowie alle Endpunkte und kopierbare Beispiele für eigene Anwendungen.

KI-Verknüpfung

Was du mit deiner KI auf Projektify tun kannst

Mit Claude, ChatGPT, Microsoft Copilot oder Gemini kannst du passende Webprojekte suchen und vergleichen, eigene Inserate vorbereiten und deine eigenen Gespräche bearbeiten. Dafür braucht die gewählte KI-Umgebung ausführbare API-Werkzeuge und deine freigegebenen Rechte.

Ein normaler Chat allein ist nicht verbunden. Du kannst ihm stattdessen eigene Projektdaten oder bereinigte API-Ergebnisse manuell geben und damit Texte, Vergleiche oder Antworten vorbereiten. Das ist Textunterstützung ohne Live-Zugriff.

Zugang beantragen und Schlüssel abholen

  1. Melde dich bei Projektify an und beantrage unter KI & API einen Token mit den benötigten Rechten.
  2. Warte auf die manuelle Freigabe. Jeder Token-Antrag wird einzeln geprüft; die Freigabemail enthält den Link zu deinem API-Bereich.
  3. Hole den vollständigen Schlüssel dort mit deinem eigenen Account einmalig ab. Die Abholung ist sieben Tage möglich. Speichere ihn direkt geschützt; er wird danach nicht erneut angezeigt.

Diese Website zeigt die Umgebung https://projektify-api.de/public/api/v1. Staging-Schlüssel und Produktionsschlüssel gehören jeweils nur zu ihrer Umgebung. Projekte und Gespräche werden an den jeweiligen KI-Anbieter übertragen, wenn du sie über dessen Anbindung abrufst.

Deine KI auswählen und einrichten

Die folgenden Wege nutzen die bestehende API. Tarif, Werkzeuge und Organisationsfreigaben müssen in deinem Konto verfügbar sein. Die Lesetests sind Schritte für deine Einrichtung; ein erfolgreicher Test direkt in den vier Anbieteroberflächen wird hier nicht behauptet.

ChatGPT: privates Custom GPT mit Actions

Voraussetzung: Ein ChatGPT-Konto mit GPT-Erstellung und Actions; gegebenenfalls muss dein Workspace den API-Zugriff erlauben.

  1. Erstelle ein eigenes privates GPT. Lade das ChatGPT-Einstiegsschema herunter und füge dessen Inhalt im Actions-Schemafeld ein. Auf Staging ist der Download geschützt; importiere die Datei manuell. Das Einstiegsschema enthält nur Leseaktionen.
  2. Wähle für die Action API-Key-Authentifizierung mit Bearer. Hinterlege deinen vollständigen Projektify-Schlüssel ausschließlich im geschützten Schlüsselfeld. Den Zusatz Bearer setzt die Verbindung. Stelle sicher, dass der Server im Schema zur Umgebung deines Schlüssels gehört.
  3. Speichere die Arbeitsanweisung aus „Assistent speichern“. Halte das GPT privat; teile keinen Assistenten mit deinem persönlichen Schlüssel.
  4. Teste im Action-Editor zuerst getApiUser. Erwartet wird HTTP 200 mit deinem eigenen Profil. Teste danach searchProjects mit pagesize=2 und preismax=20000, sofern dein Token Suchrechte hat.
  5. Nutze anschließend „Zeig mir Webprojekte bis 20.000 €“. Wenn eine Action oder der Import fehlschlägt, prüfe die Fehlermeldung, Authentifizierung und Schema-Validierung. Der Import direkt in ChatGPT muss in deinem Konto noch geprüft werden.

Das Einstiegsschema kann Profil, Verbrauch, Angebote und eigene Gespräche lesen. Inserate und Nachrichten kann dieses Schema nicht senden oder ändern. Für Schreibfunktionen ist eine gesonderte Integration mit Vorschau und ausdrücklicher Bestätigung nötig; die vollständige OpenAPI-Datei beschreibt diese Endpunkte.

OpenAI: GPT Actions einrichten · Authentifizierung

Claude: Claude Code mit ausführbarem API-Werkzeug

Voraussetzung: Claude Code mit lokalem Projektordner, freigegebener HTTP-Ausführung und einer passenden Claude-Berechtigung. Ein normaler Claude-Chat erhält durch einen Key oder Skill allein keinen REST-Zugriff.

  1. Lege Dokumentation und OpenAPI-Datei im Arbeitsordner ab. Verwende den Einrichtungsprompt unten, um ein lokales API-Skript vorzubereiten.
  2. Lege den Projektify-Schlüssel in einem Betriebssystem-Schlüsselspeicher ab und verbinde das Skript ausdrücklich mit diesem Speicher. Der Schlüssel darf weder im Skript noch in dessen Argumenten, Ausgaben oder Chatprotokoll auftauchen.
  3. Beschränke das Werkzeug zunächst auf GET, die feste API-Basis-URL dieser Umgebung und die benötigten Endpunkte. Prüfe das Skript und erlaube die HTTP-Ausführung in deiner Umgebung.
  4. Lass zuerst GET /user ausführen: HTTP 200 und das eigene Profil sind das Testziel. Bei Suchrechten folgt GET /projects?pagesize=2&preismax=20000.
  5. Speichere den Arbeitsablauf als Projektanweisung oder unterstützten Claude Skill zusätzlich zum Werkzeug. Probiere anschließend einen Such- oder Vergleichsprompt.

Dieser Weg benötigt die lokale Einrichtung eines Skripts. Ein Remote-MCP-Anschluss wäre ein zusätzlicher Weg mit eigenem Dienst; eine solche Verbindung wird hier noch nicht als verfügbar angeboten.

Anthropic: Werkzeuge und Ausführungsrechte in Claude Code

Microsoft Copilot: eigener Copilot-Studio-Agent

Voraussetzung: Copilot Studio, passende Lizenz, Erstellerrechte und Freigaben deiner Organisation. Gemeint ist ein eigener Studio-Agent; Consumer-Copilot und GitHub Copilot werden dadurch nicht automatisch verbunden.

  1. Erstelle einen Agenten und füge ein REST-API-Tool hinzu, soweit diese Funktion für dich freigegeben ist. Microsoft kennzeichnet sie derzeit als Vorschau. Hinterlege die Projektify-OpenAPI-Beschreibung; bei diesem Import wird OpenAPI 3 in Version 2 übersetzt. Prüfe dabei Parameter und Antworten.
  2. Falls deine Umgebung einen benutzerdefinierten Connector verlangt, ist dessen Einrichtung ein zusätzlicher Schritt: Dafür braucht Microsoft eine OpenAPI-2.0-Datei. Die Projektify-Datei ist 3.0.3 und muss vorher konvertiert und geprüft werden.
  3. Richte eine persönliche geschützte Verbindung ein, die Authorization: Bearer ID|SECRET setzt. Bei einem einfachen API-Key-Headerfeld für Authorization muss der gespeicherte Wert auch Bearer enthalten. Verwende keinen gemeinsam genutzten persönlichen Schlüssel.
  4. Aktiviere zunächst nur Leseaktionen. Teste GET /user, danach bei Suchrechten eine kleine Projektsuche. Erwartet werden HTTP 200 und Daten der gewählten Umgebung.
  5. Speichere die Arbeitsanweisung im Agenten und teste „Fasse meine eigenen Projektify-Gespräche zusammen“, wenn dein Token Nachrichtenleserechte besitzt.

Microsoft: REST-API-Tools (Vorschau) · Benutzerdefinierter Connector und OpenAPI 2.0

Gemini: Anwendung mit Function Calling

Voraussetzung: Eine Gemini-gestützte Anwendung mit ausführbarem Werkzeug und gegebenenfalls eigenem Gemini-API-Zugang. Eine normale Gemini-App oder ein Gem mit Anweisungen kann allein keine beliebigen REST-Aufrufe ausführen.

  1. Beschreibe anhand der OpenAPI-Datei passende Funktionen, etwa Profil abrufen und Projekte suchen. Deine Anwendung muss vorgeschlagene Funktionsaufrufe tatsächlich ausführen und Ergebnisse an Gemini zurückgeben.
  2. Hinterlege den Projektify-Schlüssel in einem vom Werkzeug unterstützten lokalen oder serverseitigen Secret Store. Das Werkzeug setzt den Bearer-Header und erlaubt nur die feste API-URL und freigegebenen Parameter.
  3. Teste mit dem Werkzeug zuerst GET /user. Prüfe HTTP 200 und das eigene Profil; teste danach eine kleine Projektsuche, falls freigegeben.
  4. Hinterlege die Arbeitsanweisung als Systemanweisung deiner Anwendung. Probiere „Suche Projekte bis 15.000 € und zeige mir passende Treffer“ und vergleiche die Antwort mit den wirklich gelieferten Ergebnissen.

Die ausführbare Anwendung muss eingerichtet werden. Ein gespeichertes Gem kann Textaufgaben wiederverwenden, ersetzt aber diese Tool-Anbindung nicht.

Google: Function Calling und Werkzeugausführung

Einrichtungsprompt ohne Geheimnisse
Ich möchte die vorhandene Projektify API in meiner KI-Arbeitsumgebung nutzen. Verwende die Projektify-Dokumentation und das OpenAPI-Schema, die ich dir bereitstelle. Prüfe zuerst, ob du HTTP-Anfragen tatsächlich ausführen kannst. Falls ja, hilf mir, eine persönliche API-Anbindung einzurichten. Mein Schlüssel soll ausschließlich im geschützten Authentifizierungsfeld oder einem lokalen/serverseitigen Schlüsselspeicher liegen, nicht im Chat. Starte mit einem lesenden Aufruf und zeige mir danach, wie ich Projekte suchen kann. Falls dir Ausführungswerkzeuge fehlen, erkläre die passende Umgebung und bereite nur die Einrichtung vor. Sende oder ändere keine Daten ohne meine Bestätigung.

Zwei Wege, deinen Schlüssel geschützt zu hinterlegen

A – im Authentifizierungsfeld der Verbindung

Dein persönlicher Projektify-Key liegt im vorgesehenen Secret-Feld der API-Aktion oder des ausführbaren Werkzeugs. Die Verbindung setzt damit den Authorization-Header. Das ist kein Schlüssel im Chattext.

B – in einem Schlüsselspeicher

Ein eingerichteter Dienst liest den Key bei Bedarf aus einem unterstützten Secret Store, einer Betriebssystem-Keychain oder dem geschützten Credential-Speicher deiner Integration. Der Dienst muss diesen Speicher tatsächlich unterstützen; eine Umgebungsvariable ist nicht automatisch ein Keystore.

Beide Wege benötigen ausführbare Werkzeuge. Schreibe keinen Key in Prompts, URLs, öffentliche Frontends oder geteilte Assistenten. Ein zusätzlicher Modellschlüssel für OpenAI, Claude oder Gemini ist etwas anderes als dein persönlicher Projektify-Key.

Deinen Projektify-Assistenten speichern

Speichere die folgende Arbeitsanweisung in deinem privaten Custom GPT, als Claude-Projektanweisung oder unterstützten Skill, im Copilot-Studio-Agenten oder als Gemini-Systemanweisung. Ein Gem kann sie für Textaufgaben nutzen. Nicht alle Produkte akzeptieren dasselbe SKILL.md-Format. Die gespeicherte Anweisung ergänzt deine Verbindung.

Arbeitsanweisung für deinen Assistenten
Hilf mir mit meiner eingerichteten Projektify-Verbindung beim Suchen und Vergleichen von Webprojekten, beim Vorbereiten eigener Inserate und beim Bearbeiten meiner eigenen Gespräche. Nutze nur die tatsächlich verfügbaren Werkzeuge und meine freigegebenen Rechte. Erfinde keine Angebote oder Kennzahlen. Zeige mir vor dem Veröffentlichen, Ändern, Löschen oder Senden Inhalt und Ziel und warte auf meine Bestätigung. Wenn keine Verbindung vorhanden ist, erkläre das und verweise auf die Einrichtung. Zeige niemals meinen API-Key an.

Starte mit Leseaktionen. Für Veröffentlichen, Ändern, Löschen oder Senden muss deine Integration Inhalt und Ziel anzeigen und eine ausdrückliche Bestätigung abwarten. Ein Prompt ist dafür keine serverseitige Sperre. Gültige Schreibaufrufe führt die API sofort aus; es gibt keinen allgemeinen Dry-run-Modus.

Prompt-Beispiele für deine eingerichtete Verbindung

Verwende nur Aufgaben, für die dein Token Rechte besitzt. Fehlende Kennzahlen bleiben offen. Falls ein Kriterium nicht als API-Filter vorhanden ist, kann deine KI nur tatsächlich gelieferte Daten auswerten. Die Verbindung schließt keine Kaufverträge ab.

Kaufen und vergleichen

Projekte suchen
Zeig mir Webprojekte bis 20.000 € und nenne zu jedem Treffer Preis, vorhandene Kennzahlen und Link.

Angebote vergleichen
Vergleiche diese drei Projekte. Markiere fehlende Kennzahlen und nenne offene Fragen.

Anfrage vorbereiten
Formuliere zu diesem Projekt eine Anfrage zu Umsatznachweisen und laufenden Kosten. Zeige sie mir vor dem Senden.

Verkaufen und aktualisieren

Inserat vorbereiten
Erstelle aus meinen Angaben einen Inseratsentwurf. Frage nach fehlenden Pflichtangaben und erfinde keine Zahlen.

Änderung vorbereiten
Bereite die Preisänderung meines Projekts auf 11.500 € vor und warte auf meine Freigabe.

Eigene Gespräche bearbeiten

Gespräche zusammenfassen
Fasse die zuletzt abgerufenen Nachrichten meiner eigenen Gespräche zusammen und zeige mir, wo eine Antwort sinnvoll ist.

Antwort entwerfen
Entwirf für dieses Gespräch eine Antwort auf Grundlage meiner Angaben. Sende noch nichts.

Rechte und Kontrolle behalten

Beantrage nur die benötigten Rechte. Eigene Gespräche und Inserate bleiben an deinen Account gebunden. Du kannst einen einzelnen Token pausieren oder widerrufen; die anderen Tokens bleiben unverändert. Alle Schlüssel deines Accounts teilen sich die Kontingente. Technische Regeln findest du unter Kontingente & Grenzen.

Wenn die Verbindung nicht funktioniert

Keine ausführbare Verbindung
Ein normaler Chat, Skill oder gespeicherter Prompt genügt nicht. Wähle oben eine geeignete Umgebung und richte ein API-Werkzeug ein.
Schlüssel ungültig – HTTP 401
Prüfe den vollständigen Schlüssel, die Umgebung und den Bearer-Header. Zeige den Schlüssel dabei nicht im Chat. Beantrage bei Verlust einen neuen Token.
Zugriff fehlt – HTTP 403
Prüfe Freigabe, Ablauf, Pausierung, Widerruf und die für die Aktion nötigen Rechte im API-Bereich. Prüfe auch Organisationsregeln des KI-Anbieters.
Limit erreicht – HTTP 429
Beachte die Resetzeit und gegebenenfalls Retry-After. Starte keine automatische Wiederholungsschleife. Verbrauch und verbleibende Kontingente stehen in deinem API-Bereich.

API-Programmierung

Ab hier findest du Schlüssel, Endpunkte, Berechtigungen und Beispiele für die direkte Nutzung der API.

Zugang & Schlüssel

Melde dich bei Projektify an und beantrage in deinem API-Bereich die Käufer- und/oder Verkäuferberechtigung. Nach der manuellen Freigabe erhältst du eine E-Mail mit einem Link zur einmaligen Schlüsselabholung. Melde dich mit deinem eigenen Account an und bestätige „Schlüssel einmalig abholen“. Kopiere den einmal angezeigten Schlüssel und speichere ihn sicher. Die Abholung ist sieben Tage möglich. Weitere eigene Schlüssel beantragst du in deinem API-Bereich. Jeder Token-Antrag benötigt eine eigene Admin-Freigabe.

Sende den vollständigen Schlüssel als Authorization: Bearer ID|SECRET. Er gehört auf deinen Server oder in einen sicheren Schlüsselspeicher. Trage ihn nicht in URLs, öffentliches Frontend oder öffentliche KI-Prompts ein. Der API-Zugang nutzt keine Website-Session-Cookies.

Basis-URL für deine Anfragen

https://projektify-api.de/public/api/v1

Die Beispiele verwenden automatisch die API dieser Website. Deinen Schlüssel holst du nach der Freigabe in deinem API-Bereich ab.

Die folgenden Befehle sind für Bash / eine kompatible Shell. Ersetze die Platzhalter durch deinen Schlüssel und echte Objekt-IDs. Die Beispiele werden hier nicht ausgeführt.

Variablen für die Beispiele
export PROJEKTIFY_TOKEN='DEIN_VOLLSTÄNDIGER_TOKEN'
export PROJECT_ID='DEINE_PROJEKT_ID'
export CONVERSATION_ID='DEINE_GESPRAECHS_ID'

Alle Endpunkte

Alle Pfade beziehen sich auf die angezeigte Basis-URL. Mehrere Berechtigungen in einer Zeile sind Alternativen; die Berechtigung muss zu deiner tatsächlichen Rolle passen.

Endpunkte der Public API v1
Methode / PfadAktionBerechtigung
GET
/usage
Eigenen accountweiten API-Verbrauch und Restkontingente abrufenGültiger freigegebener Schlüssel
GET
/user
Eigenes API-Benutzerprofil abrufenGültiger freigegebener Schlüssel
GET
/projects
Projekte suchen und auflistenbuyer:projects:search
POST
/projects
Projekt erstellenseller:projects:create
GET
/projects/{id}
Projekt lesenbuyer:projects:read
PATCH
/projects/{id}
Eigenes Projekt aktualisierenseller:projects:update
DELETE
/projects/{id}
Eigenes Projekt löschenseller:projects:delete
GET
/startups
Aktive Startups abrufenbuyer:startups:read
POST
/startups
Startup zur Bestätigung einreichenseller:startups:create
POST
/files/project/{id}
Datei für ein eigenes Projekt hochladenseller:files:write
POST
/files/mail/{id}
Datei an eine eigene Projektanfrage anhängenseller:files:write
DELETE
/files
Zugeordnete Projektdatei löschenseller:files:write
POST
/projects/{id}/requests
Neue Projektanfrage mit erster Nachrichtbuyer:projects:request
GET
/conversations
Eigene Gespräche auflistenbuyer:messages:read oder seller:messages:read
GET
/conversations/{id}
Eigenes Gespräch abrufenbuyer:messages:read oder seller:messages:read
GET
/conversations/{id}/messages
Nachrichten eines eigenen Gesprächs abrufenbuyer:messages:read oder seller:messages:read
POST
/conversations/{id}/messages
Im eigenen Gespräch antwortenbuyer:messages:write oder seller:messages:write

Projekte bearbeiten oder löschen und Dateien verwalten: nur im erlaubten eigenen Kontext. Gespräche und Nachrichten: nur als beteiligter Käufer oder Verkäufer. Die OpenAPI-Spezifikation enthält die vollständigen Parameter und Antwortschemata.

Berechtigungen gezielt auswählen

Ein Schlüssel kann weniger Berechtigungen besitzen als dein freigegebener Account. Wähle nur die Funktionen, die deine Anwendung tatsächlich braucht.

Käufer

  • Projektdetails lesen

    buyer:projects:read
  • Projekte suchen

    buyer:projects:search
  • Ein Projekt anfragen

    buyer:projects:request
  • Eigene Käufergespräche lesen

    buyer:messages:read
  • In eigenen Käufergesprächen antworten

    buyer:messages:write
  • Aktive Startups lesen

    buyer:startups:read

Verkäufer

  • Ein Projekt einstellen

    seller:projects:create
  • Eigene Projekte bearbeiten

    seller:projects:update
  • Eigene Projekte löschen

    seller:projects:delete
  • Eigene Verkäufergespräche lesen

    seller:messages:read
  • In eigenen Verkäufergesprächen antworten

    seller:messages:write
  • Ein Startup einreichen

    seller:startups:create
  • Dateien im erlaubten Kontext verwalten

    seller:files:write

Kontingente & technische Grenzen

Standardkontingente der Projektify API
AktionStandardlimitZeitfenster
Alle API-Anfragen2.0001 Tag
Alle API-Anfragen6060 Sekunden
Alle API-Anfragen101 Sekunde
Projekte suchen1001 Tag
Projektdetails lesen5001 Tag
Neue Projektanfragen21 Tag
Neue Projekte einstellen5Rollierende 168 Stunden
Gesprächslisten abrufen3001 Tag
Gespräche / Nachrichten lesen5001 Tag
Neue Nachrichten senden1001 Tag

Alle Schlüssel eines Kontos teilen sich diese Kontingente. Ein Tagesfenster endet um Mitternacht in Berlin; gleitende und rollierende Fenster geben Plätze nach und nach frei. Erfolgreiche Projektanfragen, Projekterstellungen und Nachrichten verbrauchen das jeweilige Aktionskontingent. Fehlgeschlagene Versuche können weiterhin zum technischen Gesamtkontingent zählen.

Individuell freigegebene Limits können abweichen. Den tatsächlichen Verbrauch und deine verbleibenden Kontingente findest du unter deinem API-Bereich. Für höhere Limits sprich Projektify über Kontakt an.

  • Listen: page von 1 bis 1000, pagesize von 1 bis 50; Standard 25.
  • Projektfilter umfassen beispielsweise preismin, preismax, projektkategorien, projekttechnologien und userid. Mehrfachwerte werden mit Semikolon getrennt. Texte und Sonderzeichen als URL-Parameter kodieren.
  • Die Projektsuche unterstützt q mit höchstens 150 Zeichen, zum Beispiel „automatisiertes Campingportal“. Sie wird ab 20 aktiven, vollständig klassifizierten Projekten und bei aktivierter Freischaltung angeboten. natural_search enthält die erkannten Filter, Hinweise und die globale Freischaltzahl. Die zusätzlichen Filter shorttraits, shorttopic und shorttype verwenden die kontrollierten IDs. Zwei Eigenschaften in shorttraits werden mit Semikolon getrennt und müssen beide zutreffen.
  • Die gesamte Anfrage darf höchstens 1 MiB groß sein, auch bei Datei-Uploads.
  • Neue Anfragen und Nachrichten verwenden ausschließlich das Feld text: nicht leer, Klartext ohne HTML, höchstens 10.000 Zeichen. Nachrichtenanhänge können gelesen werden; der Nachrichten-Endpunkt lädt keine Anhänge hoch.
  • Bei der Neuanlage gehören project_summary_trait, project_models, project_function und project_usp zusammen. Bei Änderungen bleiben ausgelassene Angaben erhalten. Mit project_classification_version: 2 übergibst du zusätzlich eine oder zwei geordnete Eigenschaften in project_short_traits, das genaue Thema in project_short_topic und gegebenenfalls project_short_type. Die erste Eigenschaft entspricht project_summary_trait. Die kontrollierten Auswahlwerte liefert /projects/classification unter der Backend-Basisadresse.
  • Der IP-Schutz begrenzt zusätzlich auf 600 Anfragen pro Minute, auch ohne gültige Anmeldung.

Temporäre Drosselung

Mehr als 30 wiederholte Abrufe desselben Objekts oder mehr als 50 Projektsuchen innerhalb von fünf Minuten lösen eine feste fünfminütige Pause aus. Alle Schlüssel desselben Accounts werden gemeinsam betrachtet. Auffällige Nutzung kann außerdem zur manuellen Prüfung markiert werden.

Automatisierte Massenzugriffe und Suchbursts werden begrenzt. Hohe Nutzung allein führt zu einem Prüfhinweis, nicht zu einer automatischen dauerhaften Kontosperre. Für höhere Kontingente kontaktiere Projektify.

Kopierbare Beispiele

Anfragen, Nachrichten und Inserate verändern echte Daten. Prüfe vor dem Ausführen Umgebung, IDs und Inhalt. Die JSON-Antworten sind gekürzte Illustrationen; Beispiel-IDs sind Platzhalter.

2. Ein Projekt lesen

Berechtigung: buyer:projects:read

Ersetze PROJECT_ID durch eine tatsächlich gefundene project_id. Die Beispiel-ID 12345 ist kein zugesichertes vorhandenes Projekt.

2. Ein Projekt lesen · cURL
curl --fail-with-body \
  --request GET \
  --header "Authorization: Bearer $PROJEKTIFY_TOKEN" \
  --header "Accept: application/json" \
  "https://projektify-api.de/public/api/v1/projects/$PROJECT_ID"

Erfolg: HTTP 200 · Antwortauszug

2. Ein Projekt lesen · Antwortauszug
{
  "project_id": 12345,
  "project_title": "Beispiel-Webprojekt",
  "project_price": 12000
}

3. Das Projekt anfragen

Verändert echte Daten

Berechtigung: buyer:projects:request

Dies erstellt eine echte Anfrage mit erster Nachricht. Nicht das eigene Projekt anfragen. Übernimm conversation.conversation_id aus der Antwort.

3. Das Projekt anfragen · cURL
curl --fail-with-body \
  --request POST \
  --header "Authorization: Bearer $PROJEKTIFY_TOKEN" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --data '{
  "text": "Ich interessiere mich für das Projekt. Kannst du mir mehr zu den laufenden Abläufen sagen?"
}' \
  "https://projektify-api.de/public/api/v1/projects/$PROJECT_ID/requests"

Erfolg: HTTP 201 · Antwortauszug

3. Das Projekt anfragen · Antwortauszug
{
  "conversation": {
    "conversation_id": "BEISPIEL_GESPRAECH",
    "project_id": 12345,
    "role": "buyer",
    "message_count": 1
  },
  "message": {
    "sender_role": "buyer",
    "text": "Ich interessiere mich für das Projekt. Kannst du mir mehr zu den laufenden Abläufen sagen?"
  }
}

4. Eigene Gespräche auflisten

Berechtigung: buyer:messages:read oder seller:messages:read

Es reicht die Berechtigung für deine tatsächliche Rolle im Gespräch. Fremde Gespräche sind nicht sichtbar.

4. Eigene Gespräche auflisten · cURL
curl --fail-with-body \
  --request GET \
  --header "Authorization: Bearer $PROJEKTIFY_TOKEN" \
  --header "Accept: application/json" \
  "https://projektify-api.de/public/api/v1/conversations?page=1&pagesize=10"

Erfolg: HTTP 200 · Antwortauszug

4. Eigene Gespräche auflisten · Antwortauszug
{
  "data": [],
  "total": 0,
  "page": 1,
  "pagesize": 10
}

5. Nachrichten lesen

Berechtigung: buyer:messages:read oder seller:messages:read

Ersetze CONVERSATION_ID durch die Kennung aus einer Anfrage oder deiner Gesprächsliste.

5. Nachrichten lesen · cURL
curl --fail-with-body \
  --request GET \
  --header "Authorization: Bearer $PROJEKTIFY_TOKEN" \
  --header "Accept: application/json" \
  "https://projektify-api.de/public/api/v1/conversations/$CONVERSATION_ID/messages?page=1&pagesize=10"

Erfolg: HTTP 200 · Antwortauszug

5. Nachrichten lesen · Antwortauszug
{
  "data": [],
  "total": 0,
  "page": 1,
  "pagesize": 10
}

6. Im Gespräch antworten

Verändert echte Daten

Berechtigung: buyer:messages:write oder seller:messages:write

Klartext, höchstens 10.000 Zeichen, kein HTML. Die Antwort wird nur im eigenen aktiven Gespräch gesendet.

6. Im Gespräch antworten · cURL
curl --fail-with-body \
  --request POST \
  --header "Authorization: Bearer $PROJEKTIFY_TOKEN" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --data '{
  "text": "Danke für deine Nachricht. Hier sind die Informationen zum Projekt."
}' \
  "https://projektify-api.de/public/api/v1/conversations/$CONVERSATION_ID/messages"

Erfolg: HTTP 201 · Antwortauszug

6. Im Gespräch antworten · Antwortauszug
{
  "message_id": "BEISPIEL_NACHRICHT",
  "conversation_id": "BEISPIEL_GESPRAECH",
  "sender_role": "seller",
  "is_mine": true,
  "text": "Danke für deine Nachricht. Hier sind die Informationen zum Projekt.",
  "attachments": []
}

7. Ein Projekt einstellen

Verändert echte Daten

Berechtigung: seller:projects:create

Dies erstellt ein echtes Inserat. Passe die Beispieldaten an dein eigenes Webprojekt an. Aus Kompatibilitätsgründen ist der Erfolgsstatus 200; die Antwort ist ein Array mit einem Projekt.

7. Ein Projekt einstellen · cURL
curl --fail-with-body \
  --request POST \
  --header "Authorization: Bearer $PROJEKTIFY_TOKEN" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --data '{
  "project_title": "Beispiel-Webprojekt: Software für Terminplanung",
  "project_text": "<p>Ein Webprojekt mit wiederkehrenden Nutzern und dokumentierten Abläufen.</p>",
  "date_founded": "2025-01-15 12:00:00",
  "project_url": "https://example.org",
  "project_verkaufsgrund": "Neuer Fokus",
  "project_kategorie": "Webseite",
  "project_art": "Ertragsprojekt",
  "project_typ": "Webprojekt",
  "project_branche": "EDV / IT",
  "project_summary_trait": "established",
  "project_models": [
    "saas_software"
  ],
  "project_function": "Termine für kleine Teams organisieren",
  "project_usp": "Einfacher Einstieg mit klaren Abläufen",
  "project_data_traffic": 1000,
  "project_data_umsatz": 500,
  "project_data_kosten": 100,
  "project_data_weekly_time_needed": 2,
  "project_data_gewinn": 400,
  "project_main_image": "",
  "project_all_images": [],
  "project_tags_technologien": "PHP;Laravel",
  "project_adult_version": false,
  "project_price": 12000,
  "project_verhandelbar": true
}' \
  "https://projektify-api.de/public/api/v1/projects"

Erfolg: HTTP 200 · Antwortauszug

7. Ein Projekt einstellen · Antwortauszug
[
  {
    "project_id": 12345,
    "project_title": "Beispiel-Webprojekt: Software für Terminplanung",
    "project_price": 12000
  }
]

8. Das eigene Projekt bearbeiten

Verändert echte Daten

Berechtigung: seller:projects:update

Nur eigene Projekte bearbeiten. Nicht genannte Felder bleiben erhalten. Die vier Zusammenfassungsfelder müssen bei Änderungen gemeinsam gültig gesendet werden.

8. Das eigene Projekt bearbeiten · cURL
curl --fail-with-body \
  --request PATCH \
  --header "Authorization: Bearer $PROJEKTIFY_TOKEN" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --data '{
  "project_price": 11500,
  "project_verhandelbar": true
}' \
  "https://projektify-api.de/public/api/v1/projects/$PROJECT_ID"

Erfolg: HTTP 200 · Antwortauszug

8. Das eigene Projekt bearbeiten · Antwortauszug
[
  {
    "project_id": 12345,
    "project_price": 11500,
    "project_verhandelbar": true
  }
]

9. Den eigenen Verbrauch abrufen

Berechtigung: Gültiger freigegebener Schlüssel

Jede gültige freigegebene Berechtigung reicht. Diese API-Abfrage zählt selbst; die Verbrauchsanzeige auf der Website zählt nicht.

9. Den eigenen Verbrauch abrufen · cURL
curl --fail-with-body \
  --request GET \
  --header "Authorization: Bearer $PROJEKTIFY_TOKEN" \
  --header "Accept: application/json" \
  "https://projektify-api.de/public/api/v1/usage"

Erfolg: HTTP 200 · Antwortauszug

9. Den eigenen Verbrauch abrufen · Antwortauszug
{
  "timezone": "Europe/Berlin",
  "buckets": [
    {
      "key": "project_reads_per_day",
      "used": 10,
      "limit": 500,
      "remaining": 490,
      "disabled": false,
      "reset_at": "2026-10-13T00:00:00+02:00"
    }
  ]
}

Fehler & Wiederholungen

HTTPBedeutung / nächster Schritt
400Ungültiger Parameter oder ungültige Datei-URL.
401Schlüssel fehlt, ist ungültig, abgelaufen oder widerrufen; Session-Cookies sind kein API-Login.
403Account, API-Freigabe, Berechtigung oder pausierter Schlüssel erlaubt die Aktion nicht.
404Das Objekt fehlt oder ist für diese Rolle / diesen Schlüssel nicht sichtbar.
409Konflikt, etwa eine Anfrage an das eigene Projekt oder ein inaktives Gespräch.
413Die Anfrage überschreitet die zulässige Größe von 1 MiB.
422Die Eingabe ist ungültig oder enthält nicht erlaubte Felder.
429Ein Kontingent oder eine temporäre Drosselung wurde erreicht. Retry-After beachten.
500Unerwarteter Fehler. Schreibende Anfragen nicht blind erneut senden; zuerst das Ergebnis prüfen.

Bei Kontingentfehlern liefert die API Retry-After und Angaben wie X-RateLimit-Limit, X-RateLimit-Remaining und X-RateLimit-Reset. Eine temporäre Drosselung liefert temporary_rate_limit und einen Rücksetzzeitpunkt. Warte mindestens die angegebene Zeit.

Plane Abrufe mit Abstand. Leere Ergebnisse sind kein Anlass für eine schnelle Endlosschleife. Prüfe nach einem unklaren Schreibfehler zuerst, ob das Projekt oder die Nachricht schon existiert.

API-Zugang und Verbrauch in deinem API-Bereich →