Botify Analysis API

The Analysis API from Botify — 30 operation(s) for analysis.

OpenAPI Specification

botify-analysis-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  description: Botify Saas API
  title: Botify Analysis API
servers:
- url: https://api.botify.com/v1
security:
- DjangoRestToken: []
tags:
- name: Analysis
paths:
  /analyses/{username}/{project_slug}/create/launch:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      description: Project's identifier
      schema:
        type: string
    post:
      description: Create and launch an analysis for a project
      summary: ''
      operationId: launchAnalysisCreate
      tags:
      - Analysis
      responses:
        default:
          description: error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPayload'
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalysisCreateAndLaunch'
  /analyses/{username}/{project_slug}/{analysis_slug}:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      description: Project's identifier
      schema:
        type: string
    - name: analysis_slug
      in: path
      required: true
      description: Analysis' identifier
      schema:
        type: string
    get:
      description: Get an Analysis detail
      summary: ''
      operationId: getAnalysisSummary
      tags:
      - Analysis
      parameters:
      - in: query
        name: previous_crawl
        required: false
        description: Previous analysis identifier
        schema:
          type: string
      responses:
        default:
          description: error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPayload'
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalysisDetail'
  /analyses/{username}/{project_slug}/{analysis_slug}/crawl_statistics:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      description: Project's identifier
      schema:
        type: string
    - name: analysis_slug
      in: path
      required: true
      description: Analysis' identifier
      schema:
        type: string
    get:
      description: Return global statistics for an analysis
      summary: ''
      operationId: getCrawlStatistics
      tags:
      - Analysis
      responses:
        default:
          description: error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPayload'
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CrawlStatistics'
  /analyses/{username}/{project_slug}/{analysis_slug}/crawl_statistics/time:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      description: Project's identifier
      schema:
        type: string
    - name: analysis_slug
      in: path
      required: true
      description: Analysis' identifier
      schema:
        type: string
    get:
      description: Return crawl statistics grouped by time frequency (1 min, 5 mins or 60 min) for an analysis
      summary: ''
      operationId: getCrawlStatisticsByFrequency
      tags:
      - Analysis
      parameters:
      - in: query
        name: limit
        required: false
        description: max number of elements to retrieve
        schema:
          type: integer
          format: int32
      - in: query
        name: frequency
        required: true
        description: Aggregation frequency
        schema:
          type: string
          enum:
          - 1mn
          - 5mn
          - 60mn
      responses:
        default:
          description: error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPayload'
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CrawlStatisticsTime'
  /analyses/{username}/{project_slug}/{analysis_slug}/crawl_statistics/urls/{list_type}:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      description: Project's identifier
      schema:
        type: string
    - name: analysis_slug
      in: path
      required: true
      description: Analysis' identifier
      schema:
        type: string
    - name: list_type
      in: path
      required: true
      description: URLs list type (crawled URLs or error URLs)
      schema:
        type: string
        enum:
        - crawled
        - errors
    get:
      description: Return a list of 1000 latest URLs crawled (all crawled URLs or only URLS with HTTP errors)
      summary: ''
      operationId: getCrawlStatisticsUrls
      tags:
      - Analysis
      responses:
        default:
          description: error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPayload'
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CrawlStatisticsUrls'
  /analyses/{username}/{project_slug}/{analysis_slug}/features/ganalytics/orphan_urls/{medium}/{source}:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      description: Project's identifier
      schema:
        type: string
    - name: analysis_slug
      in: path
      required: true
      description: Analysis' identifier
      schema:
        type: string
    - name: medium
      in: path
      required: true
      description: 'Type of traffic, value: ''organic'' (from search engine)or ''social'' (from a social network)'
      schema:
        type: string
        enum:
        - organic
        - social
    - name: source
      in: path
      required: true
      description: 'Traffic source, value: name of the search engine or social network'
      schema:
        type: string
        enum:
        - all
        - aol
        - ask
        - baidu
        - bing
        - facebook
        - google
        - google+
        - linkedin
        - naver
        - pinterest
        - reddit
        - tumblr
        - twitter
        - yahoo
        - yandex
    get:
      description: 'Legacy    List of Orphan URLs. URLs which generated visits from the selected source according to Google Analytics data, but were not crawled with by the Botify crawler (either because no links to them were found on the website, or because the crawler was not allowed to follow these links according to the project settings).   For a search engine (medium: origanic; sources: all, aol, ask, baidu, bing, google, naver, yahoo, yandex) or a social network (medium: social; sources: all, facebook, google+, linkedin, pinterest, reddit, tumblr, twitter)'
      summary: Legacy
      operationId: getGanalyticsOrphanURLs
      tags:
      - Analysis
      parameters:
      - in: query
        name: page
        description: Page Number
        required: false
        schema:
          type: integer
          default: 1
      - in: query
        name: size
        description: Page Size
        required: false
        schema:
          type: integer
      responses:
        default:
          description: error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPayload'
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  next:
                    type: string
                  previous:
                    type: string
                  count:
                    type: integer
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/CrawlOrphanURLs'
                  page:
                    type: integer
                  size:
                    type: integer
  /analyses/{username}/{project_slug}/{analysis_slug}/features/links/percentiles:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      description: Project's identifier
      schema:
        type: string
    - name: analysis_slug
      in: path
      required: true
      description: Analysis' identifier
      schema:
        type: string
    get:
      description: Get inlinks percentiles
      summary: ''
      operationId: getLinksPercentiles
      tags:
      - Analysis
      responses:
        default:
          description: error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPayload'
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LinksPercentiles'
  /analyses/{username}/{project_slug}/{analysis_slug}/features/pagerank/lost:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      description: Project's identifier
      schema:
        type: string
    - name: analysis_slug
      in: path
      required: true
      description: Analysis' identifier
      schema:
        type: string
    get:
      description: Lost pagerank
      summary: ''
      operationId: getPageRankLost
      tags:
      - Analysis
      responses:
        default:
          description: error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPayload'
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageRankLost'
  /analyses/{username}/{project_slug}/{analysis_slug}/features/scoring/summary:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      description: Project's identifier
      schema:
        type: string
    - name: analysis_slug
      in: path
      required: true
      description: Analysis' identifier
      schema:
        type: string
    get:
      description: Scoring summary
      summary: ''
      operationId: getScoring
      tags:
      - Analysis
      responses:
        default:
          description: error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPayload'
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScoringSummary'
  /analyses/{username}/{project_slug}/{analysis_slug}/features/search_console/stats:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      description: Project's identifier
      schema:
        type: string
    - name: analysis_slug
      in: path
      required: true
      description: Analysis' identifier
      schema:
        type: string
    get:
      description: List clicks and impressions per day
      summary: ''
      operationId: getKeywordsStats
      tags:
      - Analysis
      responses:
        default:
          description: error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPayload'
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KeywordsStats'
  /analyses/{username}/{project_slug}/{analysis_slug}/features/sitemaps/report:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      description: Project's identifier
      schema:
        type: string
    - name: analysis_slug
      in: path
      required: true
      description: Analysis' identifier
      schema:
        type: string
    get:
      description: Get global information of the sitemaps found (sitemaps indexes, invalid sitemaps urls, etc.)
      summary: ''
      operationId: getSitemapsReport
      tags:
      - Analysis
      responses:
        default:
          description: error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPayload'
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SitemapsReport'
  /analyses/{username}/{project_slug}/{analysis_slug}/features/sitemaps/samples/out_of_config:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      description: Project's identifier
      schema:
        type: string
    - name: analysis_slug
      in: path
      required: true
      description: Analysis' identifier
      schema:
        type: string
    get:
      description: Sample list of URLs which were found in your sitemaps but outside of the crawl perimeter defined for the project, for instance domain/subdomain or protocol (HTTP/HTTPS) not allowed in the crawl settings.
      summary: ''
      operationId: getSitemapsSamplesOutOfConfig
      tags:
      - Analysis
      parameters:
      - in: query
        name: page
        description: Page Number
        required: false
        schema:
          type: integer
          default: 1
      - in: query
        name: size
        description: Page Size
        required: false
        schema:
          type: integer
      responses:
        default:
          description: error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPayload'
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  next:
                    type: string
                  previous:
                    type: string
                  count:
                    type: integer
                  results:
                    type: array
                    items:
                      type: string
                  page:
                    type: integer
                  size:
                    type: integer
  /analyses/{username}/{project_slug}/{analysis_slug}/features/sitemaps/samples/sitemap_only:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      description: Project's identifier
      schema:
        type: string
    - name: analysis_slug
      in: path
      required: true
      description: Analysis' identifier
      schema:
        type: string
    get:
      description: Sample list of URLs which were found in your sitemaps, within the project allowed scope (allowed domains/subdomains/protocols), but not found by the Botify crawler.
      summary: ''
      operationId: getSitemapsSamplesSitemapsOnly
      tags:
      - Analysis
      parameters:
      - in: query
        name: page
        description: Page Number
        required: false
        schema:
          type: integer
          default: 1
      - in: query
        name: size
        description: Page Size
        required: false
        schema:
          type: integer
      responses:
        default:
          description: error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPayload'
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  next:
                    type: string
                  previous:
                    type: string
                  count:
                    type: integer
                  results:
                    type: array
                    items:
                      type: string
                  page:
                    type: integer
                  size:
                    type: integer
  /analyses/{username}/{project_slug}/{analysis_slug}/features/top_domains/domains:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      description: Project's identifier
      schema:
        type: string
    - name: analysis_slug
      in: path
      required: true
      description: Analysis' identifier
      schema:
        type: string
    get:
      description: Top domains
      summary: ''
      operationId: getLinksTopDomains
      tags:
      - Analysis
      parameters:
      - in: query
        name: page
        description: Page Number
        required: false
        schema:
          type: integer
          default: 1
      - in: query
        name: size
        description: Page Size
        required: false
        schema:
          type: integer
      responses:
        default:
          description: error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPayload'
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  next:
                    type: string
                  previous:
                    type: string
                  count:
                    type: integer
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/LinksTopDomains'
                  page:
                    type: integer
                  size:
                    type: integer
  /analyses/{username}/{project_slug}/{analysis_slug}/features/top_domains/subdomains:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      description: Project's identifier
      schema:
        type: string
    - name: analysis_slug
      in: path
      required: true
      description: Analysis' identifier
      schema:
        type: string
    get:
      description: Top subddomains
      summary: ''
      operationId: getLinksTopSubdomains
      tags:
      - Analysis
      parameters:
      - in: query
        name: page
        description: Page Number
        required: false
        schema:
          type: integer
          default: 1
      - in: query
        name: size
        description: Page Size
        required: false
        schema:
          type: integer
      responses:
        default:
          description: error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPayload'
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  next:
                    type: string
                  previous:
                    type: string
                  count:
                    type: integer
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/LinksTopDomains'
                  page:
                    type: integer
                  size:
                    type: integer
  /analyses/{username}/{project_slug}/{analysis_slug}/features/visits/orphan_urls/{medium}/{source}:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      description: Project's identifier
      schema:
        type: string
    - name: analysis_slug
      in: path
      required: true
      description: Analysis' identifier
      schema:
        type: string
    - name: medium
      in: path
      required: true
      description: 'Type of traffic, value: ''organic'' (from search engine)or ''social'' (from a social network)'
      schema:
        type: string
        enum:
        - organic
        - social
    - name: source
      in: path
      required: true
      description: 'Traffic source, value: name of the search engine or social network'
      schema:
        type: string
        enum:
        - all
        - aol
        - ask
        - baidu
        - bing
        - facebook
        - google
        - google+
        - linkedin
        - naver
        - pinterest
        - reddit
        - tumblr
        - twitter
        - yahoo
        - yandex
    get:
      description: 'List of Orphan URLs. URLs which generated visits from the selected source according to Google Analytics data, but were not crawled with by the Botify crawler (either because no links to them were found on the website, or because the crawler was not allowed to follow these links according to the project settings).   For a search engine (medium: origanic; sources: all, aol, ask, baidu, bing, google, naver, yahoo, yandex) or a social network (medium: social; sources: all, facebook, google+, linkedin, pinterest, reddit, tumblr, twitter)'
      summary: ''
      operationId: getVisitsOrphanURLs
      tags:
      - Analysis
      parameters:
      - in: query
        name: page
        description: Page Number
        required: false
        schema:
          type: integer
          default: 1
      - in: query
        name: size
        description: Page Size
        required: false
        schema:
          type: integer
      responses:
        default:
          description: error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPayload'
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  next:
                    type: string
                  previous:
                    type: string
                  count:
                    type: integer
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/CrawlOrphanURLs'
                  page:
                    type: integer
                  size:
                    type: integer
  /analyses/{username}/{project_slug}/{analysis_slug}/pause:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      description: Project's identifier
      schema:
        type: string
    - name: analysis_slug
      in: path
      required: true
      description: Analysis' identifier
      schema:
        type: string
    post:
      description: Pause an analysis for a project
      summary: ''
      operationId: pauseAnalysis
      tags:
      - Analysis
      responses:
        default:
          description: error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPayload'
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalysisPause'
  /analyses/{username}/{project_slug}/{analysis_slug}/resume:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      description: Project's identifier
      schema:
        type: string
    - name: analysis_slug
      in: path
      required: true
      description: Analysis' identifier
      schema:
        type: string
    post:
      description: Resume an analysis for a project
      summary: ''
      operationId: resumeAnalysis
      tags:
      - Analysis
      responses:
        default:
          description: error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPayload'
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalysisResume'
  /analyses/{username}/{project_slug}/{analysis_slug}/segments:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      description: Project's identifier
      schema:
        type: string
    - name: analysis_slug
      in: path
      required: true
      description: Analysis' identifier
      schema:
        type: string
    get:
      description: Get the segments feature public metadata of an analysis.
      summary: ''
      operationId: getAnalysisSegments
      tags:
      - Analysis
      parameters:
      - in: query
        name: page
        description: Page Number
        required: false
        schema:
          type: integer
          default: 1
      - in: query
        name: size
        description: Page Size
        required: false
        schema:
          type: integer
      responses:
        default:
          description: error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPayload'
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  next:
                    type: string
                  previous:
                    type: string
                  count:
                    type: integer
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/AnalysisSegments'
                  page:
                    type: integer
                  size:
                    type: integer
  /analyses/{username}/{project_slug}/{analysis_slug}/staticfiles/robots-txt-indexes:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      description: Project's identifier
      schema:
        type: string
    - name: analysis_slug
      in: path
      required: true
      description: Analysis' identifier
      schema:
        type: string
    get:
      description: Return an object containing all robots.txt files found on the project's domains. The object is null for virtual robots.txt.
      summary: ''
      operationId: getRobotsTxtIndexesView
      tags:
      - Analysis
      parameters:
      - in: query
        name: page
        description: Page Number
        required: false
        schema:
          type: integer
          default: 1
      - in: query
        name: size
        description: Page Size
        required: false
        schema:
          type: integer
      responses:
        default:
          description: error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPayload'
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  next:
                    type: string
                  previous:
                    type: string
                  count:
                    type: integer
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/Default'
                  page:
                    type: integer
                  size:
                    type: integer
  /analyses/{username}/{project_slug}/{analysis_slug}/staticfiles/robots-txt-indexes/{robots_txt}:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      description: Project's identifier
      schema:
        type: string
    - name: analysis_slug
      in: path
      required: true
      description: Analysis' identifier
      schema:
        type: string
    - name: robots_txt
      in: path
      required: true
      description: Filename
      schema:
        type: string
    get:
      description: Return content of a robots.txt file.
      summary: ''
      operationId: getRobotsTxtFileView
      tags:
      - Analysis
      parameters:
      - in: query
        name: page
        description: Page Number
        required: false
        schema:
          type: integer
          default: 1
      - in: query
        name: size
        description: Page Size
        required: false
        schema:
          type: integer
      responses:
        default:
          description: error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPayload'
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  next:
                    type: string
                  previous:
                    type: string
                  count:
                    type: integer
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/Default'
                  page:
                    type: integer
                  size:
                    type: integer
  /analyses/{username}/{project_slug}/{analysis_slug}/urls:
    parameters:
    - name: username
      in: path
      required: true
      description: User's identifier
      schema:
        type: string
    - name: project_slug
      in: path
      required: true
      desc

# --- truncated at 32 KB (66 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/botify/refs/heads/main/openapi/botify-analysis-api-openapi.yml