Anthropic | Files API

The Files API allows you to upload, list, retrieve, download, and delete files. Uploaded files can be referenced in messages using document content blocks with file source type.

Note: The Files API requires the beta header files-api-2025-04-14. Set this in the AnthropicOptions.BetaHeaders property.

Upload a File


Anthropic := TsgcHTTP_API_Anthropic.Create(nil);
Anthropic.AnthropicOptions.ApiKey := 'API_KEY';
Anthropic.AnthropicOptions.BetaHeaders := 'files-api-2025-04-14';

oFile := Anthropic.UploadFile('C:\documents\report.pdf');
Try
  WriteLn('File ID: ' + oFile.Id);
  WriteLn('Filename: ' + oFile.Filename);
  WriteLn('Size: ' + IntToStr(oFile.SizeBytes) + ' bytes');
  WriteLn('MIME Type: ' + oFile.MimeType);
Finally
  oFile.Free;
End;

List Files


oList := Anthropic.ListFiles(50);
Try
  for i := 0 to Length(oList.Data) - 1 do
    WriteLn(Format('%s - %s (%d bytes)',
      [oList.Data[i].Id, oList.Data[i].Filename, oList.Data[i].SizeBytes]));
  WriteLn('Has more: ' + BoolToStr(oList.HasMore, True));
Finally
  oList.Free;
End;

Use File in Messages

Reference uploaded files using the document content block with SourceType set to 'file'.


oDocBlock := TsgcAnthropicClass_Request_Content_Block.Create;
oDocBlock.ContentType := 'document';
oDocBlock.SourceType := 'file';
oDocBlock.FileId := 'file_abc123';  // ID from UploadFile

oTextBlock := TsgcAnthropicClass_Request_Content_Block.Create;
oTextBlock.ContentType := 'text';
oTextBlock.Text := 'Summarize this document.';

Delete a File


oDeleted := Anthropic.DeleteFile('file_abc123');
Try
  WriteLn('Deleted: ' + oDeleted.Id);
Finally
  oDeleted.Free;
End;

API Methods