Skip to main content

APEX 26.1 is here - and there's a lot to talk about

Oracle APEX

APEX 26.1 is here - and there's a lot to talk about 🚀

A quick look at everything that came in this release - big and small.

May 2026  ·  90+ community ideas shipped

When APEX 26.1 dropped, I honestly wasn't expecting this much. I opened the release notes thinking I'd be done in 10 minutes. An hour later, I was still reading - going "wait, they added this too?"

This post is not a deep dive into any single feature. It's just me walking you through what's new in 26.1, so you know what to look forward to. We'll cover each feature properly in separate posts. But first, let's get the full picture.

I also personally tried some of the community-submitted features in this release, and I'll share my honest experience with each one. Some of them are small things - but small things are what make daily dev life better. You'll see what I mean. 😄


New

1. APEXlang - Your App Described in Plain Text

APEXlang is probably the most important thing in this release if you think about where APEX is heading. It's an open language that describes your APEX app in a format any developer on your team can read - like structured text, not binary export files.

What does that mean in practice? Think meaningful code reviews for APEX apps. Think version control diffs that actually make sense. Think AI tools that can read your app and help you build on top of it. This is the foundation - and a lot of what's coming next will be built on it.

AI

2. AI Agents - Let AI Actually Do Things in Your App

You can now build AI agents inside APEX. These agents can understand what the user is asking, decide what needs to happen, and then actually do it - like running a query, calling some PL/SQL, or triggering a JavaScript action.

You're still in control - you define what the agent is allowed to do. APEX handles everything in between. This is not just a chatbot sitting in a corner of your app. It's a real part of the workflow. I think this will completely change how certain types of apps are built.

AI

3. AI Interactive Reports - Users Just Type What They Want

This one is more for your end users than for developers. Users can now type something like "show me sales from last month, sorted by region" into an Interactive Report - and APEX applies the filters and sorting for them. No SQL, no manual settings, no help needed.

What I really like is that every filter applied shows up as a small visible tag (called a chip), so users can see exactly what changed and edit it if needed. It's not a black box - that transparency matters a lot when users need to trust what they're seeing.

New

4. Data Reporter - Reports Without the Builder

Data Reporter is a completely new concept in APEX. It lets business users create their own reports without needing to know anything about the App Builder. Admins set up the datasets and control access. Then users go in, build what they need, and share it with a link.

If you've ever been asked to "just change this one filter" dozens of times, you'll understand exactly why this matters. Now users can handle it themselves. And since admins control the underlying data, everything stays clean and trusted.

And then... the platform improvements 🛠️

Solid upgrades across the board - developer tools, workflows, security, maps, and components.

5. The Builder Got a Refresh

The App Builder UI feels cleaner and more organised. Page Designer, shared components, and navigation all got some polish. There's also a new search on the workspace selection screen - sounds minor, but if you work across multiple workspaces every day, you'll appreciate it right away.

Working Copies diff views also improved. You can now see the component name and type alongside the changes, plus APEXlang syntax highlighting. It's much easier to review what actually changed before you merge anything.

6. Translations - Finally Simpler to Handle

Managing multiple languages in APEX used to feel repetitive and scattered. Now you can convert your app text into reusable Text Messages - so your labels and strings live in one place instead of being spread across pages.

You can also export and import translations in standard formats like CSV, XLIFF, or ZIP. If you work with an external translation team, just hand them the file and bring it back when they're done. Simple as that.

7. Workflow - Parallel Flows and Better APIs

Workflows can now run steps in parallel. So if two things can happen at the same time and both need to finish before moving forward, you can model that properly now. Before this, you had to build workarounds.

There are also new APIs to manage workflow instances - delete them, resume after an upgrade, and set task due dates. For multi-tenant apps, workflows now track tenant IDs automatically, which is a big help for keeping data properly separated.

8. Universal Theme 26.1 - New Look, More Icons

There's a new style called Iris - the updated Oracle look with better accessibility baked in. Font APEX 2.5 also ships in this release with more icons added, covering utilities, construction, and infrastructure categories.

Template Components also got improvements - client-side partials, template directives, and autocomplete. And template directives now work across more template types: items, regions, lists, and pages. If you build custom components, there's plenty to explore here.

9. Security Improvements

Content Security Policy (CSP) is now closer to full compliance - some unsafe patterns were removed and replaced with cleaner, class-based rendering. If your organisation has been pushing for strict CSP, this release helps move the needle.

You can also set workspace-level SMTP credentials now, so different workspaces can have their own email configuration. Fusion Extensions also got security improvements to better align with Fusion roles and policies.

10. Map Region - More Data, More Control

Map Region got a solid upgrade. Vector tile layers are now supported, which means large map datasets load faster and look much smoother. Custom background maps are also in - using different tile types and OGC services.

New JavaScript APIs give you more precise control over the map. And a bunch of community requests around maps also landed here - dynamic boundaries, min/max zoom control, polygon opacity. Maps in APEX are starting to feel seriously capable.

11. Component Updates - Lots of Small Wins

Interactive Reports now support row selection. You can add button menus straight from Page Designer without any JavaScript. Dynamic Actions have new built-in actions for success and error messages. Interactive Grids support paste from clipboard. LOV and autocomplete fields now support infinite scrolling.

None of these sounds huge by itself - but if you work with these features every day, you'll feel the difference. This is exactly the kind of polish that makes developer life noticeably better over time.

90+ Community Ideas - And I've Already Used Some 🙌

Oracle APEX has a community Ideas app where developers vote on and submit feature requests. This release delivered on over 90 of them. That's the team actually listening and shipping - not just collecting feedback.

I want to call out the community ideas separately because I've personally used a few of them already, and they're genuinely good. Here's what stood out for me:

▸ Running the page directly from the Global Page

Before this, if you were on Page 0 in the builder and hit "Run Page", it would try to open the global page - which you can't actually run on its own. Now it takes you straight to the main application page. It sounds tiny, but it removes that small moment of "ugh, let me switch to a real page first." I use this without thinking about it now. That's when you know something is good.

▸ No more "Fire on Initialization" for page load Dynamic Actions

When you created a Dynamic Action with a page load event, there used to be a "Fire on Initialization" checkbox showing up - which doesn't even apply to page load events. It just caused confusion, especially for people learning APEX. That checkbox is now hidden for page load DAs. Cleaner, simpler, one less thing to explain. I really liked seeing this fixed.

▸ Row Selection in Interactive Reports

This was a long-requested one. You can now select rows in an Interactive Report, similar to how Interactive Grid works. A lot of use cases open up when you can pick one or more rows and do something with them. I tried it and it works cleanly - no special setup needed to get started. Straightforward and useful.

▸ Show Success and Show Error - New Dynamic Actions

Before this, showing a nice success or error message after a Dynamic Action meant writing JavaScript or putting together a workaround. Now there are proper built-in actions - Show Success Message and Show Error Message - right there in the DA action list. I used this just the other day. Took me about 30 seconds. Would have been 10 minutes before. That's a real, practical improvement.

▸ Clear Page Search with ESC

Small one, but I love it. When you're using the page search in the builder and want to clear it, you can now just press Escape. No mouse, no clicking the X icon. Just Esc and it's gone. I do page searches all the time, so this one keyboard shortcut adds up across the day. It's the kind of thing you don't realise you missed until it's there.

▸ Infinite Scrolling for LOV / Select Lists

If your LOV had a large number of values, the old behaviour would load them in chunks and paginate. Now it loads more values as you scroll down - the way modern dropdowns work everywhere else. I tested it on a select list with a few hundred values and it felt smooth and natural. End users probably won't even notice the change - which is exactly the point. It just works better.

So what's next?

That's APEX 26.1 in a nutshell. APEXlang, AI Agents, AI Interactive Reports, Data Reporter - those are the big headline features. Then a solid set of improvements across the builder, workflows, security, maps, and components. And 90+ community ideas delivered - including some genuinely great day-to-day improvements that I'm already using.

It's a big release. The kind that gives you things to explore for weeks.

In the next posts, I'll go one feature at a time - with proper demos, screenshots, and my honest take on each one. If there's something specific you want me to cover first, drop it in the comments. I'd love to know what you're most curious about. 👇

Tags: #OracleAPEX #APEX261 #WhatsNew #APEXlang #LowCode

Comments

Popular posts from this blog

Generate Custom PDFs in Oracle APEX with jsPDF

Generate Custom PDFs in Oracle APEX with jsPDF A complete step-by-step guide to building a client-side PDF generator with profile image embedding and PL/SQL database persistence. 📄 Step-by-step guide Oracle APEX jsPDF Dynamic Actions PL/SQL JavaScript "Picture this: your Oracle APEX application is polished, your users love it — but when they ask for a downloadable report with a profile picture and custom styling, you realize vanilla APEX isn't built for that out of the box. What if a single JavaScript library and one Dynamic Action could change everything?" Welcome to the world of jsPDF inside Oracle APEX . In this tutorial, we wire up a PDF generator that captures a user's name, email, phone number, and profile picture — renders them into a beautiful PDF layout — and saves everything to Oracle, all in one button click. ⓘ What you'll build: A dynamic PDF generat...

APEX Custom Auth Settings, Decoded!

Oracle APEX Security PL/SQL APEX Custom Auth Settings, Decoded Why I Build this I was building an internal APEX app — strictly for people on our corporate network. The default authentication worked, but it had a few things that kept bothering me. Anyone with valid credentials could log in from anywhere. Sessions expired with a useless error page. There was no audit trail — no way to know who logged in, when, or from where. And passwords were stored in plain text, which I just couldn't leave alone. So I did what any developer does — I built it myself. Custom authentication, from scratch, in PL/SQL. Turned out to be one of the best learning experiences I've had with APEX. Here's exactly how I did it. Img 1 : Head to Shared Components → Authentication Schemes → Create, choose Custom as the Scheme Type, and plug in your function and procedure names. Quick note before we get into the code — the s...