dealsky.ioDocs
Zur App
API-Referenz

Ausschlüsse

Blacklist: Wer hier steht, wird nie kontaktiert

#

Ausschlüsse auflisten

GET/v1/exclusions
Scope read:exclusionsRecht: Leads einsehenliest

Einträge der Blacklist, neueste zuerst. type filtert nach Art (auch die älteren Arten linkedin und linkedin_company), value sucht als Teilstring im gespeicherten, normalisierten Wert (Groß/Klein egal).

Query-Parameter

  • limitintegerab 1bis 100

    Einträge pro Seite (Standard 25, höchstens 100)

  • cursorstringmax. 200 Zeichen

    Wert aus meta.next_cursor der vorigen Seite

  • typestring

    Nur Einträge dieser Art

    email domain linkedin_profile linkedin linkedin_member_id linkedin_company company_name
  • valuestringmax. 500 Zeichen

    Teilstring-Suche im Wert

Felder der Antwort
  • idstring (uuid)

    ID des Ausschlusses

  • typestring

    email, domain (E-Mail- oder Website-Domain), linkedin_profile (Profil-URL), linkedin_member_id, company_name (exakter Firmenname). Nur lesbar (ältere Einträge): linkedin (wie linkedin_profile), linkedin_company (Firmen-URL)

    email domain linkedin_profile linkedin linkedin_member_id linkedin_company company_name
  • valuestringmind. 1 Zeichenmax. 500 Zeichen

    Wird normalisiert: E-Mail und Member-ID klein, Domain ohne https:// und www. Ein LinkedIn-Profil bleibt, wie es übergeben wurde (ohne Leerzeichen am Rand).

  • reasonstring, kann null seinmax. 500 Zeichen

    Freitext, warum der Eintrag auf der Liste steht, z. B. Wettbewerber

  • created_atstring (date-time)

    Angelegt am

Mögliche Fehler

400 VALIDATION_ERROR401 INVALID_API_KEY402 PLAN_REQUIRED403 SCOPE_MISSING429 RATE_LIMITED
curl -X GET "https://api.dealsky.io/functions/v1/api/v1/exclusions" \
  -H "X-API-Key: $DEALSKY_API_KEY"
const res = await fetch("https://api.dealsky.io/functions/v1/api/v1/exclusions", {
  method: "GET",
  headers: {
    "X-API-Key": process.env.DEALSKY_API_KEY,
  },
});
const { ok, data, error } = await res.json();
import os, requests

res = requests.request(
    "GET",
    "https://api.dealsky.io/functions/v1/api/v1/exclusions",
    headers={"X-API-Key": os.environ["DEALSKY_API_KEY"]},
)
print(res.json())
Antwort 200
{
  "ok": true,
  "data": [
    {
      "id": "2a3b4c5d-6e7f-4a8b-9c0d-1e2f3a4b5c6d",
      "type": "domain",
      "value": "wettbewerber.de",
      "reason": "Wettbewerber",
      "created_at": "2026-10-18T09:12:00.000Z"
    }
  ],
  "meta": {
    "request_id": "req_7f3a…",
    "next_cursor": null,
    "has_more": false
  }
}
#

Ausschluss anlegen

POST/v1/exclusions
Scope write:exclusionsRecht: Leads anlegen/bearbeitenschreibt

Ab sofort wird niemand mehr kontaktiert, auf den der Ausschluss passt. Bereits laufende Leads, die passen, werden wie in der App aus aktiven Kampagnen genommen. Gibt es den Eintrag schon, kommt 409 mit error.details.existing_id.

Ein LinkedIn-Profil gilt als vorhanden, wenn dasselbe Profil schon als linkedin_profile oder als älterer Eintrag linkedin auf der Liste steht, in welcher Schreibweise auch immer (mit oder ohne www, Länder-Subdomain, Groß/Klein, Parameter, Unterseiten, Schrägstrich am Ende). So liest auch der Abgleich der Kampagnen die Liste. Eine Member-ID gilt ohne Groß/Klein als vorhanden.

Body

  • typestringPflicht

    email, domain (E-Mail- oder Website-Domain), linkedin_profile (Profil-URL), linkedin_member_id, company_name (exakter Firmenname)

    email domain linkedin_profile linkedin_member_id company_name
  • valuestringPflichtmind. 1 Zeichenmax. 500 Zeichen

    Wird normalisiert: E-Mail und Member-ID klein, Domain ohne https:// und www. Ein LinkedIn-Profil bleibt, wie es übergeben wurde (ohne Leerzeichen am Rand).

  • reasonstring, kann null seinmax. 500 Zeichen

    Freitext, warum der Eintrag auf der Liste steht, z. B. Wettbewerber

Mögliche Fehler

400 VALIDATION_ERROR401 INVALID_API_KEY402 PLAN_REQUIRED403 SCOPE_MISSING409 CONFLICT429 RATE_LIMITED
curl -X POST "https://api.dealsky.io/functions/v1/api/v1/exclusions" \
  -H "X-API-Key: $DEALSKY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "domain",
  "value": "https://www.wettbewerber.de",
  "reason": "Wettbewerber"
}'
const res = await fetch("https://api.dealsky.io/functions/v1/api/v1/exclusions", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.DEALSKY_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "type": "domain",
    "value": "https://www.wettbewerber.de",
    "reason": "Wettbewerber"
  }),
});
const { ok, data, error } = await res.json();
import os, requests

res = requests.request(
    "POST",
    "https://api.dealsky.io/functions/v1/api/v1/exclusions",
    headers={"X-API-Key": os.environ["DEALSKY_API_KEY"]},
    json={
        "type": "domain",
        "value": "https://www.wettbewerber.de",
        "reason": "Wettbewerber"
    },
)
print(res.json())
Antwort 201
{
  "ok": true,
  "data": {
    "id": "2a3b4c5d-6e7f-4a8b-9c0d-1e2f3a4b5c6d",
    "type": "domain",
    "value": "wettbewerber.de",
    "reason": "Wettbewerber",
    "created_at": "2026-10-18T09:12:00.000Z"
  },
  "meta": {
    "request_id": "req_7f3a…"
  }
}
#

Ausschluss entfernen

DEL/v1/exclusions/{id}
Scope write:exclusionsRecht: Leads anlegen/bearbeitenschreibt

Bereits gestoppte Leads laufen dadurch nicht automatisch wieder an.

Pfad-Parameter

  • idstring (uuid)Pflicht

    ID des Ausschlusses

Felder der Antwort
  • deletedboolean

    Immer true, wenn der Ausschluss entfernt wurde

  • idstring (uuid)

    ID des entfernten Ausschlusses

Mögliche Fehler

400 VALIDATION_ERROR401 INVALID_API_KEY402 PLAN_REQUIRED403 SCOPE_MISSING404 NOT_FOUND429 RATE_LIMITED
curl -X DELETE "https://api.dealsky.io/functions/v1/api/v1/exclusions/5b0c1e7a-3f1d-4a52-9c1e-8a7d2b6f4e10" \
  -H "X-API-Key: $DEALSKY_API_KEY"
const res = await fetch("https://api.dealsky.io/functions/v1/api/v1/exclusions/5b0c1e7a-3f1d-4a52-9c1e-8a7d2b6f4e10", {
  method: "DELETE",
  headers: {
    "X-API-Key": process.env.DEALSKY_API_KEY,
  },
});
const { ok, data, error } = await res.json();
import os, requests

res = requests.request(
    "DELETE",
    "https://api.dealsky.io/functions/v1/api/v1/exclusions/5b0c1e7a-3f1d-4a52-9c1e-8a7d2b6f4e10",
    headers={"X-API-Key": os.environ["DEALSKY_API_KEY"]},
)
print(res.json())
Antwort 200
{
  "ok": true,
  "data": {
    "deleted": true,
    "id": "2a3b4c5d-6e7f-4a8b-9c0d-1e2f3a4b5c6d"
  },
  "meta": {
    "request_id": "req_7f3a…"
  }
}