Skip to content

feeds.delete()

Permanently delete a feed and all its entries.

Signature

feeds.delete(feedId: string): Promise<void>

Parameters

feedId

  • Type: string
  • Required: Yes
  • Description: The UUID of the feed to delete

Returns

  • Type: Promise<void>

Returns nothing on success. Throws error if deletion fails.

Usage

Basic Example

const feedId = '123e4567-e89b-12d3-a456-426614174000';
 
await grapevine.feeds.delete(feedId);
console.log('Feed deleted successfully');

With Confirmation

async function deleteFeedWithConfirmation(feedId: string) {
  // Get feed details first
  const feed = await grapevine.feeds.get(feedId);
  
  console.log(`About to delete: ${feed.name}`);
  console.log(`This will delete ${feed.total_entries} entries`);
  
  // Confirm deletion (in a real app, get user confirmation)
  const confirmed = true; // await getUserConfirmation();
  
  if (confirmed) {
    await grapevine.feeds.delete(feedId);
    console.log('Feed and all entries deleted');
  }
}

Batch Deletion

async function deleteMultipleFeeds(feedIds: string[]) {
  const results = await Promise.allSettled(
    feedIds.map(id => grapevine.feeds.delete(id))
  );
  
  results.forEach((result, index) => {
    if (result.status === 'fulfilled') {
      console.log(`Deleted feed ${feedIds[index]}`);
    } else {
      console.error(`Failed to delete ${feedIds[index]}:`, result.reason);
    }
  });
}

Behind the Scenes

This method:

  1. Validates the feed ID format
  2. Gets authentication headers (nonce + signature)
  3. Makes DELETE request to /v1/feeds/{feedId}
  4. Handles 402 payment if required
  5. Deletes feed and all associated entries

Error Handling

try {
  await grapevine.feeds.delete(feedId);
  console.log('Feed deleted');
} catch (error) {
  if (error.message.includes('404')) {
    console.error('Feed not found');
  } else if (error.message.includes('403')) {
    console.error('Not authorized - you can only delete your own feeds');
  } else if (error.message.includes('402')) {
    console.error('Payment required for deletion');
  } else {
    console.error('Error:', error.message);
  }
}

Notes

  • Authentication: Required - must be feed owner
  • Permanent: This action cannot be undone
  • Cascading: Deletes all entries in the feed
  • Payment: May require x402 micropayment (handled automatically)
  • Ownership: Can only delete feeds you own

Related