Brand Intelligence API

Send a website URL and get back structured context about the brand behind it: who it is, what it sells, who it is for, how it positions itself, what it says, how it sounds, and what it looks like. JSON by default, or Markdown for direct use as model context.

Endpoint

HTTP
GET  https://opengraph.io/api/1.1/brand/{encoded_url}?app_id=YOUR_APP_ID
POST https://opengraph.io/api/1.1/brand/{encoded_url}?app_id=YOUR_APP_ID

Use GET with query parameters for simple requests, and POST with a JSON body when you send sections or questions. In a query string, those two must be JSON encoded, then URL encoded. app_id and cache_ok always go in the query string.

An analysis reads several pages of the site, so a fresh request can take tens of seconds. Set your client timeout to at least 60 seconds.

Parameters

Path Parameters

ParameterTypeDescription
encoded_urlstringRequired. The URL encoded website to analyze

Options

Every option except app_id is optional.

ParameterTypeDefaultDescription
app_idstringnoneRequired. Your API key
formatstringjsonjson or markdown. Markdown is rendered from the same result and returned as a text/markdown body.
sectionsobjectall onBoolean flags keyed by section name. Set a section to false to leave it out; it is then not analyzed at all. Example: { "visual": false }
questionsarraynoneUp to 3 custom questions. See Custom questions.
include_metabooleanfalseAdds a _meta object with provenance for each field.
cache_okbooleantrueSet to false to skip the cache and run a fresh analysis. Query string only; ignored in a POST body.

Example Request

# Default: every section, as JSON
curl "https://opengraph.io/api/1.1/brand/https%3A%2F%2Fasana.com?app_id=YOUR_APP_ID"

# Markdown, ready to paste into a prompt
curl "https://opengraph.io/api/1.1/brand/https%3A%2F%2Fasana.com?app_id=YOUR_APP_ID&format=markdown"

# Options in a POST body: skip sections, add a custom question, include provenance
curl -X POST "https://opengraph.io/api/1.1/brand/https%3A%2F%2Fasana.com?app_id=YOUR_APP_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "sections": { "visual": false, "links": false },
    "questions": [
      { "key": "buying_triggers", "question": "What situations would make someone likely to buy from this company?", "type": "string[]" }
    ],
    "include_meta": true
  }'

Response

The JSON response has one key per enabled section. identity and links are read from the site markup; the other sections are written from the content of the pages analyzed.

If part of the analysis fails, the request still succeeds and the affected sections come back as null (an empty array for products and audiences). Partial results are not cached. Check for missing sections before reading nested fields.

SectionFields
branddomain, name, description, tagline, category
identitylogos[] (url, type: logo, wordmark, icon, or image; theme; format), logo_svg (svg, type, theme; null when no inline logo is found), icon (url, format), colors[] (hex, role), fonts[] (family, role, weights)
productsArray of name, description, url, category
audiencesArray of name, description
positioningvalue_proposition, market_position, differentiators[]
messagingkey_messages[], themes[], claims[], common_phrases[]
voicetraits[], description, formality, technicality, energy (each 0 to 1), do[], avoid[]
visualstyle, imagery, ui_style
linkswebsite, about, socials (keyed by network), brand_assets, pricing
customAnswers to your custom questions, keyed by each question's key. Present only when questions are sent and answered.
_metaProvenance. Present only when include_meta is true.
{
  "brand": {
    "domain": "asana.com",
    "name": "Asana",
    "description": "Asana is a work management platform where teams and AI agents coordinate critical workflows on shared plans, with connected context, automation, reporting, and enterprise governance.",
    "tagline": "The OS for human-agent teams",
    "category": "Work management and collaboration software"
  },
  "identity": {
    "logos": [
      {
        "url": "https://assets.asana.biz/m/5f083bc48e06e1e2/original/asana-logo-1200x1200.png",
        "type": "logo",
        "theme": null,
        "format": "png"
      }
    ],
    "icon": {
      "url": "https://brand.asana.biz/image/upload/f_auto:image,fl_preserve_transparency/v1696462484/asana_favicon_194x194.png",
      "format": "png"
    },
    "colors": [
      {
        "hex": "#690031",
        "role": "primary"
      },
      {
        "hex": "#F0D3D9",
        "role": "accent"
      },
      {
        "hex": "#6A0085",
        "role": null
      },
      {
        "hex": "#222875",
        "role": null
      },
      {
        "hex": "#004232",
        "role": null
      },
      {
        "hex": "#A82424",
        "role": null
      }
    ],
    "fonts": [
      {
        "family": "TWK Lausanne",
        "role": "heading",
        "weights": [
          250,
          300,
          350,
          400,
          450,
          500,
          550
        ]
      },
      {
        "family": "haptik",
        "role": null,
        "weights": [
          200,
          400
        ]
      },
      {
        "family": "proxima-nova",
        "role": null,
        "weights": [
          400,
          600
        ]
      },
      {
        "family": "Ghost",
        "role": null,
        "weights": [
          500
        ]
      }
    ]
  },
  "products": [
    {
      "name": "Agentic Work Management",
      "description": "A platform for people and AI agents to run critical workflows together, including AI Teammates, Asana Dash, AI Studio, and AI Connectors and MCP.",
      "url": "https://asana.com/product/ai",
      "category": "AI work management"
    },
    {
      "name": "Asana Service Management",
      "description": "An AI-native service management platform for IT, HR, facilities, and legal teams.",
      "url": "https://asana.com",
      "category": "Service management"
    },
    {
      "name": "Asana Client Management",
      "description": "An AI-native platform for teams delivering client work, including agencies.",
      "url": "https://asana.com",
      "category": "Client and agency work management"
    },
    {
      "name": "Command by Asana",
      "description": "A work management product for developer teams to ship faster with humans and agents in sync.",
      "url": "https://asana.com",
      "category": "Developer team work management"
    },
    {
      "name": "StackAI by Asana",
      "description": "A no-code platform for creating agentic workflows connected to business applications with enterprise governance.",
      "url": "https://asana.com",
      "category": "AI workflow automation"
    },
    {
      "name": "AI Teammates",
      "description": "Prebuilt AI agents that work alongside teams inside real workflows, with shared memory, governance, and work context.",
      "url": "https://asana.com/product/ai",
      "category": "AI agents"
    },
    {
      "name": "AI Studio",
      "description": "A no-code automation tool for intake, task classification, routing, alerts, and other structured work processes.",
      "url": "https://asana.com/product/ai",
      "category": "Workflow automation"
    },
    {
      "name": "Asana Dash",
      "description": "An AI chief of staff that surfaces next actions and routes work to the appropriate AI Teammate.",
      "url": "https://asana.com/product/ai",
      "category": "AI productivity assistant"
    },
    {
      "name": "Goals and reporting",
      "description": "Capabilities for connecting team work to company objectives and monitoring progress through goals, portfolios, and real-time reporting dashboards.",
      "url": "https://asana.com/features/goals-reporting",
      "category": "Goals and performance management"
    },
    {
      "name": "Admin and security",
      "description": "Administrative, access-control, data protection, compliance, and security capabilities for managing Asana across organizations.",
      "url": "https://asana.com/features/admin-security",
      "category": "Enterprise administration and security"
    }
  ],
  "audiences": [
    {
      "name": "Cross-functional teams",
      "description": "Teams coordinating shared workflows, projects, goals, and dependencies across functions."
    },
    {
      "name": "IT teams",
      "description": "IT organizations managing service delivery, enterprise applications, procurement, operations, intake, and approvals."
    },
    {
      "name": "Service teams",
      "description": "Teams in IT, HR, facilities, and legal that manage structured service requests and workflows."
    },
    {
      "name": "Developer teams",
      "description": "Developer organizations that need to coordinate work and ship faster with humans and AI agents."
    },
    {
      "name": "Marketing and operations teams",
      "description": "Teams using AI agents, automation, project management, and reporting to manage cross-functional work."
    },
    {
      "name": "Agencies and client-service teams",
      "description": "Agencies and teams delivering work for clients and managing ongoing client relationships."
    },
    {
      "name": "Enterprise organizations",
      "description": "Large organizations requiring governance, security, compliance, administration, and scalable work management."
    }
  ],
  "positioning": {
    "value_proposition": "Asana helps teams and AI agents run critical workflows together from one shared plan, connecting people, tasks, projects, goals, dependencies, and operational context.",
    "market_position": "An enterprise-scale work management and agentic work platform for cross-functional teams, with governance, security, integrations, and AI built in.",
    "differentiators": [
      "Work Graph® connects people, agents, tasks, projects, goals, and dependencies in one shared context.",
      "AI Teammates, AI Studio, Asana Dash, and AI Connectors support coordinated human-agent workflows.",
      "Enterprise governance includes permissions, approvals, audit trails, usage controls, and centralized administration.",
      "Broad integrations connect Asana with existing business systems rather than requiring rip-and-replace.",
      "Strong enterprise security, privacy, compliance, and data-residency capabilities."
    ]
  },
  "messaging": {
    "key_messages": [
      "Bring humans and AI agents together on one shared plan.",
      "Connect strategy to execution with visible goals, projects, owners, deadlines, and dependencies.",
      "Automate routine work while keeping people in control of approvals, exceptions, and decisions.",
      "Replace scattered work, stale status updates, and unclear ownership with a coordinated system of record.",
      "Scale work confidently with enterprise-grade security, governance, integrations, and reporting."
    ],
    "themes": [
      "Human-agent collaboration",
      "Shared context and memory",
      "Visibility and coordination",
      "AI-powered productivity",
      "Enterprise governance",
      "Security and trust",
      "Strategic alignment",
      "Automation and scale"
    ],
    "claims": [
      "85% of Fortune 100 companies choose Asana.",
      "Asana integrates with 270+ apps.",
      "Asana’s AI partners do not use customer data to train their models and are required to delete customer data after each query.",
      "Asana offers a 99.9% uptime commitment to Enterprise customers.",
      "More than 100,000 enterprises trust Asana to keep their data safe."
    ],
    "common_phrases": [
      "The OS for human-agent teams",
      "Where humans and agents run critical workflows together",
      "one shared plan",
      "AI that works the way your team works",
      "Your AI chief of staff",
      "Get your team and your agents working together",
      "See the big picture at a glance",
      "Keep work moving"
    ]
  },
  "voice": {
    "traits": [
      "Clear",
      "Confident",
      "Outcome-oriented",
      "Enterprise-minded",
      "Helpful",
      "Action-oriented",
      "Technically credible"
    ],
    "description": "Asana communicates in direct, benefit-led language that combines practical workflow outcomes with ambitious AI and enterprise positioning. It emphasizes clarity, speed, visibility, control, and human oversight.",
    "formality": 0.65,
    "technicality": 0.62,
    "energy": 0.72,
    "do": [
      "Lead with a clear operational benefit.",
      "Frame AI as working alongside people, with humans retaining control.",
      "Use concrete workflow language such as owners, deadlines, dependencies, approvals, and next actions.",
      "Reinforce visibility, alignment, speed, and measurable outcomes.",
      "Pair innovation claims with security, governance, and trust assurances.",
      "Use concise calls to action such as “Get started,” “Learn more,” and “Explore.”"
    ],
    "avoid": [
      "Presenting AI as autonomous without human oversight.",
      "Positioning Asana as requiring customers to replace their existing tools.",
      "Vague productivity claims without a workflow or business outcome.",
      "Ignoring enterprise security, permissions, governance, or compliance concerns."
    ]
  },
  "visual": {
    "style": "Modern, AI-forward enterprise SaaS with a clear, collaborative, execution-focused feel. The brand emphasizes shared context, connected workflows, visibility, governance, and productivity.",
    "imagery": null,
    "ui_style": "Structured work-management interfaces centered on shared plans, connected tasks, goals, projects, dependencies, dashboards, reporting charts, portfolios, and governed AI workflows."
  },
  "links": {
    "website": "https://asana.com",
    "about": "https://asana.com/company",
    "socials": {
      "x": "https://x.com/intent/follow?screen_name=asana",
      "linkedin": "https://www.linkedin.com/company/asana",
      "instagram": "https://www.instagram.com/asana/",
      "facebook": "https://www.facebook.com/asana",
      "youtube": "https://www.youtube.com/channel/UC2BoogM0AqwOJyoSp1S4ClQ"
    },
    "brand_assets": null,
    "pricing": "https://asana.com/pricing"
  }
}

Custom questions

Ask for anything the standard schema does not cover. Each question needs a key and a question, and can set a type for the answer.

FieldRules
key1 to 64 letters, digits, or underscores. Must be unique within the request. __proto__, constructor, and prototype are reserved.
questionUp to 500 characters.
typestring (default), boolean, number, string[], or object. An object answer is returned as an object, or as the raw string if the answer is not valid JSON.
Request body and the matching response
{
  "questions": [
    { "key": "buying_triggers", "question": "What situations would make someone likely to buy from this company?", "type": "string[]" }
  ]
}

// response
{
  "custom": {
    "buying_triggers": ["...", "..."]
  }
}

When the site gives no evidence for an answer, its value is null.

Provenance

With include_meta set, the response includes _meta.sources, the pages analyzed (each with a url and a page type such as homepage, about, product, or pricing), and _meta.fields, which maps each field path to its source ids and a basis:

basisMeaning
observedRead directly from the site: links and brand.domain
derivedComputed from the site markup and stylesheets: identity
inferredWritten by the analysis from the site content, even when it reads like a quote: every other section, including brand.tagline and custom

Caching

Results are cached for 7 days per URL and set of enabled sections. A cached response includes "is_cache": true. Set cache_ok=false to force a fresh analysis. Requests with custom questions are never cached.

Errors

Errors during analysis return an error object with a code and message. Invalid options are rejected before any work starts, and for those error is a plain string describing the problem. Check the type of error before reading its fields.

Analysis error
{
  "error": {
    "code": -4101,
    "message": "Could not fetch the requested site."
  }
}
Invalid options
{
  "error": "A maximum of 3 custom questions may be supplied per request."
}
HTTP Statuserror.codeMeaning
400none (string error)Invalid options, such as an unknown format, more than 3 questions, or a bad question key
400-4101The website could not be fetched
504-4100The analysis did not finish in time
500-4102Unexpected error during analysis

Related