# Show an AI Config's targeting

GET https://app.launchdarkly.com/api/v2/projects/{projectKey}/ai-configs/{configKey}/targeting

Retrieves a specific AI Config's targeting by its key

Reference: https://launchdarkly.com/docs/api/ai-configs/get-ai-config-targeting

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: LaunchDarkly REST API
  version: 1.0.0
paths:
  /api/v2/projects/{projectKey}/ai-configs/{configKey}/targeting:
    get:
      operationId: get-ai-config-targeting
      summary: Show an AI Config's targeting
      description: Retrieves a specific AI Config's targeting by its key
      tags:
        - subpackage_aiConfigs
      parameters:
        - name: projectKey
          in: path
          required: true
          schema:
            type: string
        - name: configKey
          in: path
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AIConfigTargeting'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
servers:
  - url: https://app.launchdarkly.com
  - url: https://app.launchdarkly.us
components:
  schemas:
    AIConfigTargetingDefaults:
      type: object
      properties:
        onVariation:
          type: integer
        offVariation:
          type: integer
      required:
        - onVariation
        - offVariation
      title: AIConfigTargetingDefaults
    AIConfigTargetingEnvironmentTarget:
      type: object
      properties:
        contextKind:
          type: string
        values:
          type: array
          items:
            type: string
        variation:
          type: integer
      required:
        - contextKind
        - values
        - variation
      title: AIConfigTargetingEnvironmentTarget
    AIConfigTargetingEnvironmentFallthroughRolloutExperimentationAllocation:
      type: object
      properties:
        canReshuffle:
          type: boolean
        defaultVariation:
          type: integer
        type:
          type: string
      required:
        - canReshuffle
        - defaultVariation
        - type
      title: AIConfigTargetingEnvironmentFallthroughRolloutExperimentationAllocation
    AIConfigTargetingEnvironmentFallthroughRolloutVariation:
      type: object
      properties:
        _untracked:
          type: boolean
        variation:
          type: integer
        weight:
          type: integer
      required:
        - variation
        - weight
      title: AIConfigTargetingEnvironmentFallthroughRolloutVariation
    AIConfigTargetingEnvironmentFallthroughRollout:
      type: object
      properties:
        bucketBy:
          type: string
        contextKind:
          type: string
        experimentAllocation:
          $ref: >-
            #/components/schemas/AIConfigTargetingEnvironmentFallthroughRolloutExperimentationAllocation
        seed:
          type: integer
        variations:
          type: array
          items:
            $ref: >-
              #/components/schemas/AIConfigTargetingEnvironmentFallthroughRolloutVariation
      required:
        - contextKind
        - variations
      title: AIConfigTargetingEnvironmentFallthroughRollout
    AIConfigTargetingEnvironmentFallthrough:
      type: object
      properties:
        variation:
          type: integer
        rollout:
          $ref: '#/components/schemas/AIConfigTargetingEnvironmentFallthroughRollout'
      title: AIConfigTargetingEnvironmentFallthrough
    AIConfigTargetingEnvironmentRuleClause:
      type: object
      properties:
        attribute:
          type: string
        id:
          type: string
        negate:
          type: boolean
        op:
          type: string
        values:
          type: array
          items:
            description: Any type
      required:
        - attribute
        - id
        - negate
        - op
        - values
      title: AIConfigTargetingEnvironmentRuleClause
    AIConfigTargetingEnvironmentRule:
      type: object
      properties:
        clauses:
          type: array
          items:
            $ref: '#/components/schemas/AIConfigTargetingEnvironmentRuleClause'
        trackEvents:
          type: boolean
      required:
        - clauses
        - trackEvents
      title: AIConfigTargetingEnvironmentRule
    AIConfigTargetingEnvironment:
      type: object
      properties:
        contextTargets:
          type: array
          items:
            $ref: '#/components/schemas/AIConfigTargetingEnvironmentTarget'
        enabled:
          type: boolean
        fallthrough:
          $ref: '#/components/schemas/AIConfigTargetingEnvironmentFallthrough'
        lastModified:
          type: integer
          format: int64
        offVariation:
          type: integer
        rules:
          type: array
          items:
            $ref: '#/components/schemas/AIConfigTargetingEnvironmentRule'
        targets:
          type: array
          items:
            $ref: '#/components/schemas/AIConfigTargetingEnvironmentTarget'
        trackEvents:
          type: boolean
        trackEventsFallthrough:
          type: boolean
        _environmentName:
          type: string
        _version:
          type: integer
      required:
        - contextTargets
        - enabled
        - fallthrough
        - lastModified
        - rules
        - targets
        - trackEvents
        - trackEventsFallthrough
        - _environmentName
        - _version
      title: AIConfigTargetingEnvironment
    AiConfigsMetricListingRepKind:
      type: string
      enum:
        - pageview
        - click
        - custom
      description: The kind of event the metric tracks
      title: AiConfigsMetricListingRepKind
    AiConfigsLink:
      type: object
      properties:
        href:
          type: string
        type:
          type: string
      title: AiConfigsLink
    ActionSpecifier:
      type: string
      title: ActionSpecifier
    AiConfigsAccessDeniedReasonEffect:
      type: string
      enum:
        - allow
        - deny
      description: Whether this statement should allow or deny actions on the resources.
      title: AiConfigsAccessDeniedReasonEffect
    AiConfigsAccessDeniedReason:
      type: object
      properties:
        resources:
          type: array
          items:
            type: string
          description: Resource specifier strings
        notResources:
          type: array
          items:
            type: string
          description: >-
            Targeted resources are the resources NOT in this list. The
            <code>resources</code> and <code>notActions</code> fields must be
            empty to use this field.
        actions:
          type: array
          items:
            $ref: '#/components/schemas/ActionSpecifier'
          description: Actions to perform on a resource
        notActions:
          type: array
          items:
            $ref: '#/components/schemas/ActionSpecifier'
          description: >-
            Targeted actions are the actions NOT in this list. The
            <code>actions</code> and <code>notResources</code> fields must be
            empty to use this field.
        effect:
          $ref: '#/components/schemas/AiConfigsAccessDeniedReasonEffect'
          description: >-
            Whether this statement should allow or deny actions on the
            resources.
        role_name:
          type: string
      required:
        - effect
      title: AiConfigsAccessDeniedReason
    AiConfigsAccessDenied:
      type: object
      properties:
        action:
          type: string
        reason:
          $ref: '#/components/schemas/AiConfigsAccessDeniedReason'
      required:
        - action
        - reason
      title: AiConfigsAccessDenied
    AiConfigsAccessAllowedReasonEffect:
      type: string
      enum:
        - allow
        - deny
      description: Whether this statement should allow or deny actions on the resources.
      title: AiConfigsAccessAllowedReasonEffect
    AiConfigsAccessAllowedReason:
      type: object
      properties:
        resources:
          type: array
          items:
            type: string
          description: Resource specifier strings
        notResources:
          type: array
          items:
            type: string
          description: >-
            Targeted resources are the resources NOT in this list. The
            <code>resources</code> and <code>notActions</code> fields must be
            empty to use this field.
        actions:
          type: array
          items:
            $ref: '#/components/schemas/ActionSpecifier'
          description: Actions to perform on a resource
        notActions:
          type: array
          items:
            $ref: '#/components/schemas/ActionSpecifier'
          description: >-
            Targeted actions are the actions NOT in this list. The
            <code>actions</code> and <code>notResources</code> fields must be
            empty to use this field.
        effect:
          $ref: '#/components/schemas/AiConfigsAccessAllowedReasonEffect'
          description: >-
            Whether this statement should allow or deny actions on the
            resources.
        role_name:
          type: string
      required:
        - effect
      title: AiConfigsAccessAllowedReason
    AiConfigsAccessAllowedRep:
      type: object
      properties:
        action:
          type: string
        reason:
          $ref: '#/components/schemas/AiConfigsAccessAllowedReason'
      required:
        - action
        - reason
      title: AiConfigsAccessAllowedRep
    AiConfigsAccess:
      type: object
      properties:
        denied:
          type: array
          items:
            $ref: '#/components/schemas/AiConfigsAccessDenied'
        allowed:
          type: array
          items:
            $ref: '#/components/schemas/AiConfigsAccessAllowedRep'
      required:
        - denied
        - allowed
      title: AiConfigsAccess
    AiConfigsModification:
      type: object
      properties:
        date:
          type: string
          format: date-time
      title: AiConfigsModification
    AiConfigsMemberSummary:
      type: object
      properties:
        _links:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/AiConfigsLink'
          description: The location and content type of related resources
        _id:
          type: string
          description: The member's ID
        firstName:
          type: string
          description: The member's first name
        lastName:
          type: string
          description: The member's last name
        role:
          type: string
          description: >-
            The member's base role. If the member has no additional roles, this
            role will be in effect.
        email:
          type: string
          description: The member's email address
      required:
        - _links
        - _id
        - role
        - email
      title: AiConfigsMemberSummary
    AiConfigsMetricListingRepSuccessCriteria:
      type: string
      enum:
        - HigherThanBaseline
        - LowerThanBaseline
      description: For custom metrics, the success criteria
      title: AiConfigsMetricListingRepSuccessCriteria
    AiConfigsFilterType:
      type: string
      enum:
        - group
        - contextAttribute
        - eventProperty
      description: Filter type. One of [contextAttribute, eventProperty, group]
      title: AiConfigsFilterType
    AiConfigsFilter:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/AiConfigsFilterType'
          description: Filter type. One of [contextAttribute, eventProperty, group]
        attribute:
          type: string
          description: >-
            If not a group node, the context attribute name or event property
            name to filter on
        op:
          type: string
        values:
          type: array
          items:
            description: Any type
          description: The context attribute / event property values or group member nodes
        contextKind:
          type: string
          description: For context attribute filters, the context kind.
        negate:
          type: boolean
          description: >-
            If set, then take the inverse of the operator. 'in' becomes 'not
            in'.
      required:
        - type
        - op
        - values
        - negate
      title: AiConfigsFilter
    AiConfigsMetricListingRepUnitAggregationType:
      type: string
      enum:
        - average
        - sum
      description: The method by which multiple unit event values are aggregated
      title: AiConfigsMetricListingRepUnitAggregationType
    AiConfigsMetricListingRepAnalysisType:
      type: string
      enum:
        - mean
        - percentile
      description: The method for analyzing metric events
      title: AiConfigsMetricListingRepAnalysisType
    AiConfigsMetricEventDefaultRep:
      type: object
      properties:
        disabled:
          type: boolean
          description: >-
            Whether to disable defaulting missing unit events when calculating
            results. Defaults to false
        value:
          type: number
          format: double
          description: >-
            The default value applied to missing unit events. Set to 0 when
            <code>disabled</code> is false. No other values are currently
            supported.
      title: AiConfigsMetricEventDefaultRep
    AiConfigsMetricDataSourceRefRep:
      type: object
      properties:
        key:
          type: string
        environmentKey:
          type: string
        _name:
          type: string
        _integrationKey:
          type: string
      required:
        - key
      title: AiConfigsMetricDataSourceRefRep
    UrlMatcher:
      type: object
      additionalProperties:
        description: Any type
      title: UrlMatcher
    AiConfigsMetricListingRep:
      type: object
      properties:
        experimentCount:
          type: integer
          description: The number of experiments using this metric
        metricGroupCount:
          type: integer
          description: The number of metric groups using this metric
        guardedRolloutCount:
          type: integer
          description: The number of guarded rollouts using this metric
        releasePolicyCount:
          type: integer
          description: The number of release policies using this metric
        activeExperimentCount:
          type: integer
          description: The number of active experiments using this metric
        activeGuardedRolloutCount:
          type: integer
          description: The number of active guarded rollouts using this metric
        _id:
          type: string
          description: The ID of this metric
        _versionId:
          type: string
          description: The version ID of the metric
        _version:
          type: integer
          description: Version of the metric
        key:
          type: string
          description: A unique key to reference the metric
        name:
          type: string
          description: A human-friendly name for the metric
        kind:
          $ref: '#/components/schemas/AiConfigsMetricListingRepKind'
          description: The kind of event the metric tracks
        _attachedFlagCount:
          type: integer
          description: The number of feature flags currently attached to this metric
        _links:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/AiConfigsLink'
          description: The location and content type of related resources
        _site:
          $ref: '#/components/schemas/AiConfigsLink'
        _access:
          $ref: '#/components/schemas/AiConfigsAccess'
        tags:
          type: array
          items:
            type: string
          description: Tags for the metric
        _creationDate:
          type: integer
          format: int64
        lastModified:
          $ref: '#/components/schemas/AiConfigsModification'
        maintainerId:
          type: string
          description: The ID of the member who maintains this metric
        _maintainer:
          $ref: '#/components/schemas/AiConfigsMemberSummary'
        description:
          type: string
          description: Description of the metric
        category:
          type: string
          description: The category of the metric
        isNumeric:
          type: boolean
          description: >-
            For custom metrics, whether to track numeric changes in value
            against a baseline (<code>true</code>) or to track a conversion when
            an end user takes an action (<code>false</code>).
        successCriteria:
          $ref: '#/components/schemas/AiConfigsMetricListingRepSuccessCriteria'
          description: For custom metrics, the success criteria
        unit:
          type: string
          description: For numeric custom metrics, the unit of measure
        eventKey:
          type: string
          description: For custom metrics, the event key to use in your code
        randomizationUnits:
          type: array
          items:
            type: string
          description: An array of randomization units allowed for this metric
        filters:
          $ref: '#/components/schemas/AiConfigsFilter'
        unitAggregationType:
          $ref: '#/components/schemas/AiConfigsMetricListingRepUnitAggregationType'
          description: The method by which multiple unit event values are aggregated
        analysisType:
          $ref: '#/components/schemas/AiConfigsMetricListingRepAnalysisType'
          description: The method for analyzing metric events
        percentileValue:
          type: integer
          description: >-
            The percentile for the analysis method. An integer denoting the
            target percentile between 0 and 100. Required when
            <code>analysisType</code> is <code>percentile</code>.
        eventDefault:
          $ref: '#/components/schemas/AiConfigsMetricEventDefaultRep'
        dataSource:
          $ref: '#/components/schemas/AiConfigsMetricDataSourceRefRep'
        lastSeen:
          type: integer
          format: int64
        archived:
          type: boolean
          description: Whether the metric version is archived
        archivedAt:
          type: integer
          format: int64
        selector:
          type: string
          description: For click metrics, the CSS selectors
        urls:
          type: array
          items:
            $ref: '#/components/schemas/UrlMatcher'
        windowStartOffset:
          type: integer
          format: int64
          description: >-
            Not yet implemented - The start of the measurement window, in
            milliseconds relative to the unit's first exposure to a flag
            variation
        windowEndOffset:
          type: integer
          format: int64
          description: >-
            Not yet implemented - The end of the measurement window, in
            milliseconds relative to the unit's first exposure to a flag
            variation
        traceQuery:
          type: string
          description: For trace metrics, the trace query to use for the metric.
        traceValueLocation:
          type: string
          description: >-
            For trace metrics, the location in the trace to use for numeric
            values.
      required:
        - _id
        - _versionId
        - key
        - name
        - kind
        - _links
        - tags
        - _creationDate
        - dataSource
      title: AiConfigsMetricListingRep
    AiConfigsExperimentEnabledPeriodRep:
      type: object
      properties:
        startDate:
          type: integer
          format: int64
        stopDate:
          type: integer
          format: int64
      title: AiConfigsExperimentEnabledPeriodRep
    AiConfigsExperimentEnvironmentSettingRep:
      type: object
      properties:
        startDate:
          type: integer
          format: int64
        stopDate:
          type: integer
          format: int64
        enabledPeriods:
          type: array
          items:
            $ref: '#/components/schemas/AiConfigsExperimentEnabledPeriodRep'
      title: AiConfigsExperimentEnvironmentSettingRep
    AiConfigsLegacyExperimentRep:
      type: object
      properties:
        metricKey:
          type: string
        _metric:
          $ref: '#/components/schemas/AiConfigsMetricListingRep'
        environments:
          type: array
          items:
            type: string
        _environmentSettings:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/AiConfigsExperimentEnvironmentSettingRep'
      title: AiConfigsLegacyExperimentRep
    AiConfigsExperimentInfoRep:
      type: object
      properties:
        baselineIdx:
          type: integer
        items:
          type: array
          items:
            $ref: '#/components/schemas/AiConfigsLegacyExperimentRep'
      required:
        - baselineIdx
        - items
      title: AiConfigsExperimentInfoRep
    AIConfigTargetingVariationBoolean:
      type: boolean
      title: AIConfigTargetingVariationBoolean
    AIConfigTargetingVariationJSON:
      type: object
      properties: {}
      title: AIConfigTargetingVariationJSON
    AIConfigTargetingVariationNumber:
      type: number
      format: double
      title: AIConfigTargetingVariationNumber
    AIConfigTargetingVariationString:
      type: string
      title: AIConfigTargetingVariationString
    AIConfigTargetingVariation_value:
      oneOf:
        - $ref: '#/components/schemas/AIConfigTargetingVariationBoolean'
        - $ref: '#/components/schemas/AIConfigTargetingVariationJSON'
        - $ref: '#/components/schemas/AIConfigTargetingVariationNumber'
        - $ref: '#/components/schemas/AIConfigTargetingVariationString'
      title: AIConfigTargetingVariation_value
    AIConfigTargetingVariation:
      type: object
      properties:
        _id:
          type: string
        description:
          type: string
        name:
          type: string
        value:
          $ref: '#/components/schemas/AIConfigTargetingVariation_value'
      required:
        - _id
        - description
        - name
        - value
      title: AIConfigTargetingVariation
    AIConfigTargeting:
      type: object
      properties:
        createdAt:
          type: integer
          format: int64
          description: Unix timestamp in milliseconds
        defaults:
          $ref: '#/components/schemas/AIConfigTargetingDefaults'
        environments:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/AIConfigTargetingEnvironment'
        experiments:
          $ref: '#/components/schemas/AiConfigsExperimentInfoRep'
        key:
          type: string
        name:
          type: string
        tags:
          type: array
          items:
            type: string
        variations:
          type: array
          items:
            $ref: '#/components/schemas/AIConfigTargetingVariation'
        _version:
          type: integer
      required:
        - createdAt
        - environments
        - experiments
        - key
        - name
        - tags
        - variations
        - _version
      title: AIConfigTargeting
    Error:
      type: object
      properties:
        message:
          type: string
        code:
          type: string
      required:
        - message
        - code
      title: Error
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: Authorization

```

## SDK Code Examples

```python
import requests

url = "https://app.launchdarkly.com/api/v2/projects/projectKey/ai-configs/configKey/targeting"

headers = {"Authorization": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript
const url = 'https://app.launchdarkly.com/api/v2/projects/projectKey/ai-configs/configKey/targeting';
const options = {method: 'GET', headers: {Authorization: '<apiKey>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://app.launchdarkly.com/api/v2/projects/projectKey/ai-configs/configKey/targeting"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://app.launchdarkly.com/api/v2/projects/projectKey/ai-configs/configKey/targeting")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = '<apiKey>'

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://app.launchdarkly.com/api/v2/projects/projectKey/ai-configs/configKey/targeting")
  .header("Authorization", "<apiKey>")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://app.launchdarkly.com/api/v2/projects/projectKey/ai-configs/configKey/targeting', [
  'headers' => [
    'Authorization' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://app.launchdarkly.com/api/v2/projects/projectKey/ai-configs/configKey/targeting");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "<apiKey>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Authorization": "<apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://app.launchdarkly.com/api/v2/projects/projectKey/ai-configs/configKey/targeting")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```