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

# Get synthetic data config

> Get the last used synthetic data config



## OpenAPI

````yaml /.assets/openapi.yaml get /api/{projectId}/synthetic-data
openapi: 3.0.0
info:
  title: Edge Impulse API
  version: 1.0.0
servers:
  - url: https://studio.edgeimpulse.com/v1
security:
  - ApiKeyAuthentication: []
  - JWTAuthentication: []
  - JWTHttpHeaderAuthentication: []
  - OAuth2: []
paths:
  /api/{projectId}/synthetic-data:
    get:
      tags:
        - Projects
      summary: Get synthetic data config
      description: Get the last used synthetic data config
      operationId: getSyntheticDataConfig
      parameters:
        - $ref: '#/components/parameters/ProjectIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSyntheticDataConfigResponse'
components:
  parameters:
    ProjectIdParameter:
      name: projectId
      in: path
      required: true
      description: Project ID
      schema:
        type: integer
  schemas:
    GetSyntheticDataConfigResponse:
      allOf:
        - $ref: '#/components/schemas/GenericApiResponse'
        - type: object
          required:
            - recentJobs
          properties:
            recentJobs:
              type: array
              items:
                type: object
                required:
                  - job
                  - samples
                properties:
                  job:
                    $ref: '#/components/schemas/Job'
                  samples:
                    type: array
                    items:
                      $ref: '#/components/schemas/Sample'
            lastUsedTransformationBlockId:
              type: integer
            lastUsedParameters:
              type: object
              additionalProperties:
                type: string
    GenericApiResponse:
      type: object
      required:
        - success
      properties:
        success:
          type: boolean
          description: Whether the operation succeeded
        error:
          type: string
          description: Optional error description (set if 'success' was false)
    Job:
      type: object
      required:
        - id
        - key
        - created
        - category
        - categoryKey
        - jobNotificationUids
      properties:
        id:
          type: integer
          description: >-
            Job id, use this to refer back to the job. The web socket API also
            uses this ID.
        category:
          type: string
          description: User-friendly category (e.g. "Training model")
        categoryKey:
          type: string
          description: Machine-readable category (e.g. "learn-train-studio-wrapper")
        key:
          type: string
          description: >
            External job identifier, this can be used to categorize jobs, and
            recover job status. E.g. set this to 'keras-192' for a Keras
            learning block with ID 192. When a user refreshes the page you can
            check whether a job is active for this ID and re-attach.
        created:
          type: string
          format: date-time
          description: When the job was created.
        started:
          type: string
          format: date-time
          description: When the job was started.
        finished:
          type: string
          format: date-time
          description: When the job was finished.
        finishedSuccessful:
          type: boolean
          description: Whether the job finished successfully.
        jobNotificationUids:
          type: array
          description: The IDs of users who should be notified when a job is finished.
          items:
            type: integer
        additionalInfo:
          type: string
          description: Additional metadata associated with this job.
        computeTime:
          type: number
          description: >-
            Job duration time in seconds from start to finished, measured by k8s
            job watcher.
        createdByUser:
          $ref: '#/components/schemas/CreatedUpdatedByUser'
          description: The user who started this job.
        categoryCount:
          type: integer
          description: >-
            Some job categories keep a counter on the job number, e.g. in
            synthetic data, so we know what the 1st, 2nd etc. job was in the UI.
        metadata:
          type: object
          description: Structured job metadata
    Sample:
      type: object
      required:
        - id
        - filename
        - signatureValidate
        - created
        - lastModified
        - category
        - coldstorageFilename
        - label
        - intervalMs
        - frequency
        - originalIntervalMs
        - originalFrequency
        - deviceType
        - sensors
        - valuesCount
        - added
        - boundingBoxes
        - boundingBoxesType
        - chartType
        - isDisabled
        - isProcessing
        - processingError
        - isCropped
        - projectId
        - sha256Hash
        - datastreams
      properties:
        id:
          type: integer
          example: 2
        filename:
          type: string
          example: idle01.d8Ae
        signatureValidate:
          type: boolean
          description: Whether signature validation passed
          example: true
        signatureMethod:
          type: string
          example: HS256
        signatureKey:
          type: string
          description: >-
            Either the shared key or the public key that was used to validate
            the sample
        created:
          type: string
          format: date-time
          description: >-
            Timestamp when the sample was created on device, or if no accurate
            time was known on device, the time that the file was processed by
            the ingestion service.
        lastModified:
          type: string
          format: date-time
          description: Timestamp when the sample was last modified.
        category:
          $ref: '#/components/schemas/RawDataCategory'
          example: training
        coldstorageFilename:
          type: string
        label:
          type: string
          example: healthy-machine
        intervalMs:
          type: number
          description: >-
            Interval between two windows (1000 / frequency). NOTE: Previously
            this value could change depending on whether the sample was
            resampled. This behavior has been removed.
          example: 16
        frequency:
          type: number
          description: >-
            Frequency of the sample. NOTE: Previously this value could change
            depending on whether the sample was resampled. This behavior has
            been removed.
          example: 62.5
        originalIntervalMs:
          type: number
          description: DEPRECATED. See "intervalMs".
          example: 16
        originalFrequency:
          type: number
          description: DEPRECATED. See "frequency".
          example: 62.5
        deviceName:
          type: string
        deviceType:
          type: string
        sensors:
          type: array
          items:
            $ref: '#/components/schemas/Sensor'
        valuesCount:
          type: integer
          description: >-
            Number of readings in this file. If you have multiple datastreams,
            this is the value count from the datastream with the highest
            frequency.
        totalLengthMs:
          type: number
          description: Total length (in ms.) of this file
        added:
          type: string
          format: date-time
          description: >-
            Timestamp when the sample was added to the current acquisition
            bucket.
        boundingBoxes:
          type: array
          items:
            $ref: '#/components/schemas/BoundingBox'
        boundingBoxesType:
          type: string
          enum:
            - object_detection
            - constrained_object_detection
        chartType:
          type: string
          enum:
            - chart
            - image
            - video
            - table
        thumbnailVideo:
          type: string
        thumbnailVideoFull:
          type: string
        isDisabled:
          type: boolean
          description: True if the current sample is excluded from use
        isProcessing:
          type: boolean
          description: True if the current sample is still processing (e.g. for video)
        processingJobId:
          type: integer
          description: Set when sample is processing and a job has picked up the request
        processingError:
          type: boolean
          description: Set when processing this sample failed
        processingErrorString:
          type: string
          description: Error (only set when processing this sample failed)
        isCropped:
          type: boolean
          description: >-
            Whether the sample is cropped from another sample (and has crop
            start / end info)
        metadata:
          type: object
          description: Sample free form associated metadata
          additionalProperties:
            type: string
        projectId:
          type: integer
          description: Unique identifier of the project this sample belongs to
        projectOwnerName:
          type: string
          description: Name of the owner of the project this sample belongs to
        projectName:
          type: string
          description: Name of the project this sample belongs to
        projectLabelingMethod:
          $ref: '#/components/schemas/ProjectLabelingMethod'
          description: What labeling flow the project this sample belongs to uses
        sha256Hash:
          type: string
          description: Data sample SHA 256 hash (including CBOR envelope if applicable)
        structuredLabels:
          type: array
          items:
            $ref: '#/components/schemas/StructuredLabel'
        structuredLabelsList:
          type: array
          items:
            type: string
        createdBySyntheticDataJobId:
          type: integer
          description: >-
            If this sample was created by a synthetic data job, it's referenced
            here.
        imageDimensions:
          type: object
          required:
            - width
            - height
          properties:
            width:
              type: integer
            height:
              type: integer
        videoUrl:
          type: string
          description: Video link, cropped and in original resolution.
        videoUrlFull:
          type: string
          description: Video link in original resolution.
        labelMap:
          $ref: '#/components/schemas/SampleLabelMapLabels'
        lastUpdatedBy:
          description: >-
            Information about the entity that last updated a sample. This can be
            a user, a project API key, an OAuth client, or a dataset version
            restore operation.
          discriminator:
            propertyName: type
            mapping:
              user:
                $ref: '#/components/schemas/LastUpdatedByUser'
              projectApiKey:
                $ref: '#/components/schemas/LastUpdatedByProjectApiKey'
              oauthClient:
                $ref: '#/components/schemas/LastUpdatedByOAuthClient'
              datasetVersionRestore:
                $ref: '#/components/schemas/LastUpdatedByDatasetVersionRestore'
          oneOf:
            - $ref: '#/components/schemas/LastUpdatedByUser'
            - $ref: '#/components/schemas/LastUpdatedByProjectApiKey'
            - $ref: '#/components/schemas/LastUpdatedByOAuthClient'
            - $ref: '#/components/schemas/LastUpdatedByDatasetVersionRestore'
        datastreams:
          type: array
          items:
            $ref: '#/components/schemas/SampleDatastream'
    CreatedUpdatedByUser:
      type: object
      required:
        - id
        - name
        - username
      properties:
        id:
          type: integer
        name:
          type: string
        username:
          type: string
        photo:
          type: string
    RawDataCategory:
      type: string
      enum:
        - training
        - testing
        - validation
        - post-processing
    Sensor:
      type: object
      required:
        - index
        - name
        - units
      properties:
        index:
          type: integer
          description: >-
            Index of the sensor (globally, so you can refer back to it in e.g.
            getSampleAsAudio)
        name:
          type: string
          description: Name of the axis
          example: accX
        units:
          type: string
          description: >-
            Type of data on this axis. Needs to comply to SenML units (see
            https://www.iana.org/assignments/senml/senml.xhtml).
    BoundingBox:
      type: object
      description: >-
        This has the _absolute values_ for x/y/w/h (so 0..x (where x is the w/h
        of the image))
      required:
        - label
        - x
        - 'y'
        - width
        - height
      properties:
        label:
          type: string
        x:
          type: integer
        'y':
          type: integer
        width:
          type: integer
        height:
          type: integer
    ProjectLabelingMethod:
      type: string
      enum:
        - single_label
        - object_detection
        - label_map
    StructuredLabel:
      type: object
      description: >-
        A structured label contains a label, and the range for which this label
        is valid. `endIndex` is inclusive. E.g. `{ startIndex: 10, endIndex: 13,
        label: 'running' }` means that the values at index 10, 11, 12, 13 are
        labeled 'running'. To get time codes you can multiple by the sample's
        `intervalMs` property.
      required:
        - startIndex
        - endIndex
        - label
      properties:
        startIndex:
          type: integer
          description: Start index of the label (e.g. 0)
        endIndex:
          type: integer
          description: >-
            End index of the label (e.g. 3). This value is inclusive, so {
            startIndex: 0, endIndex: 3 } covers 0, 1, 2, 3.
        label:
          type: string
          description: The label for this section.
        labelMap:
          $ref: '#/components/schemas/SampleLabelMapLabels'
    SampleLabelMapLabels:
      description: >
        Structured sample labels in the form of a key-value map.

        This property is optional and only defined for samples with key-value
        labels.
      discriminator:
        propertyName: type
        mapping:
          key-values:
            $ref: '#/components/schemas/SampleKeyValueLabels'
      oneOf:
        - $ref: '#/components/schemas/SampleKeyValueLabels'
    LastUpdatedByUser:
      type: object
      description: The user who last updated a sample.
      required:
        - type
        - id
      properties:
        type:
          type: string
          enum:
            - user
        id:
          type: integer
          description: The ID of the user that last updated the sample.
    LastUpdatedByProjectApiKey:
      type: object
      description: The project API key that last updated a sample.
      required:
        - type
        - id
      properties:
        type:
          type: string
          enum:
            - projectApiKey
        id:
          type: integer
          description: The ID of the project API key that last updated the sample.
    LastUpdatedByOAuthClient:
      type: object
      description: >-
        The OAuth client that last updated a sample, and the user it is acting
        on behalf of.
      required:
        - type
        - oauthClientId
      properties:
        type:
          type: string
          enum:
            - oauthClient
        oauthClientId:
          type: string
          description: The ID of the OAuth client that last updated the sample.
        userId:
          type: integer
          description: The user ID the OAuth client is acting on behalf of.
    LastUpdatedByDatasetVersionRestore:
      type: object
      description: The dataset restore  that last updated a sample.
      required:
        - type
        - datasetVersionId
        - groupKey
      properties:
        type:
          type: string
          enum:
            - datasetVersionRestore
        datasetVersionId:
          type: integer
          description: The ID of the dataset version that last updated the sample.
        groupKey:
          type: string
          description: A random grouping ID to keep restore snapshots isolated.
        actor:
          description: The actor that started the dataset restore operation.
          type: object
          oneOf:
            - $ref: '#/components/schemas/LastUpdatedByUser'
            - $ref: '#/components/schemas/LastUpdatedByProjectApiKey'
            - $ref: '#/components/schemas/LastUpdatedByOAuthClient'
    SampleDatastream:
      type: object
      required:
        - index
        - chartType
        - intervalMs
        - frequencyHz
        - sensors
        - valuesCount
        - totalLengthMs
      properties:
        index:
          type: integer
        chartType:
          type: string
          enum:
            - chart
            - image
            - video
            - table
        intervalMs:
          description: Interval between two windows (1000 / frequency).
          type: number
        frequencyHz:
          description: Frequency of the datastream
          type: number
        sensors:
          type: array
          items:
            $ref: '#/components/schemas/Sensor'
        valuesCount:
          type: integer
          description: Number of readings in this datastream.
        imageDimensions:
          type: object
          required:
            - width
            - height
          properties:
            width:
              type: integer
            height:
              type: integer
        totalLengthMs:
          type: number
          description: Total length (in ms.) of the datastream
    SampleKeyValueLabels:
      type: object
      required:
        - type
        - labels
      properties:
        type:
          type: string
          enum:
            - key-values
        labels:
          type: object
          additionalProperties:
            type: string
  securitySchemes:
    ApiKeyAuthentication:
      type: apiKey
      in: header
      name: x-api-key
    JWTAuthentication:
      type: apiKey
      in: cookie
      name: jwt
    JWTHttpHeaderAuthentication:
      type: apiKey
      in: header
      name: x-jwt-token
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: /v1/oauth/authorize
          tokenUrl: /v1/oauth/token
          scopes:
            openid: Access to basic profile information
            email: Access to email address
            profile: Access to full profile information
        implicit:
          authorizationUrl: /v1/oauth/authorize
          scopes:
            openid: Access to basic profile information
            email: Access to email address
            profile: Access to full profile information
        password:
          tokenUrl: /v1/oauth/token
          scopes:
            openid: Access to basic profile information
            email: Access to email address
            profile: Access to full profile information
        clientCredentials:
          tokenUrl: /v1/oauth/token
          scopes:
            openid: Access to basic profile information
            email: Access to email address
            profile: Access to full profile information

````