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

# Get Artifact

> Retrieve detailed information about an artifact

## Path Parameters

<ParamField path="artifactId" type="string" required>
  The unique identifier of the artifact to retrieve.
</ParamField>

## Response

<ResponseField name="id" type="string">
  Unique identifier of the artifact.
</ResponseField>

<ResponseField name="name" type="string">
  Display name of the artifact.
</ResponseField>

<ResponseField name="type" type="string">
  Type of artifact. One of: `video`, `audio`, or `script`.
</ResponseField>

<ResponseField name="status" type="string">
  Current upload/processing status. One of:

  * `created` - Artifact created, processing pending
  * `upload_started` - Processing in progress
  * `upload_completed` - Processing completed successfully
  * `upload_failed` - Processing failed
</ResponseField>

<ResponseField name="uploadMethod" type="string">
  Method used to upload the artifact. One of:

  * `direct_url` - Uploaded via presigned URL, direct URL, or S3 path
  * `fragments` - Created from concatenated fragments
</ResponseField>

<ResponseField name="size" type="number | null">
  File size in bytes. Null if not yet processed.
</ResponseField>

<ResponseField name="duration" type="number | null">
  Duration in seconds for video/audio artifacts. Null for script type or if not yet processed.
</ResponseField>

<ResponseField name="errorMessage" type="string | null">
  Error message if upload/processing failed. Null if no error occurred.
</ResponseField>

<ResponseField name="createdAt" type="string">
  ISO timestamp when the artifact was created.
</ResponseField>

<ResponseField name="updatedAt" type="string">
  ISO timestamp when the artifact was last updated.
</ResponseField>

<ResponseField name="s3Path" type="string">
  Internal S3 storage path where the artifact file is stored.
</ResponseField>

<ResponseField name="company" type="object">
  Company information associated with the artifact.

  <Expandable title="properties">
    <ResponseField name="id" type="string">
      Unique identifier of the company.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="createdBy" type="object">
  User who created the artifact.

  <Expandable title="properties">
    <ResponseField name="id" type="string">
      Unique identifier of the user.
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET \
    https://studio.dubformer.ai/api/v1/artifacts/1a2b3c4d5e6f7g8h9i0j \
    -H 'Authorization: Bearer YOUR_API_KEY'
  ```

  ```typescript TypeScript theme={null}
  import axios from 'axios';

  const artifactId = '1a2b3c4d5e6f7g8h9i0j';
  const response = await axios.get(
    `https://studio.dubformer.ai/api/v1/artifacts/${artifactId}`,
    {
      headers: {
        'Authorization': 'Bearer YOUR_API_KEY'
      }
    }
  );

  console.log(response.data);
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "id": "694eb201f9fc340f3ae47280",
    "name": "Source Audio",
    "type": "audio",
    "status": "upload_completed",
    "uploadMethod": "fragments",
    "size": 6638526,
    "duration": 138.301,
    "errorMessage": null,
    "createdAt": "2025-12-26T16:04:17.367Z",
    "updatedAt": "2026-01-12T14:42:59.985Z",
    "s3Path": "uploads/694eb201f9fc340f3ae47280/source_video.wav",
    "company": {
      "id": "6686801a54e7c52988dbc531"
    },
    "createdBy": {
      "id": "68517bac632d23eb88bf8e5c"
    }
  }
  ```
</ResponseExample>

<Note>
  This endpoint returns metadata about the artifact, including the internal S3 storage path. Note that the S3 path is provided for reference but direct access requires proper authentication and authorization.
</Note>
