Export Data from Oracle Fusion Cloud HCM: Methods & API Limits
Complete guide to extracting data from Oracle Fusion Cloud HCM — covering HCM Extracts, REST API limits, BICC, BI Publisher, and real portability challenges.
Planning a migration?
Get a free 30-min call with our engineers. We'll review your setup and map out a custom migration plan — no obligation.
Schedule a free call- 1,500+ migrations completed
- Zero downtime guaranteed
- Transparent, fixed pricing
- Project success responsibility
- Post-migration support included
Export Data from Oracle Fusion Cloud HCM: Methods & API Limits
Oracle Fusion Cloud HCM offers five primary ways to extract data: HCM Extracts (the recommended bulk export tool), REST APIs, BI Cloud Connector (BICC), BI Publisher reports, and Oracle Integration Cloud (OIC) with its native HCM Adapter. Which one you pick depends on volume, frequency, and whether you need real-time access or batch files. This guide covers the technical constraints, rate limits, output formats, failure modes, and incremental extraction mechanics of each method — based on Oracle's own documentation and implementation experience.
What is HCM Extracts and why is it the default choice?
HCM Extracts is Oracle's purpose-built tool for generating bulk outbound data files from the Fusion HCM database. It supports extraction of employee records, payroll data, benefits information, compensation details, and talent data across all major HCM modules.
Oracle's own guidance is direct: use HCM Extracts as the primary tool for outbound integrations or bulk data download. As Oracle's Fusion HCM Center of Excellence states, OTBI should be your reporting tool while HCM Extract handles outbound integrations and bulk exports.
HCM Extracts works through a structured definition model:
- Data groups represent a business area (person, assignment, benefits)
- Records define what groups of information to collect
- Attributes specify individual fields using fast formula database items
- Delivery options control output format and destination
Output formats include CSV, XML, Microsoft Excel, HTML, RTF, and PDF. Delivery modes include email, FTP, and WebCenter Content Server (UCM). You can also download raw hierarchical XML from a completed extract using the Extract Actions Service web service.
HCM Extracts can be managed in the Data Exchange work area, through the Checklists interface in the Payroll work area, or triggered externally via the Flow Actions Service web service.
How the HCM Extract process runs internally
The extraction process executes across five phases:
- Preprocessing — The threading data group runs, scanning for all valid extraction objects
- Sub-process — Each thread retrieves objects from the Object Actions table based on Chunk Size configuration
- Data archiving — Data is archived according to the extract design beneath the threading data group
- Root Archive — Archiving of data above the threading data group, from the Root data group downward
- BIP Job Delivery — Raw Extract XML is created, and each BI Publisher delivery option triggers a corresponding job
Thread and chunk size configuration: Chunk Size controls how many records each thread processes per sub-process cycle. Oracle's default Chunk Size is 20 for most extract types; increasing this to 100–200 can significantly reduce sub-process overhead for large populations, but excessively high values increase memory pressure and can cause sub-process timeouts. The threading data group — typically based on Legal Employer or Payroll — determines how many parallel sub-processes run. More threads reduce wall-clock time but increase concurrent database load. For a 50,000-worker full extract, a well-tuned configuration (Chunk Size 100, 4–8 threads depending on pod tier) typically completes in 2–4 hours; a poorly configured single-threaded run on the same population can take 8–12 hours.
Failure behavior: If an HCM Extract fails mid-run, the phases completed up to the failure point are preserved in the archive table, but partial data is not automatically written to the delivery target. The process must be resubmitted from the beginning — there is no mid-extract resume capability. If archive records from the failed run are not purged before resubmission, duplicate archive entries can accumulate. Always run the Purge Extracts Archive Data process to clear failed runs before resubmitting.
This phased approach means large extracts can run for extended periods. Oracle recommends purging archive data older than 7 days using the Purge Extracts Archive Data process to maintain performance.
Incremental extraction with HCM Extracts
HCM Extracts does not natively detect changed records through a CDC (change data capture) mechanism. Incremental extraction is implemented by passing date parameters — typically EffectiveStartDate or a custom extraction date range — into the extract definition via parameters at submission time.
There are two patterns:
- Date-range filtering: The extract's fast formulas filter records where a date-effective row falls within
[last_run_date, today]. Your orchestration layer (OIC or a scheduler) must track and pass thelast_run_dateparameter. This is the most common pattern for HR data. - Triggered incremental via Business Events: For near-real-time needs, Oracle HCM fires Business Events (e.g.,
HIRE,TRANSFER,TERMINATION) through the JMS/AQ messaging infrastructure. An OIC integration subscribed to these events can invoke a targeted extract or REST call for only the affected workers. This avoids full population scans entirely.
Neither pattern is automatic — both require explicit design decisions in the extract definition and orchestration layer.
The security gap you need to know about
HCM Extracts run internally as an elevated user with access to all records. There are no secured User Entities in HCM Extract that would filter output based on the submitting user's data role or security profile. Oracle documents this in Doc ID 2527869.1. If you need row-level security on extract output, you'll need to implement filtering logic in a downstream process or use secured views in a BI Publisher report layered on top.
How to use Oracle HCM REST APIs for data extraction
The Oracle HCM REST API exposes endpoints at https://{instance}.oraclecloud.com/hcmRestApi/resources/latest/ for querying workers, jobs, positions, absences, and other HCM objects. It uses offset-based pagination with offset and limit query parameters.
Key technical constraints:
- Default page size is 25 records — if you omit pagination parameters, you silently get only the first 25 rows with no warning
- Maximum page size is 500 for most HCM resources — requesting
limit=600still returns only 500 records - Pagination is 0-based — a 1-based assumption (common in identity-management connectors) duplicates or drops one record at every page boundary
- The
hasMoreboolean in the response is your loop condition; incrementoffsetbylimituntilhasMorereturnsfalse - Use
onlyData=trueto strip thelinksarrays and significantly reduce response payload size
curl -u "user:pass" \
"https://acme.fa.us2.oraclecloud.com/hcmRestApi/resources/11.13.18.05/workers?limit=500&offset=0&onlyData=true&orderBy=PersonId"Authentication: OAuth 2.0 vs. Basic Auth
The HCM REST API supports both HTTP Basic Authentication and OAuth 2.0 (three-legged and two-legged). For integration pipelines, Oracle recommends OAuth 2.0 with JWT assertion (two-legged, also called the "client credentials" pattern in Oracle's documentation). Access tokens expire after 3,600 seconds (1 hour). Your integration must handle token refresh proactively — a common failure pattern is caching a token at pipeline startup and not refreshing it, causing all calls after the first hour to return HTTP 401. Store the token expiry timestamp alongside the token and refresh 60 seconds before expiry.
Basic Auth remains functional but is discouraged for production integrations because credentials must be stored in plain configuration and cannot be scoped to specific resources.
What are Oracle HCM API rate limits?
Oracle HCM Cloud does not publish explicit per-minute or per-hour rate limit tiers. Throttling is governed by Oracle's Fair Use Policy at the pod level. Concurrent REST connections are throttled by the platform, and excessive individual REST calls may return HTTP 503 responses.
This is a critical architectural decision point. For tenants with more than 10,000 workers, REST pagination becomes slow and can trigger throttling. Observed behavior in production environments: sustained pagination at 500 records/page with no delay between calls typically triggers HTTP 503 responses within 5–15 minutes. With a 500ms sleep between requests, the same pipeline often completes a 50,000-worker full scan in 3–5 hours — but this is not a design target, it's a workaround. Oracle recommends using HCM Extracts or BI Publisher scheduled reports for bulk data extraction rather than paginating through the REST API.
There is no published rate limit number you can design against. Plan for HTTP 503 responses and implement exponential backoff with circuit breakers on all REST-based extraction pipelines. Cache static reference data like jobs, grades, and locations to reduce repetitive calls. Use REST only for targeted lookups or small-population extracts (under ~5,000 records); switch to HCM Extracts above that threshold.
Child resource expansion limits
From REST framework v3, an expanded child resource returns a collection wrapper with its own hasMore flag. Any child resource with more than 500 items isn't expanded at all — you get a links entry instead and must fetch it separately. This catches teams off guard when extracting workers with many assignments or large organizational hierarchies.
BICC (BI Cloud Connector): When does it apply to HCM?
BI Cloud Connector (BICC) is Oracle's tool for bulk batch extraction of data from Fusion Cloud Applications into external storage. It extracts data from pre-built Public View Objects (PVOs) into compressed CSV files stored on UCM or Oracle Object Storage. BICC is available as part of the Oracle Applications Cloud subscription at no additional license cost.
For ERP, SCM, and CX, BICC is the recommended bulk extraction tool. For HCM, the picture is different. Oracle's A-Team explicitly notes that BICC is primarily leveraged for HCM analytics use cases (Fusion Data Intelligence / Oracle Analytics Cloud), with limited general-purpose extract usage. HCM Extracts remains the recommended tool for general HCM outbound integrations.
If you do use BICC for HCM data:
- The first extract is always a full table extract; subsequent scheduled extracts generate incremental data files based on the
LAST_UPDATE_DATEcolumn in each PVO. This means BICC's incremental logic is tied to database update timestamps, not HCM date-effective row history — you can miss date-effective changes that don't updateLAST_UPDATE_DATE. - You need to identify which data stores and View Objects contain the attributes you need. As a starting point: workforce data lives primarily in
PER_ALL_PEOPLE_FandPER_ALL_ASSIGNMENTS_MPVOs; compensation inCMP_SALARY; absence inANC_PER_ABS_ENTRIES. The full PVO catalog is accessible in BICC's Offering configuration UI, but mapping 50–100 attributes across a migration typically requires 2–3 days of field-by-field cross-referencing. - Critical risk: BICC has a 5GB maximum file size per extracted CSV. Files exceeding this limit are silently truncated while the job is marked successful, delivering incomplete data with no error indication. Configure split file size to 1–2GB to stay safe.
BI Publisher and OTBI: What not to use for extraction
BI Publisher (BIP) is a reporting engine that can generate formatted output in CSV, XML, Excel, and PDF. It works well as a formatting layer on top of HCM Extracts — Oracle's own recommended pattern is to use HCM Extract as the data source and BIP on top to format reports.
However, Oracle explicitly warns against developing BIP reports using custom SQL for data extraction and integration requirements. Custom SQL-based BIP reports face performance constraints, timeout limits, and file size issues that make them unreliable for integration-grade extraction.
OTBI (Oracle Transactional Business Intelligence) is a reporting tool and should never be used for data extraction. It has a hard limit of 25,000 records for exporting to Excel and is not designed for synchronous integrations or bulk data movement.
| Tool | Recommended Use | Record Limit | Bulk Extract? |
|---|---|---|---|
| HCM Extracts | Outbound integrations, bulk export | No hard cap (2–12 hrs for 50K workers depending on thread config) | Yes |
| REST API | Real-time lookups, targeted reads <5K records | 500 per page, no published rate limit, 503s observed at sustained load | Not recommended above ~5K records |
| BICC | Analytics pipelines (HCM limited) | 5GB file cap (silent truncation); incremental via LAST_UPDATE_DATE | Yes, with caveats |
| BI Publisher | Formatted reports layered on HCM Extracts | Timeout-dependent; avoid custom SQL | With caveats |
| OTBI | Ad-hoc reporting only | 25,000 for Excel export | No |
How to get HCM extract files off the server
Once HCM Extracts or BICC generates output files, those files typically land on Oracle WebCenter Content Server (UCM) — the file staging layer inside Fusion Applications. HCM Extract files are stored under the hcm/dataloader/export directory when the delivery option is set to Content Server.
You have three options to retrieve files from UCM:
- File Import and Export UI — Manual download through the Oracle Fusion interface. Fine for ad-hoc needs, not for automation.
- WebCenter Content Document Transfer Utility — A Java-based command-line tool (
oracle.ucm.fa_client.jar) that supports programmatic upload and download via HTTPS. - UCM SOAP Web Service — Use the
GET_FILEIdcService operation to programmatically retrieve files. This is the preferred approach for automated integration pipelines through Oracle Integration Cloud.
# Example: Download using Document Transfer Utility
java -classpath "oracle.ucm.fa_client_11.1.1.jar" \
oracle.ucm.client.DownloadTool \
url=https://ucmserver.com/cs/idcplg \
username=integration_user \
password=*** \
dID=21537 \
outputFile="/tmp/hcm_extract_output.csv"The RIDC-based transfer utility (oracle.ucm.fa_client.jar) may not work in all Oracle Fusion Cloud environments due to authentication limitations. Oracle recommends the generic SOAP-based transfer utility (oracle.ucm.fa_genericclient.jar) which uses JAX/WS over HTTPS.
Oracle Integration Cloud (OIC) as an extraction orchestrator
Oracle Integration Cloud (OIC) has a purpose-built HCM Cloud Adapter that knows the HCM data model and exposes operations specific to Oracle HCM. It supports HCM REST APIs for real-time reads, HCM Data Loader for bulk uploads, and — most relevant here — a dedicated Extract Bulk Data operation that orchestrates the full HCM Extracts workflow.
The integration pattern works like this:
- Create and configure the HCM data extract in Oracle HCM Cloud with a delivery option of type WebCenter Content
- Build a scheduled orchestration in OIC using the HCM Cloud Adapter's Extract Bulk Data operation
- Store a
lastProcessedDocumentIDschedule parameter to track which extracts have been processed - Use a Stage File action to read the extract output in segments
- Route the data to your target system (SFTP, database, another cloud app)
Business Events: the near-real-time alternative to polling
Oracle HCM Cloud does not offer native outbound webhooks. For near-real-time integration, Oracle's architecture uses Business Events — predefined event triggers fired by HCM transactions into Oracle's JMS/AQ (Java Message Service / Advanced Queuing) infrastructure.
How the subscription model works:
- Common event types include
oracle/apps/hcm/hwr/workRelationship/newHire,oracle/apps/hcm/hwr/workRelationship/terminate, and assignment change events - Events carry a payload with the affected worker's
PersonIdand event metadata, not the full record — the consuming integration must make a REST API call to fetch complete worker data - OIC's HCM Adapter exposes a Subscribe to HCM Events trigger operation that listens on the JMS queue and fires the integration when a matching event arrives
- Latency: Events are typically delivered within 2–5 minutes of the originating HCM transaction completing. SLA is not formally published by Oracle; spikes to 15–20 minutes have been observed during batch processing windows
- Failure behavior: If the OIC integration fails to process a received event, the message remains on the queue and OIC will retry according to its configured retry policy. Unprocessed messages are held for up to 7 days before expiry. There is no dead-letter queue visible to consumers — failed messages that exceed retry limits are silently dropped
- Ordering: JMS/AQ does not guarantee strict event ordering across different event types. A TRANSFER event and a subsequent TERMINATION event for the same worker may arrive out of sequence; design your consumer to be idempotent and handle out-of-order delivery
For integrations where 2–5 minute latency is acceptable and you need to avoid full-population polling, Business Events plus targeted REST lookups is the preferred pattern. For sub-minute latency requirements, Oracle HCM has no supported mechanism — you are outside the platform's designed capabilities.
How to choose the right extraction method
The decision depends on four factors evaluated in sequence: volume, frequency, latency requirement, and security constraints.
Is this a bulk export (>5,000 records) or a targeted lookup?
│
├── Bulk export
│ ├── Is near-real-time delivery required (minutes, not hours)?
│ │ ├── Yes → Business Events (OIC HCM Adapter subscribe) + REST lookup per event
│ │ └── No → HCM Extracts
│ │ ├── Need automation/scheduling? → OIC Extract Bulk Data operation
│ │ └── Ad-hoc/manual? → Data Exchange UI
│ │
│ └── Is this an analytics pipeline to a data warehouse?
│ ├── ERP/SCM data → BICC
│ └── HCM data → HCM Extracts (BICC only if Fusion Data Intelligence target)
│
└── Targeted lookup (<5,000 records, individual or small batch)
└── REST API with OAuth 2.0, pagination at limit=500, exponential backoff on 503
Never use OTBI for extraction (25,000-record hard cap, no integration support). Never use custom-SQL BI Publisher reports for extraction (timeout constraints, no retry mechanism). Use BI Publisher only as a formatting layer on top of HCM Extracts output.
Data security and GDPR considerations during export
Extracting HR data creates compliance exposure. Oracle Fusion HCM provides several layers of protection, but the defaults may not match your regulatory requirements.
Oracle Cloud HCM Security Profiles control and limit access to personal data and its processing and reporting — security profiles are defined and assigned to specific job roles. Oracle also offers Transparent Data Encryption (TDE) and Oracle Database Vault for encryption at rest. Data in transit is protected by TLS.
For GDPR specifically:
- Oracle HCM supports deletion and anonymization of employee records upon request — the process was simplified from the 19D release onward with a dedicated Personal Information Management work area
- The Purge HCM Event Archive Data process should be run periodically for compliance and performance
- Audit logging tracks who accessed or modified employee data
- Critical interaction with extraction methods: HCM Extracts bypass row-level security — every extract output potentially contains all employee data regardless of who submitted it (Doc ID 2527869.1). REST API calls are subject to the calling user's security profile and data roles. BICC extracts from database-level PVOs and bypasses HCM application-layer security entirely. Your GDPR data flow documentation must reflect which extraction method is used and why full-population access is justified for each integration
Any bulk extraction pipeline must account for data minimization principles. Extract only the fields you need. Encrypt files at rest and in transit. Purge temporary staging files after processing. Document your legal basis for each data flow — and note that HCM Extracts, BICC, and REST calls have materially different security models that affect your DPIA.
What makes Oracle HCM data portability hard
Oracle Fusion Cloud HCM is a multi-module system with deep interdependencies between objects. A "worker" isn't a single record — it's a graph of person records, assignments, employment terms, benefits enrollments, compensation elements, talent profiles, and document attachments spread across dozens of related entities.
Practical portability challenges include:
- Date-effective records — Most HCM objects are date-effective, meaning a single employee can have hundreds of historical assignment rows. Extracting "current state" requires filtering to
EffectiveStartDate <= SYSDATE AND EffectiveEndDate >= SYSDATE; extracting "full history" requires all rows ordered byEffectiveStartDate. These require different extract configurations and produce dramatically different row counts. - Flexfields and extensible flexfields — Custom attributes stored in DFF/EFF segments don't have standardized column names across implementations. Your extract must explicitly map context codes and segment names. A DFF with 20 segments across 5 context codes generates 100+ possible columns, most of which will be null for any given record.
- Internal IDs vs. user keys — Oracle Fusion uses internal numeric IDs (
PersonId,AssignmentId) that have no meaning outside the system. HCM Data Loader supports user keys and source system keys, but REST API responses return internal IDs by default. Cross-system joins require maintaining an ID mapping table or usingsourceSystemOwner/sourceSystemIdattributes consistently. - Attachments and documents — Employee documents (contracts, IDs, certifications) stored as attachments require separate extraction through the Document Records REST API or UCM; they are not included in HCM Extracts output.
- Localization-specific data — Legislative data groups, country-specific payroll elements, and statutory deductions vary dramatically across jurisdictions and require jurisdiction-specific extract configurations.
HCM Extracts vs. HCM Data Loader (HDL): understanding the relationship
These tools serve opposite directions of the same data pipeline:
- HCM Extracts is the outbound tool — it reads from HCM and produces files
- HCM Data Loader (HDL) is the inbound tool — it reads files and loads into HCM
For migration projects, the typical pattern is: source system extract → transformation → HDL load file → HDL inbound process. HDL uses a fixed pipe-delimited format with a METADATA header row defining object type and columns. HDL supports source system keys (sourceSystemOwner, sourceSystemId) to maintain cross-system identity mapping during migration. Understanding the HDL data model during the extraction design phase prevents structural mismatches that require re-extraction later.
When to bring in help
If you're migrating away from Oracle HCM to another platform, or standing up a complex ongoing sync between Oracle HCM and external systems, the extraction piece is only half the problem. The harder part is mapping Oracle's data model to your target, handling date-effective history correctly, preserving referential integrity across related objects, and validating that nothing was lost in transit.
At ClonePartner, we've built extraction pipelines against Oracle Fusion HCM for migrations and integrations across industries. We handle the HCM Extract configuration, the API pagination logic, the UCM file retrieval, and the data transformation — so your team doesn't have to reverse-engineer Oracle's documentation. If your project involves moving data out of Oracle HCM at scale, we can scope it in a 30-minute call.
Frequently Asked Questions
- What is the best way to export data from Oracle Fusion Cloud HCM?
- HCM Extracts is Oracle's recommended tool for bulk data export from Oracle Fusion Cloud HCM. It supports CSV, XML, Excel, PDF, and other formats with delivery via FTP, email, or WebCenter Content Server. For real-time individual record lookups, use the REST API with a 500-record page limit.
- What are the Oracle HCM REST API rate limits?
- Oracle HCM Cloud does not publish explicit per-minute or per-hour rate limit tiers. Throttling is governed by Oracle's Fair Use Policy at the pod level. Excessive REST calls return HTTP 503 responses. The maximum page size is 500 records, with a default of 25 if no limit parameter is specified.
- Can I use OTBI to extract data from Oracle HCM Cloud?
- No. Oracle explicitly recommends against using OTBI for data extraction. OTBI is a reporting tool with a hard limit of 25,000 records for Excel export. For bulk extraction, use HCM Extracts or BICC (for analytics use cases).
- What is the BICC file size limit for Oracle HCM exports?
- BICC has a 5GB maximum file size per extracted CSV. Files exceeding this limit are silently truncated while the extraction job is marked successful, potentially delivering incomplete data. Configure split file size to 1-2GB to avoid this issue.
- Does Oracle HCM Extracts enforce row-level security?
- No. HCM Extracts run internally as an elevated user with access to all records. There are no secured User Entities in HCM Extract (documented in Oracle Doc ID 2527869.1). You must implement downstream filtering or use secured views in BI Publisher reports for row-level access control.