links

POST /v1/link-edits

Change or remove a target's links across the network.

Alle links Endpunkte

Authentifizierung

Senden Sie einen API-Schlüssel als Bearer-Token. Dieser Endpunkt gibt in der Spezifikation keine spezifische Berechtigung an. Versehen Sie Ihren Schlüssel daher mit den minimal erforderlichen Rechten und prüfen Sie die Antwort, anstatt Annahmen zu treffen.

Dieser Endpunkt erfordert keine Organisations-ID. Ihr Schlüssel identifiziert bereits die zugehörige Organisation, und die Antwort ist entsprechend eingeschränkt.

Ausprobieren

Ersetzen Sie alles in spitzen Klammern durch Ihre eigenen Werte und den Platzhalter für den Schlüssel durch einen Schlüssel aus Ihrem Dashboard.

curl -X POST https://api.zinndigital.com/v1/link-edits \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "target_id": <string>, "action": <string<rewrite, unlink>> }'

Angemeldet? Die API-Konsole in Ihrem Dashboard trägt automatisch Ihre echte Organisations-ID sowie Ihren eigenen Schlüssel ein und führt die Anfrage gegen die Live-API aus, sodass Sie die tatsächliche Antwort sehen können. Öffnen Sie diesen Endpunkt in der API-Konsole

Details

**The one write in this feature, and the most consequential single action in the customer surface**: it rewrites published content on every site that links to the target. It is therefore gated on its own permission, `links.edit`, which `links.view` does not imply and which the `read_only` role does not hold. **Returns `202`, never the result.** Two hundred sites is minutes of work on the boxes; holding the request open is the uncached hot-path work CLAUDE.md 2.16 forbids. Poll `getLinkEdit` and read each site's outcome from `items`. **How the change is made.** Each item is one exact `<a>` tag on one site, replaced by a whole-site string replacement. That is what makes the edit *idempotent* (the second run finds nothing), *reversible* (`undoLinkEdit` swaps the two strings) and cheap on a large site (no post content is ever read back). Only the `href` — and the text, if you supply one — changes: `rel="nofollow"`, `target` and the theme's classes are carried through byte for byte, because for a PBN operator dropping a `rel` across two hundred sites is a change to what the link *does*. **`unlink` keeps the words.** The tag is replaced by its inner HTML, so an image link leaves the image and a bold anchor leaves the bold. **A host with no managed command is `unsupported`, not failed.** this platform exposes no shell, so those sites report that per item and the rest of the network still changes.

Anfragekörper

NameTypErforderlichWas es ist
target_idstringJa
actionstring<rewrite, unlink>Ja
hrefstringNeinWhere the links should point, for a `rewrite`. **`http`/`https` or a site-relative path only** — a scheme-relative `//host` form is refused with a message telling the operator t…
anchor_textstringNeinNew visible text. Omit to keep whatever each link already says.
site_idsstring[]NeinNarrow the edit to these sites. **Omit the field entirely to change every site**; an empty array is refused, because it is a UI that failed to send a selection rather than a req…

Antwort

NameTypErforderlichWas es ist
idstringJa
target_idstringNein
target_hoststringJaThe host as it read when the edit was made. Kept as a string as well as a key, because a rewrite can empty a target of its last link and an audit line reading "edited (deleted t…
actionstring<rewrite, unlink>Ja
new_hrefstringNein
new_textstringNeinNew visible text. Empty means *keep whatever each link already says* — which is the common case, because one target's links carry many different anchors and flattening them all…
statusstring<pending, running, applied, partial, failed>Ja`partial` is the honest answer when some sites succeeded and some did not, and it exists because the other two are lies in that case: an operator's next action depends entirely…
expected_linksintegerJaWhat the operator was told would change, **recorded when they confirmed it** rather than recomputed later. The whole value of a confirmation is that it can be held up against th…
expected_postsintegerJa
expected_sitesintegerJa
undo_ofstringNeinThe edit this one reverses, if any.
undone_bystringNeinThe edit that has already reversed this one. Present so the screen offers undo once — two undos of one edit put the original change back.
created_atstringJa
finished_atstringNein
itemsLinkEditItem[]Nein

Fehler, die dieser Endpunkt zurückgeben kann

401 · 403 · 404 · 422 · 503