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

# Generate SBSD payload

> Generates an SBSD payload. Send the visitor id from the SBSD script URL's `v` parameter, the `sbsd_o`, `bm_so` or `bm_o` cookie value, your User-Agent, the page URL and your language. Post the returned `body` to the script path on the site. A page load takes two payloads, `index` 0 then 1. A 429 challenge takes one with `index` 0.



## OpenAPI

````yaml api-reference/openapi/akamai-web.yaml POST /sbsd
openapi: 3.1.1
info:
  title: Roolink Akamai Web API
  summary: >-
    Bypass Akamai Bot Manager on the web — sensor (`_abck`), SBSD, Pixel
    (`ak_bmsc`), SEC-CPT, and script parsing.
  description: >-
    Endpoints for websites behind Akamai Bot Manager. Send your key in
    `X-Api-Key`, JSON in and out. The Akamai Web guides show the order to call
    them in.
  version: 1.0.0
  contact:
    name: Roolink Support
    url: https://roolink.io
    email: support@roolink.io
servers:
  - url: https://web.roolink.io/api/v1
    description: Production
security:
  - apiKey: []
paths:
  /sbsd:
    post:
      summary: Generate SBSD payload
      description: >-
        Generates an SBSD payload. Send the visitor id from the SBSD script
        URL's `v` parameter, the `sbsd_o`, `bm_so` or `bm_o` cookie value, your
        User-Agent, the page URL and your language. Post the returned `body` to
        the script path on the site. A page load takes two payloads, `index` 0
        then 1. A 429 challenge takes one with `index` 0.
      operationId: generateSbsd
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SbsdRequest'
            example:
              vid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
              bm_o: AAQA...
              userAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
              url: https://target.example.com/
              language: en-US
              script_url: https://target.example.com/sbsd-script
      responses:
        '200':
          description: SBSD payload generated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SbsdResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/QuotaExceeded'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    SbsdRequest:
      type: object
      required:
        - vid
        - userAgent
        - bm_o
      properties:
        index:
          type: integer
          description: >-
            0 for the first payload of a page load, 1 for the second. Always 0
            when answering a 429 challenge.
        vid:
          type: string
          description: The `v` value from the SBSD script URL.
        userAgent:
          type: string
        bm_o:
          type: string
          description: Value of the target's `bm_o` (or `sbsd_o`) cookie.
        url:
          type: string
          format: uri
          description: The page URL. Also the referer for the post.
        script_url:
          type: string
          format: uri
          description: The SBSD script URL extracted from the page.
        language:
          type: string
          example: en-US
    SbsdResponse:
      type: object
      required:
        - body
      properties:
        body:
          type: string
          description: SBSD payload. Post it to the script path on the site.
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          description: Human-readable error message.
  responses:
    BadRequest:
      description: Required fields missing or malformed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
        text/plain:
          schema:
            type: string
          example: invalid request body
    Unauthorized:
      description: Missing or invalid `X-Api-Key`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    QuotaExceeded:
      description: The key has no quota or balance left for this product.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: quota exhausted
    InternalError:
      description: Unexpected server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
        text/plain:
          schema:
            type: string
          example: internal server error
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-Api-Key
      description: Customer API key issued from the Roolink dashboard.

````