# RankSpot > Use the RankSpot Articles API to programmatically generate, schedule, and publish SEO-optimized blog articles to your connected website. ## Docs - [Delete an article](https://rankspot.ai/docs/api-reference/articles/delete-an-article.md): Permanently deletes an article. This action cannot be undone. Associated topic and keyword links are preserved. - [Get an article](https://rankspot.ai/docs/api-reference/articles/get-an-article.md): Returns a single article including its full `contentHtml`. Articles are identified by UUID. - [List articles](https://rankspot.ai/docs/api-reference/articles/list-articles.md): Returns a paginated list of articles in your workspace. Filter by `status` or `categoryId`. The `contentHtml` field is omitted from list responses to keep payloads small — fetch a single article by ID to get the full HTML content. - [Update an article](https://rankspot.ai/docs/api-reference/articles/update-an-article.md): Update metadata such as `title`, `description`, `slug`, `coverImageUrl`, or `categoryId`. The `slug` must be unique within your workspace. Article content and status are managed by RankSpot and cannot be changed via the API. - [Archive a backlink](https://rankspot.ai/docs/api-reference/backlinks/archive-a-backlink.md): Soft-deletes a backlink by setting its archived date. Archived backlinks are excluded from the default list but can be retrieved with `type=archived`. Use `/unarchive` to restore. - [List backlinks](https://rankspot.ai/docs/api-reference/backlinks/list-backlinks.md): Returns a paginated list of backlinks. Use `type` to switch between competitor backlinks (default), your own backlinks, or archived ones. Combine `type=competitors` with `competitorId` to scope results to a single competitor. Filter by `domainFrom` substring to search for a specific linking domain. - [Unarchive a backlink](https://rankspot.ai/docs/api-reference/backlinks/unarchive-a-backlink.md): Restores a previously archived backlink so it appears in the default list again. - [Update backlink status](https://rankspot.ai/docs/api-reference/backlinks/update-backlink-status.md): Mark a backlink as processed or new. Use this to track which competitor backlink opportunities you have already acted on. - [Create a category](https://rankspot.ai/docs/api-reference/categories/create-a-category.md): Creates a new category in your workspace. Category names must be unique within a workspace. A default color is assigned automatically. - [Delete a category](https://rankspot.ai/docs/api-reference/categories/delete-a-category.md): Permanently deletes a category. Topics and articles that were assigned to this category will have their `categoryId` set to null. - [List categories](https://rankspot.ai/docs/api-reference/categories/list-categories.md): Returns a paginated list of all categories in your workspace, ordered by creation date descending. - [Update a category](https://rankspot.ai/docs/api-reference/categories/update-a-category.md): Rename a category. The new name must be unique within the workspace. - [Add a competitor](https://rankspot.ai/docs/api-reference/competitors/add-a-competitor.md): Adds a competitor domain to your workspace. After adding, RankSpot will begin discovering keywords and backlinks for this competitor on the next background sync — results will not appear immediately. - [Delete a competitor](https://rankspot.ai/docs/api-reference/competitors/delete-a-competitor.md): Permanently removes a competitor from your workspace. Associated keywords and backlinks that were discovered for this competitor will have their `competitorId` set to null but are otherwise preserved. - [List competitors](https://rankspot.ai/docs/api-reference/competitors/list-competitors.md): Returns a paginated list of competitor domains tracked in your workspace, ordered by creation date descending. - [Archive a forum opportunity](https://rankspot.ai/docs/api-reference/forum-opportunities/archive-a-forum-opportunity.md): Soft-deletes the forum opportunity by setting its archived date. Archived items are excluded from the list endpoint. - [Create a forum opportunity](https://rankspot.ai/docs/api-reference/forum-opportunities/create-a-forum-opportunity.md): Adds a forum thread or community post as a link-building opportunity. The `url` must be unique per workspace — if the same URL is submitted again, the existing record is returned unchanged (idempotent). Optionally associate the opportunity with a tracked competitor via `competitorId`. - [List forum opportunities](https://rankspot.ai/docs/api-reference/forum-opportunities/list-forum-opportunities.md): Returns a paginated list of forum opportunities. Archived items are never included. Filter by `status` (comma-separated or repeated: `?status=new,processed`) or by `competitorId`. - [Update a forum opportunity](https://rankspot.ai/docs/api-reference/forum-opportunities/update-a-forum-opportunity.md): Updates the `status` of a forum opportunity. Set to `processed` once you have engaged with the thread, or back to `new` to requeue it. - [Add keywords](https://rankspot.ai/docs/api-reference/keywords/add-keywords.md): Adds one or more keywords to your workspace. Duplicates are silently skipped. Returns the count of newly inserted keywords. - [Archive a keyword](https://rankspot.ai/docs/api-reference/keywords/archive-a-keyword.md): Soft-deletes a keyword by setting its archived date. Archived keywords are excluded from the default list but can be retrieved with `type=archived`. Use `/unarchive` to restore. - [Get cluster keywords](https://rankspot.ai/docs/api-reference/keywords/get-cluster-keywords.md): Returns keywords that are semantically similar to the given seed keyword. Useful for grouping related keywords under a single content topic. Returns an empty array if the seed keyword has not been semantically indexed yet. - [List keywords](https://rankspot.ai/docs/api-reference/keywords/list-keywords.md): Returns a paginated list of keywords. By default, archived keywords are excluded (`type=all`). Filter by `type` to view planned, processed, new, or archived keywords. Filter by `keyword` substring or `competitorId`. Sort by any scored field. - [Unarchive a keyword](https://rankspot.ai/docs/api-reference/keywords/unarchive-a-keyword.md): Restores a previously archived keyword so it appears in the default list again. - [Archive a question](https://rankspot.ai/docs/api-reference/people-also-ask/archive-a-question.md): Soft-deletes the question by setting its archived date. Archived questions are excluded from the list endpoint. - [List questions](https://rankspot.ai/docs/api-reference/people-also-ask/list-questions.md): Returns a paginated list of "People also ask" questions discovered from search results for your tracked keywords. Questions are auto-populated by RankSpot — they cannot be created via the API. Archived questions are never returned. Filter by `status` to separate new from already-processed questions. - [Update a question](https://rankspot.ai/docs/api-reference/people-also-ask/update-a-question.md): Updates the `status` of a question. Mark it `processed` once you have used or addressed the question (e.g. added it as an FAQ in an article), or set it back to `new` to reconsider it. - [Get Search Console performance data](https://rankspot.ai/docs/api-reference/search-console/get-search-console-performance-data.md): Returns clicks, impressions, CTR, and average position from Google Search Console for your connected property. - [Create a topic](https://rankspot.ai/docs/api-reference/topics/create-a-topic.md): Creates a new content topic in your workspace. Optionally link existing keywords via `keywordIds` and assign a category via `categoryId`. Topics are appended to the end of the position-ordered list. - [Delete a topic](https://rankspot.ai/docs/api-reference/topics/delete-a-topic.md): Permanently deletes a topic. If an article was generated from this topic, the article is preserved but its `topicId` link is removed. - [Generate an article for a topic](https://rankspot.ai/docs/api-reference/topics/generate-an-article-for-a-topic.md): Triggers AI article generation for a topic. The topic must have `status: "planned"`. Generation is asynchronous — poll `GET /articles` or `GET /topics/:id` to check when the article appears. Returns a `jobId` you can use to track the job. Respects your plan's article generation limit. - [Get a topic](https://rankspot.ai/docs/api-reference/topics/get-a-topic.md): Returns a single topic by ID, including its linked keywords and the ID of the generated article (if one exists). - [List topics](https://rankspot.ai/docs/api-reference/topics/list-topics.md): Returns a paginated list of topics ordered by position then creation date. Filter by `status` (`planned`, `generating`, `generated`), `categoryId`, or a `search` substring that matches the title or description. - [Update a topic](https://rankspot.ai/docs/api-reference/topics/update-a-topic.md): Updates a topic's title, description, additional instructions, category, or linked keywords. Passing `keywordIds` replaces the full set of linked keywords. Only topics with `status: "planned"` can be updated — topics that are generating or have already been generated are locked. - [Introduction](https://rankspot.ai/docs/index.md): Welcome to your project ## OpenAPI Specs - [docs-json](https://api.rankspot.ai/docs-json) ## Optional - [Blog](https://www.rankspot.ai/blog)