> ## Documentation Index
> Fetch the complete documentation index at: https://docs.leadpipe.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Analyze site topics

> Analyze site topics using the public Orbit API



## OpenAPI

````yaml https://api.aws53.cloud/openapi-intent.json POST /v1/intent/topics/analyze
openapi: 3.1.0
info:
  title: Orbit API
  version: 1.0.0
  description: >-
    Orbit Audience Intent API: topic discovery, site analysis, curated ICP
    filters, saved audiences, materialization runs, stats, and CSV export.
    Discovery endpoints are public; audience management accepts either Bearer
    JWT or X-API-Key auth.
servers:
  - url: https://api.aws53.cloud
    description: Production
security: []
tags:
  - name: Topic Discovery
    description: Browse, search, and analyze available intent topics
  - name: Site Analysis
    description: Analyze a website URL to find matching intent topics
  - name: Site Topics
    description: Recent organization site-topic analyses
  - name: Audience Builder
    description: >-
      Curated filters, preview, saved audiences, runs, exports, webhooks, and
      managed destinations
paths:
  /v1/intent/topics/analyze:
    post:
      tags:
        - Site Analysis
      summary: Match a website to intent topics
      description: >-
        Analyzes website text and returns matching intent topics ranked by
        similarity with extracted keywords and company context. Results are
        cached for 24 hours; stale results may be returned while refreshing.
        Bearer-authenticated searches are saved to the active organization
        history asynchronously. Source-IP allowance is 2 requests per 60 seconds
        without a valid bearer token, or 30 with one.
      operationId: matchAWebsiteToIntentTopics
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                  minLength: 10
                  format: uri
                  description: Public website URL to analyze.
                  example: https://cloud.example.test
              required:
                - url
            example:
              url: https://cloud.example.test
      responses:
        '200':
          description: Matched topics
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteTopicsResponse'
              example:
                data:
                  company: Example Cloud
                  summary: Cloud data management software.
                  keywords:
                    - cloud platform
                  topics:
                    - topicId: 1001
                      topicName: Example cloud platform
                      type: b2b
                      industry: Technology
                      category: Cloud Computing
                      similarity: 0.87
                      matchedKeyword: cloud platform
                meta:
                  timestamp: '2026-01-15T12:00:00.000Z'
                  request_id: example-request
        '400':
          description: Invalid URL
        '429':
          description: >-
            Source-IP allowance exceeded: 2 requests per 60 seconds without a
            valid bearer token, or 30 with one.
          headers:
            RateLimit-Limit:
              description: Maximum requests allowed per source IP in 60 seconds.
              schema:
                type: integer
                example: 2
            RateLimit-Remaining:
              description: Requests remaining in the current source-IP window.
              schema:
                type: integer
                example: 0
            RateLimit-Reset:
              description: Seconds until the current source-IP window resets.
              schema:
                type: integer
                example: 60
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
                example: 60
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                  meta:
                    type: object
                    properties:
                      timestamp:
                        type: string
                      request_id:
                        type: string
                    required:
                      - timestamp
                      - request_id
                required:
                  - error
                  - meta
              example:
                error:
                  code: RATE_LIMIT_EXCEEDED
                  message: Too many requests, please try again later
                meta:
                  timestamp: '2026-01-15T12:00:00.000Z'
                  request_id: example-request
        '500':
          description: Processing error
      security: []
components:
  schemas:
    SiteTopicsResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            company:
              type:
                - string
                - 'null'
            summary:
              type:
                - string
                - 'null'
            keywords:
              type: array
              items:
                type: string
            contentHash:
              type: string
              description: >-
                SHA-256 hash of the analyzed site text. Older cached analysis
                results may omit this field.
            topics:
              type: array
              items:
                type: object
                properties:
                  topicId:
                    type: number
                  topicName:
                    type: string
                  type:
                    type: string
                  industry:
                    type: string
                  category:
                    type: string
                  similarity:
                    type: number
                  matchedKeyword:
                    type: string
                required:
                  - topicId
                  - topicName
                  - type
                  - industry
                  - category
                  - similarity
                  - matchedKeyword
          required:
            - company
            - summary
            - keywords
            - topics
        meta:
          type: object
          properties:
            timestamp:
              type: string
            request_id:
              type: string
          required:
            - timestamp
            - request_id
      required:
        - data
        - meta

````