Skip to main content

Cloud Stacks

The Cloud Stacks API allows users to effortlessly create, build, and deploy AI-generated content optimized for SEO purposes. The platform facilitates seamless content creation, automatically indexing and publishing content to multiple sites.

Updated over 2 months ago


Authentication

All API requests require Bearer token authorization:

Authorization: Bearer <API_TOKEN>

Cloud Stack Status Flow

  • PendingGeneratingGeneratedPublishingPublished

  • Unpublished: Removed after publication

Provider Status:

  • HTML_CREATED: Publishing content

  • PUBLISHED: Successfully published

  • PUBLISHING_FAILED: Failed to publish

  • INDEXING: Indexation in progress

  • INDEXED: Published and indexed successfully

  • INDEXER_SYNC_FAILED: Indexing failed

  • NOT_INDEXED: Could not index content


Creating a Cloud Stack

Create a new Cloud Stack associated with either a Knowledge Graph or OTTO Project.

Endpoint:

POST https://sa.searchatlas.com/api/cg/v1/cloud-stack-contents/

Payload Example:

{ "target_url": "https://example.com/about-us/", "keywords": ["SEO"], "knowledge_graph": "knowledge_graph_id" // Alternatively, "otto_project": 267 }

Building Cloud Stack Content

Trigger content generation via AI.

Endpoint:

POST https://sa.searchatlas.com/api/cg/v1/cloud-stack-contents/:cloud_stack_id/build/

Deploying Cloud Stack Content

Deploy content to specified providers.

Endpoint:

POST https://sa.searchatlas.com/api/cg/v1/cloud-stack-contents/:cloud_stack_id/deploy/

Payload Example:

{ "cloud_stack_providers": [1, 2, 3, 4, 5] }

Retrieving Cloud Stack Content

Retrieve detailed cloud stack information.

Endpoint:

GET https://sa.searchatlas.com/api/cg/v1/cloud-stack-contents/:cloud_stack_id

List Cloud Stack Providers

List available cloud stack providers.

Endpoint:

GET https://sa.searchatlas.com/api/cg/v1/cloud-stack-providers

Postman Collection

{"info":{"_postman_id":"1aaa982e-fd19-492d-a6d4-39e353f46953","name":"OTTO Cloud Stacks","description":"## Introduction\n\n> With Cloud Stacks, users can effortlessly harness AI to generate high-quality content tailored to their needs. This powerful platform enables seamless content creation, allowing users to produce engaging articles with just a few clicks. Once the content is generated, OTTO will index and publish it to 13 sites. \n  \n\nFrom [Search Atlas Knowledge Base](https://help.searchatlas.com/en/articles/10104882-otto-seo-knowledge-base#h_bdab37a059)\n\n## REST API & conventions\n\nThe cloud stack API uses simple REST API conventions.\n\n#### Authorization:\n\n- Use Berear Token Authorization on all endpoints\n    \n\n#### Methods:\n\n- POST: to create an entity or perform an action\n    \n- GET: to retrieve or list an entity\n    \n- PATCH: to partial update an entity\n    \n\n#### Status codes:\n\n- 2xx: success\n    \n- 4xx: validation error\n    \n- 5xx: server error\n    \n\n## Statuses\n\nA cloud stack consists of multiple status that indicates which part of the flow it's in. You'll have to trigger actions such as build or deploy to change the status.\n\n##### Cloud stack status:\n\n- **Pending**: A new created cloud stack. Use **Create** to create one. In this state you can edit the target url and prompt prior. Call **Build** for the next step.\n    \n- **Generating**: An intermediate status after **Build** is called. If success it changes automatically to **Generated**.\n    \n- **Generated**: The cloud stack has AI content and it's ready to be published. Review the content prior publishing using the URLs and then call **Deploy** for the next step.\n    \n- **Publishing**: An intermediate status after **Deploy** is called.\n    \n- **Published**: The cloud stack has been published to the providers. Indexing may be in progress\n    \n- **Unpublished**: The cloud stack has been unpublished\n    \n\n##### Cloud stack provider status:\n\n- **HTML_CREATED**: cloud stack is publishing\n    \n- **PUBLISHED**: HTML has been published, URL is available from now\n    \n- **PUBLISHING_FAILED**: cloud stack could not be published\n    \n- **INDEXING**: published, indexation in progress\n    \n- **INDEXED**: published and indexed, final status on success\n    \n- **INDEXER_SYNC_FAILED**: published, could not be indexed\n    \n- **NOT_INDEXED**: published could not be indexed, final status\n    \n\n#### Happy path:\n\n1. **Create** the press release: Pending\n    \n2. **Build** the press release: Generating -> Generated\n    \n3. **Deploy** the press release: Publishing -> Published\n    \n\n**Postman: Envarionment Variables**\n\n- host: [https://sa.searchatlas.com](https://sa.searchatlas.com)\n    \n- token: use Auth/Token to get your Berear Token","schema":"https://schema.getpostman.com/json/collection/v2.1.0/collection.json","_exporter_id":"34557243"},"item":[{"name":"Knowledge Graph","item":[{"name":"Retrieve Knowledge Graph","request":{"method":"GET","header":[],"url":{"raw":"{{host}}/api/v2/knowledge-graphs/:knowledge_graph_id","host":["{{host}}"],"path":["api","v2","knowledge-graphs",":knowledge_graph_id"],"variable":[{"key":"knowledge_graph_id","value":"{{knowledge_graph_id}}"]}},"response":[]},{"name":"Update Knowledge Graph ","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{}}}],"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\"business_name\": \"LinkGraph\",\"description\": \"At LinkGraph, we’ve combined the powers of SEO technology with human expertise to create a first-of-its-kind search engine optimization agency. Our AI-powered SEO Agents allow us to implement holistic SEO at scale and automate the most time-consuming aspects of SEO. This leaves us more time to deliver a targeted, revenue-focused strategy that transforms your website into a revenue machine.\"}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{host}}/api/v2/knowledge-graphs/:knowledge_graph_id/","host":["{{host}}"],"path":["api","v2","knowledge-graphs",":knowledge_graph_id",""],"variable":[{"key":"knowledge_graph_id","value":"{{knowledge_graph_id}}"]}},"response":[]},{"name":"Create Knowledge Graph","event":[{"listen":"test","script":{"exec":["if (pm.response.code == 201) {","const responseData = pm.response.json();","pm.collectionVariables.set(\"knowledge_graph_id\", responseData.id);","}"],"type":"text/javascript","packages":{}}}],"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\"business_name\":\"LinkGraph\",\"description\":\"At LinkGraph, we’ve combined the powers of SEO technology with human expertise to create a first-of-its-kind search engine optimization agency. Our AI-powered SEO Agents allow us to implement holistic SEO at scale and automate the most time-consuming aspects of SEO. This leaves us more time to deliver a targeted, revenue-focused strategy that transforms your website into a revenue machine.\",\"youtube_videos\":[{\"url\":\"https://www.youtube.com/watch?v=aCL9SmapEps\"}],\"lat\":0,\"long\":0,\"website\":\"https://linkgraph.io/\",\"twitter_url\":\"https://x.com/LinkGraphSEO\",\"facebook_url\":\"https://www.facebook.com/linkgraphseo/\",\"youtube_url\":\"https://www.youtube.com/channel/UCgEUbExBbcVEv8cj-EGD4hA\",\"instagram_url\":\"https://www.instagram.com/linkgraphseo\",\"pinterest_url\":\"https://www.pinterest.com/linkgraph/\",\"linkedin_url\":\"https://www.linkedin.com/company/linkgraph\",\"crunchbase_url\":null,\"trustpilot_url\":null,\"googleplay_url\":null,\"applestore_url\":null,\"yelp_url\":null,\"yellowpages_url\":null,\"wikipedia_url\":null,\"foursquare_url\":null,\"bbb_url\":null,\"tripadvisor_url\":null,\"tiktok_url\":null,\"dnb_url\":null,\"indeed_url\":null,\"g2_url\":null,\"capterra_url\":null,\"logo\":\"https://media.licdn.com/dms/image/v2/C4D0BAQHBkj_WHEWPjg/company-logo_200_200/company-logo_200_200/0/1630536092675/linkgraph_io_logo?e=2147483647&v=beta&t=LmtdyzqQH9-9Dgril7yaPDMkvPVhEgK1ux9tMY5K2tE\",\"images\":[{\"url\":\"https://linkgraphs.com/files/images/LinkGraphs-Hero-newest1_1.png\"}]}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{host}}/api/v2/knowledge-graphs/","host":["{{host}}"],"path":["api","v2","knowledge-graphs",""]}},"response":[]}],"description":"A knowledge graph represents information of a particular business. It can be attached to different modules. Try to reuse the same knowledge graph if the information they belong to the same business.\n\nKnowledge graphs that are not associated to a press release, cloud stack, otto project or gbp location may be deleted at any time."},{"name":"Auth","item":[{"name":"Token","event":[{"listen":"test","script":{"exec":["if (pm.response.code == 200) {","const responseData = pm.response.json();","pm.environment.set(\"token\", responseData.token);","}"],"type":"text/javascript","packages":{}}}],"request":{"auth":{"type":"noauth"},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\"username\": \"username\",\"password\": \"password\"}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.searchatlas.com/api/token/","protocol":"https","host":["api","searchatlas","com"],"path":["api","token",""]}},"response":[]}],"name":"Auth"},{"name":"List Providers","request":{"method":"GET","header":[],"url":{"raw":"{{host}}/api/cg/v1/cloud-stack-providers","host":["{{host}}"],"path":["api","cg","v1","cloud-stack-providers"]}},"response":[]},{"name":"List","request":{"method":"GET","header":[],"url":{"raw":"{{host}}/api/cg/v1/cloud-stack-contents","host":["{{host}}"],"path":["api","cg","v1","cloud-stack-contents"],"query":[{"key":"otto_project","value":"267","description":"129","disabled":true}]}},"response":[]},{"name":"Retrieve","request":{"method":"GET","header":[],"url":{"raw":"{{host}}/api/cg/v1/cloud-stack-contents/:cloud_stack_id","host":["{{host}}"],"path":["api","cg","v1","cloud-stack-contents",":cloud_stack_id"],"variable":[{"key":"cloud_stack_id","value":"{{cloud_stack_id}}"]}}},"response":[]},{"name":"Create","event":[{"listen":"test","script":{"exec":["if (pm.response.code == 201) {","const responseData = pm.response.json();","pm.collectionVariables.set(\"cloud_stack_id\", responseData.id);","}"],"type":"text/javascript","packages":{}}}],"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\"target_url\":\"https://linklaboratory.com/about-us/\",\"keywords\":[\"SEO\"],\"knowledge_graph\":{{knowledge_graph_id}}}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{host}}/api/cg/v1/cloud-stack-contents/","host":["{{host}}"],"path":["api","cg","v1","cloud-stack-contents",""]}},"response":[]},{"name":"Build","request":{"method":"POST","header":[],"url":{"raw":"{{host}}/api/cg/v1/cloud-stack-contents/:cloud_stack_id/build/","host":["{{host}}"],"path":["api","cg","v1","cloud-stack-contents",":cloud_stack_id","build",""],"variable":[{"key":"cloud_stack_id","value":"{{cloud_stack_id}}"]}}},"response":[]},{"name":"Deploy","request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\"cloud_stack_providers\":[1,2,3,4,5,6,7,8,9,10,11,12,13]}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{host}}/api/cg/v1/cloud-stack-contents/:cloud_stack_id/deploy/","host":["{{host}}"],"path":["api","cg","v1","cloud-stack-contents",":cloud_stack_id","deploy",""],"variable":[{"key":"cloud_stack_id","value":"{{cloud_stack_id}}"]}}},"response":[]}],"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{token}}","type":"string"}]},"event":[{"listen":"prerequest","script":{"type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"type":"text/javascript","packages":{},"exec":[""]}}],"variable":[{"key":"cloud_stack_id","value":"4017","type":"string"},{"key":"knowledge_graph_id","value":"2554","type":"string"}]}


For more details, refer to the official API documentation at SearchAtlas.

Did this answer your question?