# Retrieve SQL from segment rule

Retrieve a SQL from a segment rule.

Endpoint: POST /audiences/{audienceId}/segments/query
Version: 1.0.0
Security: TdApikeyAuth

## Path parameters:

  - `audienceId` (integer, required)
    Master Segment id of the segment

## Request fields (application/json):

  - `format` (string)
    Enum: "sql"

  - `realtime` (boolean)
    use `kind` instead

  - `kind` (integer)
    0: batch, 1: realtime, 2: funnel_stage

  - `rule` (any)

  - `rule.conditions` (array, required)

  - `rule.conditions.conditions` (array, required)

  - `rule.conditions.conditions.exclude` (boolean, required)

  - `rule.conditions.conditions.id` (string, required)

  - `rule.conditions.conditions.type` (string, required)
    Enum: "FunnelStageReference", "Reference", "AbTestVariantReference"

  - `rule.conditions.conditions.includeConvertedCustomers` (boolean, required)

  - `rule.conditions.conditions.maxGrade` (number, required)

  - `rule.conditions.conditions.minGrade` (number, required)

  - `rule.conditions.conditions.leftValue` (object, required)

  - `rule.conditions.conditions.leftValue.attribute` (string, required)
    Enum: "r_quartile", "f_quartile", "m_quartile", "rfm_segment", "rfm_score", "rfm_cluster_rank", "rfm_quartile"

  - `rule.conditions.conditions.operator` (any, required)

  - `rule.conditions.conditions.solutionType` (string, required)
    Enum: "rfm"

  - `rule.conditions.conditions.arrayMatching` (any, required)

  - `rule.conditions.conditions.arrayMatching.atLeast` (number, required)

  - `rule.conditions.conditions.arrayMatching.atMost` (number, required)

  - `rule.conditions.conditions.arrayMatching.exactly` (number, required)

  - `rule.conditions.conditions.limit` (object)

  - `rule.conditions.conditions.limit.number` (number, required)

  - `rule.conditions.conditions.limit.orderColumns` (array)

  - `rule.conditions.conditions.limit.type` (string, required)
    Enum: "Count", "Percent"

  - `rule.conditions.description` (string)

  - `rule.conditions.expr` (string)

  - `rule.conditions.type` (string, required)
    Enum: "Or", "And", "Composite"

  - `rule.expr` (string)

  - `rule.type` (string, required)
    Enum: "Or", "And", "Composite"

  - `funnel_stage` (object)
    required if creating segment as a rule of funnel_stage

  - `funnel_stage.funnel_id` (integer)

  - `funnel_stage.stage_id` (integer)

## Response 200 fields (application/json):

  - `sql` (string)

  - `statement` (object, required)
    an object tree which will be sent to cdp-kvs-server

  - `batch_workflows` (object, required)
    workflow definition; key is file namd and value is file content of the generating workflow.

## Response 400 fields (application/json):

  - `code` (string, required)

  - `message` (string, required)

## Response 401 fields (application/json):

  - `code` (string, required)

  - `message` (string, required)

## Response 403 fields (application/json):

  - `code` (string, required)

  - `message` (string, required)

## Response 404 fields (application/json):

  - `code` (string, required)

  - `message` (string, required)

## Response 4XX fields (application/json):

  - `code` (string, required)

  - `message` (string, required)

## Response 5XX fields (application/json):

  - `status` (integer, required)
    Error status

  - `error` (string, required)
    Error message

  - `details` (string)
    Detailed error message

