Get Upload File Metadata
Retrieve the knowledge item associated with an uploaded file using the upload file metadata ID. This is useful for tracking files after upload and finding their corresponding knowledge items.
Endpoint
GET /v1/workspaces/{workspaceId}/upload-file-metadata/{uploadFileMetadataId}Authentication
This endpoint requires a Bearer token obtained through the two-step authentication flow:
- First, generate an access token using your API key
- Use that access token in the Authorization header
See Authentication for the complete authentication flow.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
workspaceId | string (UUID) | Yes | The ID of your workspace |
uploadFileMetadataId | string (UUID) | Yes | The ID of the upload file metadata |
Headers
| Header | Type | Required | Description |
|---|---|---|---|
Authorization | string | Yes | Bearer token with access token |
organizationid | string (UUID) | Yes | Your organization ID |
Response
Success Response
Status Code: 200 OK
Body:
{
"knowledge": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"metadata": {
"title": "Product Guide",
"author": "John Doe",
"version": "2.0"
}
},
"spaceKnowledge": null
}Response Fields
| Field | Type | Description |
|---|---|---|
knowledge | object | null | The workspace-level knowledge item associated with this file |
knowledge.id | string (UUID) | Knowledge item ID |
knowledge.metadata | object | Custom metadata for the knowledge item |
spaceKnowledge | object | null | The space-level knowledge item (if uploaded to a space) |
spaceKnowledge.id | string (UUID) | Space knowledge item ID |
spaceKnowledge.metadata | object | Custom metadata for the space knowledge item |
Examples
Basic Request
# Step 1: Generate access token (do this once, reuse for multiple requests)
ACCESS_TOKEN=$(curl -s -X POST \
'https://api.sharely.ai/workspaces/your-workspace-id/generate-access-key-token' \
-H 'Content-Type: application/json' \
-H 'x-api-key: sk-sharely-your-api-key' \
-d '{}' | jq -r '.token')
# Step 2: Get upload file metadata
curl -X GET \
'https://api.sharely.ai/v1/workspaces/your-workspace-id/upload-file-metadata/upload-metadata-id' \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H 'organizationid: your-organization-id'JavaScript Example
const API_KEY = 'sk-sharely-your-api-key';
const WORKSPACE_ID = 'your-workspace-id';
const ORGANIZATION_ID = 'your-organization-id';
const API_BASE_URL = 'https://api.sharely.ai';
// Step 1: Generate access token
async function getAccessToken() {
const response = await fetch(
`${API_BASE_URL}/workspaces/${WORKSPACE_ID}/generate-access-key-token`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': API_KEY
},
body: JSON.stringify({})
}
);
const data = await response.json();
return data.token;
}
// Step 2: Get upload file metadata
async function getUploadFileMetadata(accessToken, uploadFileMetadataId) {
const response = await fetch(
`${API_BASE_URL}/v1/workspaces/${WORKSPACE_ID}/upload-file-metadata/${uploadFileMetadataId}`,
{
headers: {
'Authorization': `Bearer ${accessToken}`,
'organizationid': ORGANIZATION_ID
}
}
);
if (!response.ok) {
throw new Error(`Failed to get metadata: ${response.statusText}`);
}
return await response.json();
}
// Usage
const accessToken = await getAccessToken();
const result = await getUploadFileMetadata(accessToken, 'upload-metadata-id');
if (result.knowledge) {
console.log('Workspace Knowledge ID:', result.knowledge.id);
console.log('Metadata:', result.knowledge.metadata);
}
if (result.spaceKnowledge) {
console.log('Space Knowledge ID:', result.spaceKnowledge.id);
}Track File After Upload
// After uploading a file, use the returned metadata ID to track it
async function uploadAndTrack(accessToken, file) {
// Upload the file
const formData = new FormData();
formData.append('file', file);
formData.append('status', 'BACKGROUND_START');
const uploadResponse = await fetch(
`${API_BASE_URL}/v1/workspaces/${WORKSPACE_ID}/knowledge/file`,
{
method: 'POST',
headers: {
'Authorization': `Bearer ${accessToken}`,
'organizationid': ORGANIZATION_ID
},
body: formData
}
);
const uploadResult = await uploadResponse.json();
// Later, retrieve the knowledge item using the upload metadata ID
const metadata = await getUploadFileMetadata(
accessToken,
uploadResult.uploadFileMetadataId
);
return {
uploadId: uploadResult.uploadFileMetadataId,
knowledgeId: metadata.knowledge?.id,
metadata: metadata.knowledge?.metadata
};
}Error Responses
401 Unauthorized
{
"error": "Unauthorized",
"message": "Invalid or missing access token"
}404 Not Found
Upload file metadata not found:
{
"error": "Error",
"message": "Upload file metadata with ID {id} not found"
}Related Endpoints
- Upload File - Upload files to create knowledge
- Get Knowledge - Get knowledge item details
- Update Metadata - Update knowledge metadata