API Documentation

Build custom integrations with the BlackOps Center REST API. Access your content library, voice profiles, and AI generation features programmatically.

Authentication

The API uses token-based authentication for extension endpoints. Include your API token in the Authorization header of each request.

# Include in all requests
Authorization: Bearer YOUR_API_TOKEN
šŸ”‘
Get Your API Token
Generate an API token from the Browser Extension settings page in your admin dashboard. Keep this token secure and never share it publicly.

Base URL

https://blackopscenter.com/api

Content Library API

POST/ext/content-library

Save content to your Content Library. Supports articles, tweets, links, and blog posts.

Request Body

{
  "url": "https://example.com/article",
  "title": "Article Title",
  "content_type": "article",
  "excerpt": "Brief description...",
  "author": "Author Name",
  "tags": ["tag1", "tag2"],
  "notes": "Personal notes about this content"
}

Response

{
  "success": true,
  "id": "uuid-of-saved-content",
  "message": "Content saved successfully"
}
GET/ext/content-library

Retrieve saved content from your library with optional filtering.

Query Parameters

content_typeFilter by type: article, tweet, link, blog_post
tagFilter by tag
searchFull-text search query
limitNumber of results (default: 50)

OpenClaw Integration

šŸ¤–
Control BlackOps Center with AI

The BlackOps Center skill for OpenClaw lets you manage your content through natural language conversations or CLI commands. Create posts, publish drafts, and manage multiple sites without touching the web interface.

View Skill on GitHub →

Installation

# Via ClawdHub (recommended)
clawdhub install blackops-center
# Or manual clone
git clone https://github.com/BlackOpsCenter/clawdbot-skill.git ~/.openclaw/skills/blackops-center

Configure with your API token from the Browser Extension settings page.

Natural Language Usage

→ "Create a blog post about AI content strategy"
OpenClaw generates the post and returns a preview link
→ "Publish post abc123"
OpenClaw publishes the draft and shows the live URL
→ "Route these 5 blog posts to the correct sites"
OpenClaw intelligently routes posts to different sites based on content

CLI Commands

# List all sites
blackops-center list-sites

# Create a draft post
blackops-center create-post \
  --title "Post Title" \
  --content "$(cat post.md)" \
  --tags "ai,automation"

# Create on specific site
blackops-center create-post \
  --domain "blog.vitalwall.com" \
  --title "Site-Specific Post" \
  --content "..."

# Publish a draft
blackops-center update-post <id> --status published

# List draft posts
blackops-center list-posts --status draft

# Get your AI-analyzed voice profile
blackops-center get-voice --domain benenewton.com

Preview & Published URLs (v1.1.0+)

The skill automatically outputs shareable URLs when creating or publishing posts:

$ blackops-center create-post --title "Test" --content "..."

āœ“ Post created: draft
Preview: https://blackopscenter.com/preview/test?token=abc123

$ blackops-center update-post abc123 --status published

āœ“ Post published
Live URL: https://blackopscenter.com/test
šŸ’”
JSON responses go to stdout for programmatic use, while human-readable messages go to stderr. This means you can pipe the JSON to jq while still seeing helpful status messages.

Twitter API

POST/ext/twitter/compose-tweet

Generate a tweet using your voice profile. Returns AI-generated content matching your style.

Request Body

{
  "topic": "Content topic or idea",
  "context": "Additional context or requirements",
  "tone": "optional tone override"
}
POST/ext/twitter/generate-reply

Generate a contextual reply to a tweet. Uses your voice profile and considers the original tweet's content.

Request Body

{
  "tweet_text": "Text of the tweet to reply to",
  "tweet_author": "Author's username",
  "intent": "agree, challenge, add_value, ask_question"
}

Voice Profile API

šŸŽ¤
AI-Analyzed Writing Voice

BlackOps Center analyzes your published blog posts to extract your authentic writing voice — tone scores, style features, expertise areas, and common patterns. This isn't a marketing persona you configure — it's a data-driven fingerprint of how you actually write.

GET/ext/sites/{siteId}/voice

Retrieve the AI-analyzed voice profile for a site. Returns tone scores, style features, expertise areas, common writing patterns, and a ready-to-use prompt for AI content generation. Uses API token authentication.

Path Parameters

siteIdUUID of the site (get from /ext/sites)

Response

{
  "voice_profile": {
    "tone_scores": {
      "casual": 0.5,
      "friendly": 0.62,
      "humorous": 0.23,
      "technical": 0.76,
      "analytical": 0.69,
      "professional": 0.72,
      "authoritative": 0.68,
      "conversational": 0.61
    },
    "style_features": [
      "technical_density",
      "personal_anecdotes",
      "avg_sentence_length",
      "code_examples_usage",
      "paragraph_structure"
    ],
    "expertise_areas": [
      "software development",
      "AI integration",
      "DevOps",
      "frontend architecture"
    ],
    "common_patterns": [
      "What if",
      "Here's how",
      "The problem was",
      "Sound familiar?"
    ],
    "compiled_prompt": "Writing style: technical, professional...",
    "sample_size": 10
  },
  "examples": [],
  "analysis_count": 10
}

Voice Profile Fields

tone_scoresNumeric breakdown of writing tone on a 0–1 scale (casual, technical, authoritative, etc.)
style_featuresStructural characteristics — sentence length, paragraph structure, use of code examples
expertise_areasTopics and domains extracted from published content
common_patternsPhrases, hooks, and rhetorical patterns you frequently use
compiled_promptReady-to-use prompt string for AI models — feed this directly to generate content in your voice
analysis_countNumber of posts analyzed to build the profile (more posts = more accurate voice)

Error Handling

The API returns standard HTTP status codes and JSON error responses:

400Bad Request - Invalid parameters
401Unauthorized - Invalid or missing token
403Forbidden - Insufficient permissions
404Not Found - Resource doesn't exist
429Too Many Requests - Rate limit exceeded
500Server Error - Something went wrong

Rate Limits

API requests are rate limited to ensure fair usage:

  • •Extension API: 100 requests per minute
  • •Content Generation: 10 requests per minute
  • •Bulk Operations: 5 requests per minute

Rate limit headers are included in all responses: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset

Example: Save Content from Node.js

const response = await fetch('https://blackopscenter.com/api/ext/content-library', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    url: 'https://example.com/great-article',
    title: 'Great Article Title',
    content_type: 'article',
    tags: ['inspiration', 'content-ideas']
  })
});

const result = await response.json();
console.log(result);
Documentation - BlackOps Center | BlackOps Center