

# How to Export Your LinkedIn Comments and Reactions

Yes. Request your own LinkedIn data archive and inspect the available Comments and Reactions files. An archive is a downloaded copy of account data. This is the official way to get a record of your own comment and reaction activity. The files supplied depend on the selected categories and your account activity. Do not assume they contain every old or deleted action. [LinkedIn’s official data download guide](https://www.linkedin.com/help/linkedin/answer/a1339364)

Start with that archive. Use a public post collector only if you also need to check a post linked from an archive record. Your past action and the post’s current public state are different facts. A failed public check must not remove your archive record.

The method below produces two tables. The first holds your recorded actions. The optional second table holds current public post context. Here, context means information such as the post text and the time of the public check.

## What the export can answer

The reader’s question is about “a log of what you’ve commented/reacted.” That calls for your account’s own records. It does not call for a list of comments that happen to be visible on public posts today.

LinkedIn states that it supplies your own personal data, rather than other members’ personal data, through this export method. Its documented categories include Comments and Reactions. Only categories that apply to the account are supplied. [LinkedIn’s official export scope](https://www.linkedin.com/help/linkedin/answer/a1339364)

Use the files to answer a limited question: what comment and reaction actions does this archive record? Keep the selected categories and the archive request date with your notes. Those details help explain the scope later.

Do not turn the export into a promise of complete lifetime history. A missing file does not prove zero activity. A file with records does not establish that every earlier action is present. This guide’s source evidence does not establish complete coverage of deleted or old activity.

The [Chronometrica LinkedIn Post Scraper](https://apify.com/chronometrica/linkedin-post-scraper) serves a separate purpose. An Actor is a hosted data collection program. This Actor accepts known public post links. It does not sign in to your LinkedIn account or export your private comment and reaction history.

## Request and save your own archive

Use LinkedIn on a personal computer. Interface labels can change. Keep the [official download guide](https://www.linkedin.com/help/linkedin/answer/a1339364) open while you follow these steps.

1. Open Me.
2. Open Settings & Privacy.
3. Open Data Privacy.
4. Open Download your data.
5. Choose the categories needed for your comments and reactions.
6. Request the archive.
7. Download it through your account’s own notification.
8. Save an unchanged copy locally before you prepare a working table.

Follow the download window stated in the notification or official guide. This source evidence does not establish an exact waiting time or download window. Do not plan around an invented duration.

Keep the private archive on your own computer. Do not send it to a writing service or place it in a public dataset. A dataset is a collection of data rows. The optional public collection step needs selected public post links, not your archive or account credentials.

Record the request date, download date, and selected categories in a short note. These are your recordkeeping fields. They are not claims about fields that LinkedIn will include in each exported file.

## Inspect the files before you build the log

Open the actual Comments and Reactions files supplied for your account. Read their headings and a few rows before you combine anything. This guide does not assume fixed file names, column names, date formats, or text fields.

1. Confirm which requested categories have files.
2. Record each file’s original name and headings.
3. Count its data rows separately from its heading row.
4. Identify any dates, links, action details, and text actually present.
5. Note missing fields without filling them from memory.
6. Keep all original files unchanged.

If a Comments or Reactions file is missing, check your selected categories first. Missing files can also reflect account activity. If the cause remains unclear, record it as unknown. Do not create an empty file and call it proof of no actions. [LinkedIn’s category and account limits](https://www.linkedin.com/help/linkedin/answer/a1339364)

Keep date values exactly as supplied. If you make a second date column for sorting, preserve the original beside it. Do not assign a time zone when the source does not state one. An archive download date is not the date when you commented or reacted.

Also inspect what a link points to. A URL is a web address. An archive link may identify a comment, a post, an article, or another entry. Its presence alone does not make it a supported public post input.

## Build one table of recorded actions

Use one working row for each source action row you retain from the Comments and Reactions files. Keep the action type attached to that row. A comment and a reaction on the same post remain separate actions.

The following columns are proposed working-table fields. They are reader-made labels, not promised LinkedIn export headings.

| Working field | What to save | Missing-value rule |
| --- | --- | --- |
| Source file | Original file name | Investigate a missing source reference |
| Source row reference | A way to find the row in the unchanged file | Do not invent a LinkedIn action ID |
| Action type | Comment or reaction, based on the source category | Keep an unclear type unresolved |
| Original date | Exact source date value | Leave it missing if absent |
| Original URL | Exact source link, where present | Keep the action without a link |
| Original text | Exact source text, where present | Do not invent comment or reaction text |
| Checked public post URL | A separately confirmed supported post link | Leave it missing if uncertain |
| Context outcome | Not checked, matched, or unresolved | Label this as your assessment |

Retain every other original source field too. The proposed columns help you organise the work. They do not replace the source data.

A source row reference locates a row within a saved file. It is not necessarily a stable identifier for an action across several exports. An identifier is a value used to refer to a record. Do not treat a spreadsheet row number as a LinkedIn action identifier.

Do not combine rows merely because their post links or text match. Several actions can concern the same post. If you later compare multiple archives, treat possible repeated records as a separate review task. Equal-looking rows alone do not establish that two records describe one action.

Keep missing values distinct from zero. Zero is a known count. A missing date, missing URL, or missing file is a lack of information. None means that the member performed zero actions.

## Decide whether you need current public post context

You can stop after the activity table if your goal is a personal record. Public collection is optional.

Use it when you have a supported public post URL and need to read the post’s current available text or record its current public state. A snapshot is a record made at one check time. It cannot establish that the post looked the same when you acted on it.

Keep three times separate:

| Time | Meaning |
| --- | --- |
| Original action date | Date recorded for your comment or reaction |
| Post publication value | Publication information returned for the public post |
| Public check time | Time when the collector observed the public post |

The Actor’s `publishedAt` and `observedAt` fields serve different purposes. Keep their original names and values. Use `observedAt` for the public check time. Do not use either field to replace your archive’s action date. [LinkedIn Post Scraper output](https://apify.com/chronometrica/linkedin-post-scraper)

For choosing a collector, the [known-post Actor comparison](/en/articles/chronometrica-vs-apimaestro-linkedin-posts/) explains why attempted-input records matter. That choice comes after your archive export. It does not supply the account history.

## Prepare only supported public post links

The checked Post Actor input uses public LinkedIn `/posts/` URLs in `startUrls`. The input requires at least one URL. A schema is the set of rules for accepted fields and values. The supplied example passed a format check against the public input schema. That check did not establish that the example post was available. [Public input schema](https://api.apify.com/v2/acts/lB0DRaOyItRbrC6LU/builds/default)

1. Copy candidate links into a separate working list.
2. Preserve each archive’s original link in the activity table.
3. Confirm which candidates are supported public `/posts/` links.
4. Store a confirmed post link in the extra working column.
5. Prepare a distinct list of confirmed links for the public check.
6. Keep uncertain links out of the Actor input and mark them unresolved.

URL normalisation means making a consistent working form of a link. Do this only in an extra column. Do not invent a post address from a comment link or strip parts until a link merely looks acceptable. Comment links, article links, and collaborative-article entries are not automatically supported post inputs.

Several actions can share one confirmed post URL. You can check that URL once for a chosen snapshot while retaining every action row. Reducing the public check list must not reduce the activity table.

The [guide to matching LinkedIn datasets](/en/articles/linkedin-join-three-datasets/) explains why uncertain or conflicting matches must stay unresolved. Here, the narrower task is to attach current post context to an existing archive action. It does not require collecting commenter profiles.

## Use the public preset only for the optional check

The [LinkedIn Post Scraper for Known Public URLs Task](https://apify.com/chronometrica/linkedin-post-scraper/examples/linkedin-known-post-scraper) offers a starting preset. A Task is a saved Actor input preset. Its public page was checked for this brief. Its saved input was not read through an authenticated account, and no paid run was made.

Inspect its settings before use. Replace the entire sample list with your intended supported public post URLs. Do not leave the example in place and assume it represents your archive.

This is the supplied small input. JSON is a text format for structured data. Here, `startUrls` contains a list with one public post URL.

```json
{
  "startUrls": [
    "https://www.linkedin.com/posts/timferriss_i-took-my-whole-genome-dumped-it-into-ai-activity-7333162625675038720-TJPX"
  ]
}
```

Use the public preset only for the optional check

The URL is a supplied example, not a newly collected result. Replace it before your check. Send only supported public post links. Do not send the archive, credentials, private messages, or your reaction history.

Start with a small list you can inspect row by row. Running that list is a proposed reader action. The evidence for this article covers the public contract and input format, not a completed collection or a current performance test.

## Keep public results in a separate context table

Save the public output separately from the archive table. Preserve returned fields rather than copying only usable post text.

| Actor field | Purpose in the context table |
| --- | --- |
| `inputUrl` | Connect the attempt to the submitted link |
| `url` | Preserve the returned post URL, when present |
| `activityId`, `ugcPostId`, `postUrn` | Preserve distinct post identity fields |
| `text` | Keep returned public post text, when present |
| `publishedAt` | Keep the returned post publication value |
| `status`, `statusReason` | Keep the reported outcome and explanation |
| `observedAt` | Keep the public observation time |

These fields are in the checked public output contract. A successful row can include them; do not assume every value will be present. Retain other returned fields as needed. Missing public counts remain `null`, which means missing rather than zero. [LinkedIn Post Scraper contract](https://apify.com/chronometrica/linkedin-post-scraper)

Choose at most one context row per confirmed post URL for this report. If you repeat a check, retain the separate observations and state which one you selected. Then match each action to that selected context row. A join means combining rows through a checked matching value.

After the join, the activity row count must stay the same. Extra rows can mean that several context observations matched one action. Fewer rows can mean unmatched actions were dropped. Correct the matching rule or context selection, then check again.

A failed lookup cannot show that a post never existed. An unavailable post may leave the reason unresolved. Preserve the returned outcome without inventing a deletion, privacy change, or other cause.

## Worked example: six actions and three public checks

This example is original fiction. All action labels, post labels, and outcomes below are invented for teaching. They are not collected LinkedIn records or Actor test results.

The fictional archive contains four comment actions and two reaction actions. Three distinct, confirmed public post URLs can be checked. Post A and Post B return available current context. Post C is unavailable in this fictional check.

| Archive action | Action type | Confirmed post | Current context outcome |
| --- | --- | --- | --- |
| C1 | Comment | A | Available |
| C2 | Comment | A | Available |
| C3 | Comment | B | Available |
| C4 | Comment | C | Unavailable |
| R1 | Reaction | A | Available |
| R2 | Reaction | B | Available |

The activity table keeps all six actions. C4 stays because the archive records it. The failed current context check does not erase that action.

The separate context table has three attempted URLs:

| Fictional post label | Attempted URLs | Available current posts | Unresolved current contexts |
| --- | --- | --- | --- |
| A | 1 URL | 1 post | 0 contexts |
| B | 1 URL | 1 post | 0 contexts |
| C | 1 URL | 0 posts | 1 context |
| Total | 3 URLs | 2 posts | 1 context |

Check the arithmetic and units:

- 4 comment actions + 2 reaction actions = 6 archive actions.
- 2 available post contexts + 1 unresolved post context = 3 attempted URLs.
- 3 actions linked to A + 2 actions linked to B + 1 action linked to C = 6 retained actions.
- 6 activity rows before the join = 6 activity rows after the join.

Report four comments, two reactions, three attempted URLs, and two available current posts. Do not report “two comments.” Two is the number of available current posts, not the number of your comment actions.

The table’s zero available posts for C describes this fictional check. It does not mean zero past actions. If a returned public count is missing, keep it missing. Do not substitute zero or use it to revise the archive totals.

## Check the result before you use it

1. Confirm that your notes state the requested export categories.
2. Confirm that each working action has a source file and row reference.
3. Confirm that original fields, dates, links, and text remain unchanged.
4. Confirm that missing files and values remain distinct from known zeros.
5. Confirm that uncertain links were not forced into the public input list.
6. Confirm that every attempted public URL has an explained result or an unresolved gap.
7. Confirm that unmatched actions remain in the activity table.
8. Confirm that the join did not change the activity row count.
9. Report archive actions, URLs checked, available posts, and unresolved contexts as separate measures.

A supported URL that you did not check is unattempted. A submitted URL with a failed result is attempted. A returned row with missing text needs review for your purpose. Keep these states distinct.

If you later compare claims in available post text, use the [post claims and supporting evidence guide](/en/articles/linkedin-post-content-evidence/). That is a separate analysis. Current text alone cannot prove why you reacted or what the post said at the time of your action.

## Choose your next action

Request your LinkedIn archive first. Inspect the available Comments and Reactions files, preserve the originals, and build the activity table. That answers the personal-history question within the archive’s limits.

If you also need current public context, select a small set of confirmed post URLs. Inspect the [Chronometrica LinkedIn Post Scraper](https://apify.com/chronometrica/linkedin-post-scraper), replace its sample input, and keep its results in a separate table. Retain your past actions even when current context remains unavailable.

## Sources

- [LinkedIn official data download guide — checked 25 October 2026; supports the owned-data export route and applicable Comments and Reactions categories; does not establish complete old or deleted activity](https://www.linkedin.com/help/linkedin/answer/a1339364)
- [Chronometrica LinkedIn Post Scraper — public contract checked 25 October 2026; known public post collection, not a private member activity export; no paid run made for this brief](https://apify.com/chronometrica/linkedin-post-scraper)
- [Public default-build schema, build 1.0.60 — checked 25 October 2026; supplied input passed a format check; post availability and runtime performance were not tested](https://api.apify.com/v2/acts/lB0DRaOyItRbrC6LU/builds/default)
- [LinkedIn Post Scraper for Known Public URLs Task — public page presence checked 25 October 2026; authenticated saved input was not inspected and the preset was not run](https://apify.com/chronometrica/linkedin-post-scraper/examples/linkedin-known-post-scraper)