---
title: "Fetches the live target_url and drafts paste-ready markdown (comparison table, guide, or pitch) from a recommendation_id or a brief ({ prompt, cited_url, winner, rec_type }). Returns { draft: null, why } when the rec is wrong or already present. Never writes to the website or CMS. Never auto-publishes. Do not call complete_recommendation until the human published a fix_url."
method: POST
path: "/generate_fix"
tags: ["action"]
---

# Fetches the live target_url and drafts paste-ready markdown (comparison table, guide, or pitch) from a recommendation_id or a brief ({ prompt, cited_url, winner, rec_type }). Returns { draft: null, why } when the rec is wrong or already present. Never writes to the website or CMS. Never auto-publishes. Do not call complete_recommendation until the human published a fix_url.

`POST /generate_fix`

## Request

- Base URL: `https://scope.online/v1`
- URL: `https://scope.online/v1/generate_fix`
- Auth: HTTP bearer

## Request body

- object
  - `recommendation_id` string, uuid: Owned recommendation ID
  - `business_id` string, uuid: Required when drafting from a brief instead of a recommendation
  - `prompt` string: Losing prompt from a citation brief
  - `cited_url` string: URL engines already cite
  - `winner` string: Named alternative from the losing answer
  - `rec_type` string: entity_disambiguation | faq | comparison_table | on_site_guide | ugc_reddit | ugc_youtube | ugc_linkedin | entity_wikidata | crawler_access | quotable_proof | information_gain | extractable_lead | content_freshness | off_site_target
  - `artifact_kind` string: Fix Plan v2 artifact to draft (defaults to the move's own artifact_kind): entity_sentence | first_40_words | fanout_h2_set | vs_table | price_block | gbp_description | review_request_script | review_response | nap_diff_table | robots_diff | redirect_map | youtube_outline | roundup_pitch_email | g2_blurb | schema_sameas_jsonld | faq_visible_plus_schema | original_data_brief | reddit_reply | linkedin_post
  - `refresh` boolean: Regenerate even when a cached artifact exists

## Response `200`

Tool payload. `meta` holds tldr, next[], pagination cursors, and request_id.

## Other responses

- `400`: Invalid request.
- `401`: Missing or invalid API key.
- `402`: Quota or over-committed.
- `403`: Missing scope or Growth required.
- `404`: Unknown tool or resource.
- `405`: Wrong HTTP method for this tool.
- `429`: Rate limited (10 action calls / 60s per key; reads are higher).
- `503`: Temporary infrastructure limit — retry with retry_after.

---

[API](https://skmtc.dev/scope/apis/scope-api-2.md) · [All operations](https://skmtc.dev/scope/apis/scope-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/scope/apis/scope-api-2/revisions/2f01893f6e5c?raw)
