<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mostafa Mansour</title>
    <description>The latest articles on DEV Community by Mostafa Mansour (@mostafamansour1).</description>
    <link>https://dev.to/mostafamansour1</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4020937%2Ff17d7625-3b10-4122-9971-9f4ede69c8d9.png</url>
      <title>DEV Community: Mostafa Mansour</title>
      <link>https://dev.to/mostafamansour1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mostafamansour1"/>
    <language>en</language>
    <item>
      <title>Why the Oracle Fusion REST API q Parameter Fails and How to Fix It</title>
      <dc:creator>Mostafa Mansour</dc:creator>
      <pubDate>Sat, 11 Jul 2026 08:02:05 +0000</pubDate>
      <link>https://dev.to/mostafamansour1/why-the-oracle-fusion-rest-api-q-parameter-fails-and-how-to-fix-it-1847</link>
      <guid>https://dev.to/mostafamansour1/why-the-oracle-fusion-rest-api-q-parameter-fails-and-how-to-fix-it-1847</guid>
      <description>&lt;p&gt;The &lt;code&gt;q&lt;/code&gt; parameter is one of the most useful parts of Oracle Fusion REST APIs. It lets you filter records directly from the API instead of retrieving a large result set and filtering it later in your integration layer.&lt;/p&gt;

&lt;p&gt;It is also one of the most common reasons Fusion API calls fail.&lt;/p&gt;

&lt;p&gt;A request that looks correct can still return an error like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;The query parameter is invalid.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Invalid query expression.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or sometimes the request succeeds but the response is not filtered the way you expected.&lt;/p&gt;

&lt;p&gt;This usually happens because Oracle Fusion REST filtering is not the same as SQL filtering. The &lt;code&gt;q&lt;/code&gt; parameter only works with fields and operators that are supported by the specific REST resource you are calling.&lt;/p&gt;

&lt;p&gt;This guide explains the most common reasons the &lt;code&gt;q&lt;/code&gt; parameter fails and how to troubleshoot it correctly.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is the q parameter in Oracle Fusion REST APIs?
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;q&lt;/code&gt; parameter is used to filter records in Oracle Fusion REST API requests.&lt;/p&gt;

&lt;p&gt;A simple example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /hcmRestApi/resources/11.13.18.05/workers?q=PersonNumber='10001'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Another example from Financials:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /fscmRestApi/resources/11.13.18.05/invoices?q=InvoiceNumber='INV-1001'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The general pattern is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;q=FieldName operator value
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Common operators include:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=
!=
&amp;gt;
&amp;lt;
&amp;gt;=
&amp;lt;=
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Some endpoints also support operators such as &lt;code&gt;LIKE&lt;/code&gt;, &lt;code&gt;BETWEEN&lt;/code&gt;, or null checks, but support is not universal. You must confirm what the specific endpoint accepts.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why the q parameter fails
&lt;/h2&gt;

&lt;p&gt;Most &lt;code&gt;q&lt;/code&gt; issues come from one of these causes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The field is not queryable.&lt;/li&gt;
&lt;li&gt;The field belongs to a child resource.&lt;/li&gt;
&lt;li&gt;The field name is wrong.&lt;/li&gt;
&lt;li&gt;The value format is wrong.&lt;/li&gt;
&lt;li&gt;The operator is not supported for that field.&lt;/li&gt;
&lt;li&gt;The filter is being applied at the wrong API level.&lt;/li&gt;
&lt;li&gt;The endpoint expects a finder instead of a normal &lt;code&gt;q&lt;/code&gt; filter.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Let's go through each one.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The field is not queryable
&lt;/h2&gt;

&lt;p&gt;Not every field returned by a REST API response can be used inside &lt;code&gt;q&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This is one of the biggest surprises for Fusion developers.&lt;/p&gt;

&lt;p&gt;You may see a field in the response, for example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"PersonNumber"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"10001"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"DisplayName"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Test Employee"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"HireDate"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2024-01-01"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But that does not automatically mean all three fields are valid in &lt;code&gt;q&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This may work:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /hcmRestApi/resources/11.13.18.05/workers?q=PersonNumber='10001'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But this may fail depending on the endpoint metadata:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /hcmRestApi/resources/11.13.18.05/workers?q=HireDate='2024-01-01'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The response field and the queryable field list are not always the same.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to fix it
&lt;/h3&gt;

&lt;p&gt;Before writing the filter, check whether the field is queryable for that REST resource.&lt;/p&gt;

&lt;p&gt;You can do that by reviewing the OpenAPI metadata or the Oracle REST documentation for that resource. If the field is not listed as queryable, use another field, a finder, or a lower-level child endpoint.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. The field belongs to a child resource
&lt;/h2&gt;

&lt;p&gt;This is very common with the Workers API.&lt;/p&gt;

&lt;p&gt;For example, you may want active employee assignments only:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AssignmentType = 'E'
AssignmentStatusType = 'ACTIVE'
PrimaryFlag = true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But these fields usually belong to the worker assignment child resource, not the top-level worker resource.&lt;/p&gt;

&lt;p&gt;This kind of request may not work as expected:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /hcmRestApi/resources/11.13.18.05/workers?q=AssignmentStatusType='ACTIVE'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Because &lt;code&gt;/workers&lt;/code&gt; filters workers at the worker level. It does not always filter nested child records such as work relationships or assignments.&lt;/p&gt;

&lt;p&gt;Even if you use &lt;code&gt;expand&lt;/code&gt;, the &lt;code&gt;q&lt;/code&gt; filter is still applied to the parent resource unless Oracle explicitly supports filtering the child resource in that call.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /hcmRestApi/resources/11.13.18.05/workers?q=PersonNumber='10001'&amp;amp;expand=workRelationships.assignments
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This can return the worker and expand assignments, but it does not mean you can filter the assignment rows from the parent &lt;code&gt;q&lt;/code&gt; parameter.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to fix it
&lt;/h3&gt;

&lt;p&gt;Call the child resource directly when you need child-level filtering.&lt;/p&gt;

&lt;p&gt;The pattern is usually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /hcmRestApi/resources/11.13.18.05/workers/{workersUniqID}/child/workRelationships/{workRelationshipsUniqID}/child/assignments?q=AssignmentStatusType='ACTIVE'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is more work because you may need parent IDs first, but the filter is applied at the correct resource level.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. The field name is wrong
&lt;/h2&gt;

&lt;p&gt;Oracle Fusion REST field names are case-sensitive in many contexts.&lt;/p&gt;

&lt;p&gt;This can fail:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;q=personnumber='10001'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is the correct style:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;q=PersonNumber='10001'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The same applies to fields such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;InvoiceNumber
BusinessUnit
PersonId
AssignmentId
DocumentType
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Small spelling or casing differences can break the filter.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to fix it
&lt;/h3&gt;

&lt;p&gt;Copy the exact field name from the REST metadata or from a working response. Do not guess field names from the Fusion UI label.&lt;/p&gt;

&lt;p&gt;For example, the UI may say:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Person Number
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But the API field may be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PersonNumber
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  4. The value format is wrong
&lt;/h2&gt;

&lt;p&gt;String values normally need quotes.&lt;/p&gt;

&lt;p&gt;Correct:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;q=PersonNumber='10001'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Risky or invalid:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;q=PersonNumber=10001
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For dates, use the format expected by the API. In many cases, ISO date format is safest:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;q=CreationDate&amp;gt;='2026-01-01'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For booleans, check the endpoint behavior. Some APIs use true/false, while others expose Y/N, flags, or lookup codes.&lt;/p&gt;

&lt;p&gt;Examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;q=PrimaryFlag=true
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;q=StatusCode='Y'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The correct value depends on the field definition.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. The operator is not supported
&lt;/h2&gt;

&lt;p&gt;Developers often try SQL-style expressions in Oracle Fusion REST APIs.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;q=DisplayName LIKE '%John%'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This may not work on every endpoint.&lt;/p&gt;

&lt;p&gt;Even when &lt;code&gt;LIKE&lt;/code&gt; works in one REST resource, it may not work in another. Oracle Fusion REST APIs are large, and behavior can vary by module and resource.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to fix it
&lt;/h3&gt;

&lt;p&gt;Start with simple equality:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;q=DisplayName='John Smith'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then test other operators only after confirming the field supports them.&lt;/p&gt;

&lt;p&gt;If partial search is required, check whether the endpoint provides a finder that supports keyword-style search.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Null checks can be sensitive
&lt;/h2&gt;

&lt;p&gt;Another common issue is filtering null values.&lt;/p&gt;

&lt;p&gt;Developers may try:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;q=InactiveDate is null
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;q=InactiveDate=null
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Whether this works depends on the resource and supported query syntax. Some resources support null-style filtering. Others do not.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to fix it
&lt;/h3&gt;

&lt;p&gt;Check the supported query operators for that endpoint. If null filtering is not supported, you may need to retrieve a smaller set of records using another condition, then filter null values in your integration layer.&lt;/p&gt;

&lt;p&gt;Not perfect, but better than pulling the full dataset without any filter.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. You may need a finder instead of q
&lt;/h2&gt;

&lt;p&gt;Oracle Fusion REST APIs often expose named finders.&lt;/p&gt;

&lt;p&gt;A finder is a predefined search pattern with specific parameters.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /hcmRestApi/resources/11.13.18.05/workers?finder=findByPersonId;PersonId=300000123456789
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finders can be more reliable than &lt;code&gt;q&lt;/code&gt; when Oracle has already defined the intended search path.&lt;/p&gt;

&lt;p&gt;If a &lt;code&gt;q&lt;/code&gt; filter keeps failing, check whether the endpoint has a finder for the same business scenario.&lt;/p&gt;




&lt;h2&gt;
  
  
  Practical troubleshooting checklist
&lt;/h2&gt;

&lt;p&gt;When a &lt;code&gt;q&lt;/code&gt; filter does not work, follow this order:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Confirm the endpoint is correct.&lt;/li&gt;
&lt;li&gt;Confirm the field belongs to that exact resource, not a child resource.&lt;/li&gt;
&lt;li&gt;Confirm the field is queryable.&lt;/li&gt;
&lt;li&gt;Confirm the exact field name and casing.&lt;/li&gt;
&lt;li&gt;Confirm the value format.&lt;/li&gt;
&lt;li&gt;Start with one filter condition only.&lt;/li&gt;
&lt;li&gt;Add additional conditions one by one.&lt;/li&gt;
&lt;li&gt;Check whether a finder exists.&lt;/li&gt;
&lt;li&gt;Test the child endpoint directly if filtering child data.&lt;/li&gt;
&lt;li&gt;Only filter in the integration layer after reducing the response as much as possible.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Example: Workers API q filter
&lt;/h2&gt;

&lt;p&gt;A simple worker lookup:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /hcmRestApi/resources/11.13.18.05/workers?q=PersonNumber='10001'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you need assignment-level conditions, do not assume this will work from the parent worker resource:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /hcmRestApi/resources/11.13.18.05/workers?q=AssignmentStatusType='ACTIVE'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead, inspect the worker child resources and test the assignments child endpoint.&lt;/p&gt;




&lt;h2&gt;
  
  
  Example: Invoices API q filter
&lt;/h2&gt;

&lt;p&gt;A common invoice lookup:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /fscmRestApi/resources/11.13.18.05/invoices?q=InvoiceNumber='INV-1001'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you need invoice attachments, use &lt;code&gt;expand&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /fscmRestApi/resources/11.13.18.05/invoices?q=InvoiceNumber='INV-1001'&amp;amp;expand=attachments
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But remember: expanding attachments does not mean the parent &lt;code&gt;q&lt;/code&gt; filter can filter attachment fields.&lt;/p&gt;




&lt;h2&gt;
  
  
  How OPAL helps
&lt;/h2&gt;

&lt;p&gt;OPAL is built for this exact workflow.&lt;/p&gt;

&lt;p&gt;Instead of guessing the &lt;code&gt;q&lt;/code&gt; syntax from documentation pages, OPAL lets you search Oracle Fusion REST endpoints, inspect available query fields, check finders, browse child resources, and test the request directly against your Fusion environment.&lt;/p&gt;

&lt;p&gt;This is especially useful when working with large APIs like Workers, Invoices, Purchase Orders, Document Records, Learning, or Procurement resources.&lt;/p&gt;

&lt;p&gt;You can download OPAL here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://opalapi.dev" rel="noopener noreferrer"&gt;https://opalapi.dev&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Final recommendation
&lt;/h2&gt;

&lt;p&gt;Do not treat the &lt;code&gt;q&lt;/code&gt; parameter like SQL.&lt;/p&gt;

&lt;p&gt;Treat it as a resource-specific filter syntax.&lt;/p&gt;

&lt;p&gt;The safest approach is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check the exact REST resource.&lt;/li&gt;
&lt;li&gt;Check the queryable fields.&lt;/li&gt;
&lt;li&gt;Avoid filtering child data from the parent endpoint.&lt;/li&gt;
&lt;li&gt;Use finders when available.&lt;/li&gt;
&lt;li&gt;Test small filters first.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This will save a lot of time and reduce unnecessary trial and error in Postman or integration tools.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This post is part of our complete &lt;a href="https://opalapi.dev/oracle-hcm-api/" rel="noopener noreferrer"&gt;Oracle HCM API guide&lt;/a&gt; — base URLs, authentication, &lt;code&gt;q&lt;/code&gt; filters, finders, key endpoints, and common errors in one place.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://opalapi.dev/blog/oracle-fusion-rest-api-q-parameter/" rel="noopener noreferrer"&gt;opalapi.dev&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>oracle</category>
      <category>api</category>
      <category>rest</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
