Skip to main content
School of Electronic Engineering and Computer Science

How to Bulk Publish Activities to Padlet from a Spreadsheet

Dr Riasat Islam

Many of us use Padlet for seminars, tutorials, starter questions, reading responses,  and weekly discussion activities. It is a flexible tool, but setting up large numbers of posts manually can become repetitive very quickly.

For example, you may have 30 seminar prompts, weekly reflection questions, or group activities that need to be added to a Padlet board. Copying and pasting each one by hand takes time, and it also increases the chance of small mistakes.

A more efficient approach is to prepare the activities in a spreadsheet and publish them to Padlet in bulk using the Padlet API.

One row in your spreadsheet becomes one post on your Padlet board.

This post explains how the workflow works, what you need, and the safety checks I recommend before using it with a live teaching board.

Example code: GitHub repository for this workflow [6]

Who this resource is for

This resource is aimed at Queen Mary educators who use Padlet for recurring or high-volume teaching activities and want a quicker, more consistent way to prepare a board. The examples below focus on active learning, student engagement, formative learning and collaborative preparation across teaching teams.

  • Seminar and tutorial questions — prepare structured prompts for pair or group discussion, helping students participate actively during taught sessions.
  • Weekly discussion prompts — publish a consistent sequence of questions that students can respond to before or after class, including across multiple seminar groups.
  • Starter and plenary activities — check prior knowledge at the beginning of a session or invite students to summarise their learning at the end.
  • Reading-response tasks — give students focused questions that support preparation for class and make their initial thinking visible for discussion.
  • Revision and formative — learning exercises — create low-stakes retrieval questions and practice activities that help students identify gaps before assessed work.
  • Exit tickets and formative checks — collect brief reflections on what students understood, what remains unclear, and what may need revisiting in the next session.
  • Collaborative module preparation — allow module teams to draft and review activities in a shared spreadsheet before one agreed set is published to Padlet.

The workflow is most valuable when activities are already maintained in a spreadsheet, reused across modules or teaching periods, prepared collaboratively, or revised in batches before a new semester. Instead of copying each activity into Padlet individually, the tool checks the spreadsheet and publishes each row as a separate post.

No web-development knowledge is required, although users will need Python, Padlet Public API access, and administrator access to the destination board. For a small number of one-off posts, entering them directly in Padlet will usually be quicker.

What this workflow does

This workflow creates new Padlet posts in bulk from a CSV spreadsheet.

It is useful when you want to:

  • prepare a full set of seminar or tutorial activities;
  • seed a Padlet board before the start of teaching;
  • reuse a board structure but update the content for a new cohort;
  • prepare activities collaboratively in a spreadsheet before publishing;
  • reduce repetitive copy-and-paste work.

This workflow is best understood as a way of seeding or republishing activity prompts. It does not edit or delete existing Padlet posts. If you need to make a small one-off change, editing directly in Padlet may still be quicker.

Padlet public API documentation describes API access for sending posts to boards, creating comments and reactions, and retrieving post data. Padlet also states that public API use requires an eligible subscription. [1]

What you need

Before starting, you will need:

  • a Padlet account with Public API access;
  • administrator access to the Padlet board you want to use;
  • your Padlet API key;
  • the board ID for your Padlet;
  • Python installed on your computer;
  • the example bulk publishing script from the GitHub repository above.

Padlet API documentation states that you need a paid Padlet subscription, and that you should check your Developer settings to see whether you can generate an API key. It also states that you must be an admin of the Padlet board you want to access through the API. [2]

Step 1: Prepare your spreadsheet

Create a CSV file using Excel, Google Sheets, Numbers, or another spreadsheet tool.

Use the following column headings:

row_id,subject,body,attachment_url,attachment_caption,color
q1,Starter question,"What is one example of learning by trial and error?",,,blue
q2,Pair discussion,"Compare supervised learning and reinforcement learning in two bullet points.",,,green
q3,Useful link,"Open the reading before answering the prompt.",https://example.com/reading,Course reading,purple

Each row represents one Padlet post.

Column What it means
row_id A short unique ID, such as q1 or week2-starter. Keep this stable if you run the tool again.
subject The title of the Padlet post.
body The main activity instructions.
attachment_url Optional link to attach to the post.
attachment_caption Optional label for the link.
color Optional post colour, such as red, orange, green, blue, or purple.

You can leave optional fields blank.

Padlet create-post documentation describes fields such as subject, body, attachment information, and colour. The documented colour values are red, orange, green, blue, and purple. It also notes that at least one of subject, body, or attachment is required for a successful post request. [3]

Step 2: Install the example tool

Clone the GitHub repository:

git clone https://github.com/riasatislam/padlet-bulk-publish.git
cd padlet-bulk-publish

Then create a virtual environment and install the tool:

python -m venv .venv
source .venv/bin/activate
python -m pip install -e .

On Windows PowerShell, the activation command is usually:

.\.venv\Scripts\Activate.ps1

 

Step 3: Add your Padlet details

Copy the example settings file:

cp .env.example .env

Then open the .env file and add your Padlet details:

PADLET_API_KEY=your_api_key_here
PADLET_BOARD_ID=your_board_id_here

Keep this file private. Do not upload it to GitHub, QMplus, Teams, SharePoint, or any shared folder.

Your API key should be treated like a password. Padlet documentation states that API keys are included in the request header when making API requests. [2]

Step 4: Run a dry run first

Before publishing anything to Padlet, run a dry run.

A dry run checks your spreadsheet and shows what would be posted, but it does not create any posts on Padlet.

padlet-bulk-publish publish \
  --csv examples/activities.csv \
  --state published-posts.json \
  --dry-run

Check the preview carefully. Make sure the titles, activity instructions, links, captions, and colours all look correct.

This is the most important step. It allows you to catch mistakes before students see the board.

Step 5: Publish the posts

Once the dry run looks correct, publish the posts:

padlet-bulk-publish publish \
  --csv examples/activities.csv \
  --state published-posts.json \
  --execute

The tool will create one Padlet post for each valid row in your spreadsheet.

The Padlet endpoint used for this is:

POST https://api.padlet.dev/v1/boards/{board_id}/posts

Padlet documents this endpoint as creating a new post on a board and returning a post object. The endpoint requires the API key and administrator or owner access to the board. [3]

The tool will also create a local file called:

published-posts.json

This file records which spreadsheet rows have already been published.

Step 6: Avoid accidental duplicates

The state file is important because Padlet post creation is not the same as editing.

If the tool created every row every time, running the command twice would create duplicate posts. To avoid this, the tool checks published-posts.json and skips rows that have already been published.

If you change a spreadsheet row after publishing, the tool will report that the row has changed and skip it. This is intentional. At that point, you can decide whether to edit the Padlet post manually or publish the changed row as a new post.

Only use --force if you deliberately want changed rows to be posted again as new Padlet posts.

Troubleshooting

Message Likely cause What to do
INVALID_API_KEY The API key is wrong or has been refreshed. Copy the current key from Padlet Developer settings.
NOT_ADMIN You are not an administrator of the board. Use a board you created or ask to be added as an administrator.
NOT_PAYING_USER Your account may not have API access. Check your Padlet plan and Developer settings.
PADLET_ARCHIVED The Padlet board is archived. Unarchive the board before using the API.
PARAMETER_MISSING or BAD_REQUEST A spreadsheet row is missing required content or has an invalid value. Check that each row has a title, body, or attachment URL. Also check colour spelling.
RATE_LIMIT_EXCEEDED Too many API requests were sent too quickly. Wait briefly and run the command again.
NOT_FOUND The board ID is wrong or unavailable to your account. Recheck the board ID and your access to the board.

Padlet documents these error codes and states that the API rate limit is 250 requests per minute by IP address. [5]

Safety checklist before using this with students

Before using this workflow with a live class board, I recommend the following:

  • test with a private practice Padlet first;
  • run a dry run before every real publish;
  • check the preview carefully;
  • keep your API key private;
  • do not commit your .env file to GitHub;
  • keep the published-posts.json file so that reruns do not create duplicates;
  • avoid using real student data in the spreadsheet unless there is a clear teaching need and appropriate data protection consideration.

When this is worth using

This workflow is most useful when you already have activity prompts in a spreadsheet or when you need to create many posts at once.

For example, it works well for:

  • weekly seminar questions;
  • tutorial prompts;
  • reading response boards;
  • revision questions;
  • group discussion activities;
  • repeated activities across multiple cohorts or modules.

For a small number of posts, manual editing in Padlet may still be faster. But once you are preparing a larger set of activities, the spreadsheet-based approach is more efficient, easier to review, and more repeatable.

Final reminder

Treat the spreadsheet as your source copy and Padlet as the published teaching space.

Run a dry run first, publish only when the preview looks right, and keep the state file so that you do not accidentally create duplicate posts.

This small workflow can save a lot of time, especially when preparing or refreshing teaching activities at the start of a semester.

References

[1] Padlet, Public API. https://padlet.help/l/en/article/3933026qoo-public-api

[2] Padlet API Documentation, Introduction. https://docs.padlet.dev/reference/introduction

[3] Padlet API Documentation, Create a post. https://docs.padlet.dev/reference/add-post

[4] Padlet API Documentation, Get board by ID. https://docs.padlet.dev/reference/get-board-by-id

[5] Padlet API Documentation, Error handling and rate limiting. https://docs.padlet.dev/reference/error-handling

[6] GitHub repository for this workflow. https://github.com/riasatislam/padlet-bulk-publish

Back to top