Authentication
All API requests require authentication:
Authorization: Bearer <API_TOKEN>
Choosing Integration: Knowledge Graph or OTTO Project
To create a press release, choose either a Knowledge Graph or an OTTO Project not both:
If you already have an OTTO Project, you can skip creating a Knowledge Graph.
If you don't have an OTTO Project, proceed to create a Knowledge Graph as shown below.
Creating a Knowledge Graph
A Knowledge Graph provides structured business data linked to your press releases, enhancing visibility and SEO.
Endpoint:
POST https://sa.searchatlas.com/api/v2/knowledge-graphs/
Payload Example:
{ "business_name": "Example Company", "description": "Your business description.", "street_address": "123 Main St", "address_locality": "City", "address_administrative_area": "State", "address_country": "US", "postal_code": "12345", "authorship_first_name": "Jane", "authorship_last_name": "Doe", "phone_number": "+1 (123) 456-7890", "website": "https://example.com", "logo": "https://example.com/logo.png" }
Press Release Status Flow
Pending: New press release created.
Generating: Content generation ongoing.
Generated: Ready for review.
Publishing: Deployment in progress.
Published: Successfully deployed.
Publish stuck: Awaiting additional information.
Publish failed: Rejected by distributor.
Creating a Press Release
Endpoint:
POST https://sa.searchatlas.com/api/cg/v1/press-release/
Payload Examples:
With Knowledge Graph:
{ "title": "Press Release Title", "prompt": "Your manually created content.", "target_url": "https://example.com/release", "images": [{"url": "https://example.com/image.png"}], "knowledge_graph_id": "your_knowledge_graph_id" }
With OTTO Project:
{ "title": "Press Release Title", "prompt": "Your press release content.", "target_url": "https://example.com/release", "images": [{"url": "https://example.com/image.png"}], "otto_project_id": 267 }
Generating AI Content (Optional)
Optionally use AI to generate your press release content:
Endpoint:
POST https://sa.searchatlas.com/api/cg/v1/press-release/:press_release_id/build/
Status progresses: Pending
→ Generating
→ Generated
.
Deploying Press Releases
Deploy your press release to chosen channels:
Endpoint:
POST https://sa.searchatlas.com/api/cg/v1/press-release/:press_release_id/deploy/signal-genesys/
Payload Example:
{ "genesys_category_id": "string", "distribution_ids": [1, 2], "variations": false }
Retrieving and Updating Press Releases
Retrieve:
GET https://sa.searchatlas.com/api/cg/v1/press-release/:press_release_id/
Update:
PATCH https://sa.searchatlas.com/api/cg/v1/press-release/:press_release_id/
Update fields like images, content, or prompts.
Available Distributions and Categories
Distributions:
GET https://sa.searchatlas.com/api/cg/v1/press-release/distributions?page=1
Categories:
GET https://sa.searchatlas.com/api/cg/v1/press-release/signal-genesys/categories/
For more details, refer to the official API documentation at SearchAtlas.
Postman Collection
{"info":{"_postman_id":"bc3148dd-1a05-4368-84eb-f7a41756a53e","name":"OTTO Press Release","description":"## Introduction\n\n> Press release distribution is vital for SEO because it generates quality backlinks from reputable media outlets, enhancing search engine rankings. It boosts brand visibility and direct website traffic, while keyword-optimized press releases improve rankings for targeted terms. Additionally, press releases contribute fresh content for search engine indexing and provide social signals through sharing, which can indirectly benefit SEO.\n\nFrom [Search Atlas Knowledge Base](https://help.searchatlas.com/en/articles/10104882-otto-seo-knowledge-base#h_3711ba4931)\n\n## REST API & conventions\n\nThe press release API uses simple REST API conventions.\n\n#### Authorization:\n\n- Use Bearer Token Authorization on all endpoints\n\n#### Methods:\n\n- POST: to create an entity or perform an action\n- GET: to retrieve or list an entity\n- PATCH: to partially update an entity\n\n#### Status codes:\n\n- 2xx: success\n- 4xx: validation error\n- 5xx: server error\n\n## Statuses\n\nThe press release consists of multiple statuses indicating its progress:\n\n- **Pending**: New press release, editable. Call **Build** to proceed.\n- **Generating**: AI content being created.\n- **Generated**: Content ready for review. Call **Deploy**.\n- **Publishing**: Deployment in progress.\n- **Publish stuck**: Needs additional information.\n- **Publish failed**: Content rejected by distributors.\n- **Published**: Content live. Use List Channels for URLs.\n\n#### Happy path:\n\n1. **Create**: Pending\n2. **Build**: Generating → Generated\n3. **Deploy**: Publishing → Published\n\n**Postman: Environment Variables**\n\n- host: [https://sa.searchatlas.com](https://sa.searchatlas.com)\n- token: use Auth/Token to obtain Bearer Token","schema":"https://schema.getpostman.com/json/collection/v2.1.0/collection.json","_exporter_id":"34557243"},"item":[{"name":"Meta","item":[{"name":"List Categories","request":{"method":"GET","header":[],"url":{"raw":"{{host}}/api/cg/v1/press-release/signal-genesys/categories/","host":["{{host}}"],"path":["api","cg","v1","press-release","signal-genesys","categories",""]},"description":"Fetches categories."},"response":[]},{"name":"List Distributions","request":{"method":"GET","header":[],"url":{"raw":"{{host}}/api/cg/v1/press-release/distributions?page=1","host":["{{host}}"],"path":["api","cg","v1","press-release","distributions"],"query":[{"key":"page","value":"1"}]},"description":"Fetches distributions."},"response":[]}],"description":"Press release categories and distribution lists."},{"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","request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\"logo\":\"https://media.licdn.com/logo.png\"}","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","request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\"business_name\":\"LinkGraph\",\"description\":\"SEO optimization agency.\",\"street_address\":\"244 5th Ave d158\",\"address_locality\":\"New York\",\"address_administrative_area\":\"NY\",\"address_country\":\"US\",\"postal_code\":\"10001\",\"authorship_first_name\":\"Manick\",\"authorship_last_name\":\"Bhanovic\",\"phone_number\":\"+1 (929) 377-1036\",\"website\":\"https://linkgraph.io/\",\"logo\":\"https://media.licdn.com/logo.png\"}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{host}}/api/v2/knowledge-graphs/","host":["{{host}}"],"path":["api","v2","knowledge-graphs",""]}},"response":[]}],"description":"Manage business information."}],"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{token}}","type":"string"}]},"variable":[{"key":"press_release_id","value":"065e1f90-351d-4742-952a-0b3772feedd8","type":"string"},{"key":"knowledge_graph_id","value":"2554","type":"string"}]}