links

POST /v1/link-edits

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

Alle links-eindpunten

Authenticatie

Stuur een API-sleutel mee als bearer token. Dit eindpunt vermeldt geen specifieke toestemming in de specificatie, dus geef uw sleutel de minimale rechten die nodig zijn en controleer het antwoord in plaats van zomaar wat aan te nemen.

Dit eindpunt vereist geen organisatie-id. Uw sleutel identificeert al de organisatie waartoe deze behoort, en het antwoord is hierop afgestemd.

Probeer het

Vervang alles tussen punthaakjes door uw eigen waarden en de sleutelplaatsvervanger door een sleutel uit uw 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>> }'

Ingelogd? De API-console in je dashboard vult je echte organisatie-id en je eigen sleutel in, en voert het verzoek uit tegen de live API zodat je de daadwerkelijke respons kunt zien. Open dit eindpunt in de API-console

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.

Aanvraaglichaam

NaamTypeVerplichtWat dit is
target_idstringJa
actionstring<rewrite, unlink>Ja
hrefstringNeeWhere 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_textstringNeeNew visible text. Omit to keep whatever each link already says.
site_idsstring[]NeeNarrow 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…

Reactie

NaamTypeVerplichtWat dit is
idstringJa
target_idstringNee
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_hrefstringNee
new_textstringNeeNew 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_ofstringNeeThe edit this one reverses, if any.
undone_bystringNeeThe 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_atstringNee
itemsLinkEditItem[]Nee

Fouten die dit eindpunt kan retourneren

401 · 403 · 404 · 422 · 503