Technical Reference Guide

IC Source

Search API (XML)
XML-based programmatic access to IC Source's global components database
Last Updated: March 3, 2026 https://xmlsearch.icsource.com
IC Source Search API (XML) Last Updated: March 3, 2026

Overview

The IC Source Search API (XML) provides programmatic access to IC Source's global electronic components database, enabling integration of real-time inventory, requirements, and quote data directly into your internal applications.

Search MethodDescription
SearchInventorySearch the full IC Source global inventory database
SearchOwnInventorySearch only your company's own posted inventory
SearchRequirementsSearch active requirements (want-to-buy listings)
SearchOldRequirementsSearch archived/expired requirements
SearchQuotesSearch quote responses submitted by vendors

Features and Benefits

  • Platform-independent XML: XML is license-free and well-supported across all programming languages and platforms. You can integrate search results into your internal applications or XSL stylesheets at no additional licensing cost.
  • Extensive data coverage: Access a database of more than 37 million inventory items from over 2,000 companies worldwide.
  • Multiple transport protocols: The service supports SOAP, HTTP GET, and HTTP POST, making it compatible with virtually any programming language or integration environment.
  • Flexible search criteria: Narrow results by part number, manufacturer, date code, quantity, region, stock status, and more.
  • Search scope controls: Optionally constrain searches to your preferred vendors, a specified maximum result count, or exact-match results only.
  • Complete contact information: Each result includes full company contact details so you can quickly follow up with the posting company.

XML Search Parameters

The following parameters are used to submit and process a search request via the IC Source Search API (XML):

ParameterDefinitionRequired
UserThe parent login name for your IC Source account.YES
KeyYour XML Search access key. Contact IC Source to obtain your key.YES
PartThe part number to search for, including both prefix and base.YES
MfgManufacturer to filter by. Manufacturer aliases are honored.No
DateCodeThe date code to filter by. Used in conjunction with the DateCodeCompareType parameter.No
DateCodeCompareType Type of comparison to use for the DateCode filter:
  • 0 = DateCode contains the filter value as a substring
  • 1 = DateCode year equals the filter value (=)
  • 2 = DateCode year is greater than or equal to the filter value (>=)
  • 3 = DateCode range contains the filter value
  • 4 = DateCode year is less than or equal to the filter value (<=)
YES
MinQuantityMinimum quantity filter. Only results with a quantity at or above this value will be returned.YES
StockFlag
  • 0 = Available only
  • 1 = Stock only
  • 2 = Both available and stock
YES
PricesOnly
  • True = Return only items that have a price specified.
  • False = Do not filter by price.
YES
PreferredVendorsOnly
  • True = Return only items from your preferred vendors.
  • False = Do not filter by vendor preference.
Note: This parameter is not used by SearchOwnInventory.
YES
Region
  • 0 = All Regions
  • 1 = North America
  • 2 = Europe
  • 3 = Asia
  • 4 = Oceania
  • 5 = Africa
  • 6 = South America
  • 7 = China
  • 8 = SE Asia
Note: This parameter is not used by SearchOwnInventory.
YES
SearchType
  • 0 = Smart Search
  • 1 = Any Prefix / Best Base
  • 2 = Exact Prefix / Best Base
  • 3 = Any Prefix / Exact Base
  • 4 = Exact Prefix / Exact Base
YES
MaxResultsThe maximum number of results to return per page.YES
PageNumThe page number of results to return. For example, if MaxResults = 50 and PageNum = 2, results 51–100 are returned.YES
SortThe order in which to return results. Accepts a comma-separated list of column names with optional ASC/DESC modifiers.
Example: DateCode DESC, Price ASC
No

XML Search Results Provided

The following information is returned for a valid XML Search:

Inventory Searches Requirements Searches Quotes Searches
CompanyName
Contact
Phone
Fax
Email
Address1
Address2
City
State
PostalCode
CountryName
PartNumber
Quantity
LastUpdated
Mfg
DateCode
Price
Comment
IsStock
IsPreferredVendor
CompanyID
InventoryID
CompanyName
Contact
Phone
Fax
Email
Address1
Address2
City
State
PostalCode
CountryName
PartNumber
Quantity
LastUpdated
Mfg
DateCode
Price
Comment
IsStock
IsPreferredVendor
CompanyID
RequirementID
CompanyName
Contact
Phone
Fax
Email
Address1
Address2
City
State
PostalCode
CountryName
PartNumber
Quantity
LastUpdated
Mfg
DateCode
Price
Comment
IsPreferredVendor
CompanyID
QuoteID

Request Specification

The IC Source Search API (XML) enables searches via three methods: SOAP, HTTP GET, and HTTP POST.

In the HTTP GET and POST examples, values shown in orange curly-brace notation — {string}, {int}, {boolean} — are placeholders indicating the expected data type. Replace each one with the actual value before submitting the request.

SearchInventory

SOAP

The following is a sample SOAP request and response. The placeholders shown need to be replaced with actual values.

POST /xmlsearch.asmx HTTP/1.1
Host: xmlsearch.icsource.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://XMLSearch.icsource.com/XMLSearch/SearchInventory"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <SearchInventory xmlns="http://XMLSearch.icsource.com/XMLSearch">
      <User>string</User>
      <Key>string</Key>
      <Part>string</Part>
      <Mfg>string</Mfg>
      <DateCode>string</DateCode>
      <DateCodeCompareType>int</DateCodeCompareType>
      <MinQuantity>int</MinQuantity>
      <StockFlag>int</StockFlag>
      <PricesOnly>boolean</PricesOnly>
      <PreferredVendorsOnly>boolean</PreferredVendorsOnly>
      <Region>int</Region>
      <SearchType>int</SearchType>
      <MaxResults>int</MaxResults>
      <PageNum>int</PageNum>
      <Sort>string</Sort>
    </SearchInventory>
  </soap:Body>
</soap:Envelope>

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <SearchInventoryResponse xmlns="http://XMLSearch.icsource.com/XMLSearch">
      <SearchInventoryResult>
        <xsd:schema>schema</xsd:schema>xml</SearchInventoryResult>
    </SearchInventoryResponse>
  </soap:Body>
</soap:Envelope>

HTTP GET

The following is a sample HTTP GET request and response. Replace all {placeholder} values before use.

GET /xmlsearch.asmx/SearchInventory?User={string}&Key={string}&Part={string}&Mfg={string}&DateCode={string}&DateCodeCompareType={int}&MinQuantity={int}&StockFlag={int}&PricesOnly={boolean}&PreferredVendorsOnly={boolean}&Region={int}&SearchType={int}&MaxResults={int}&PageNum={int}&Sort={string} HTTP/1.1
Host: xmlsearch.icsource.com

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://XMLSearch.icsource.com/XMLSearch">
  <schema xmlns="http://www.w3.org/2001/XMLSchema">schema</schema>xml</DataSet>

HTTP POST

The following is a sample HTTP POST request and response. Replace all {placeholder} values before use.

POST /xmlsearch.asmx/SearchInventory HTTP/1.1
Host: xmlsearch.icsource.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

User={string}&Key={string}&Part={string}&Mfg={string}&DateCode={string}&DateCodeCompareType={int}&MinQuantity={int}&StockFlag={int}&PricesOnly={boolean}&PreferredVendorsOnly={boolean}&Region={int}&SearchType={int}&MaxResults={int}&PageNum={int}&Sort={string}

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://XMLSearch.icsource.com/XMLSearch">
  <schema xmlns="http://www.w3.org/2001/XMLSchema">schema</schema>xml</DataSet>

Response Example

Regardless of the method used to submit the request, the IC Source Search API (XML) will return an XML document containing the search results, similar to the following example:

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://XMLSearch.icsource.com/XMLSearch">
  <xs:schema id="InventorySearch" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="InventorySearch" msdata:IsDataSet="true">
      <xs:complexType>
        <xs:choice maxOccurs="unbounded">
          <xs:element name="Inventory">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="CompanyName" type="xs:string" minOccurs="0" />
                <xs:element name="Contact" type="xs:string" minOccurs="0" />
                <xs:element name="Phone" type="xs:string" minOccurs="0" />
                <xs:element name="Fax" type="xs:string" minOccurs="0" />
                <xs:element name="Email" type="xs:string" minOccurs="0" />
                <xs:element name="Address1" type="xs:string" minOccurs="0" />
                <xs:element name="Address2" type="xs:string" minOccurs="0" />
                <xs:element name="City" type="xs:string" minOccurs="0" />
                <xs:element name="State" type="xs:string" minOccurs="0" />
                <xs:element name="PostalCode" type="xs:string" minOccurs="0" />
                <xs:element name="CountryName" type="xs:string" minOccurs="0" />
                <xs:element name="PartNumber" type="xs:string" minOccurs="0" />
                <xs:element name="Quantity" type="xs:int" minOccurs="0" />
                <xs:element name="LastUpdated" type="xs:dateTime" minOccurs="0" />
                <xs:element name="Mfg" type="xs:string" minOccurs="0" />
                <xs:element name="DateCode" type="xs:string" minOccurs="0" />
                <xs:element name="Price" type="xs:string" minOccurs="0" />
                <xs:element name="Comment" type="xs:string" minOccurs="0" />
                <xs:element name="IsStock" type="xs:boolean" minOccurs="0" />
                <xs:element name="IsPreferredVendor" type="xs:boolean" minOccurs="0" />
                <xs:element name="CompanyID" type="xs:int" minOccurs="0" />
                <xs:element name="InventoryID" type="xs:long" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
    </xs:element>
  </xs:schema>
  <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
    <InventorySearch xmlns="">
      <Inventory diffgr:id="Inventory1" msdata:rowOrder="0">
        <CompanyName>ACME CO</CompanyName>
        <Contact>CONTACT1</Contact>
        <Phone>+1-555-555-1234</Phone>
        <Fax>+1-555-555-4321</Fax>
        <Email>email@address.com</Email>
        <Address1>ADDRESS1</Address1>
        <Address2>ADDRESS2</Address2>
        <City>CITY</City>
        <State>STATE</State>
        <PostalCode>11111-1111</PostalCode>
        <CountryName>USA</CountryName>
        <PartNumber>NE555</PartNumber>
        <Quantity>150</Quantity>
        <LastUpdated>2026-03-03T22:14:44.9830000-04:00</LastUpdated>
        <Mfg />
        <DateCode />
        <Price />
        <Comment />
        <IsStock>false</IsStock>
        <IsPreferredVendor>false</IsPreferredVendor>
        <CompanyID>4981</CompanyID>
        <InventoryID>21572183</InventoryID>
      </Inventory>
    </InventorySearch>
  </diffgr:diffgram>
</DataSet>

SearchOwnInventory

SOAP

The following is a sample SOAP request and response. The placeholders shown need to be replaced with actual values.

POST /xmlsearch.asmx HTTP/1.1
Host: xmlsearch.icsource.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://XMLSearch.icsource.com/XMLSearch/SearchOwnInventory"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <SearchOwnInventory xmlns="http://XMLSearch.icsource.com/XMLSearch">
      <User>string</User>
      <Key>string</Key>
      <Part>string</Part>
      <Mfg>string</Mfg>
      <DateCode>string</DateCode>
      <DateCodeCompareType>int</DateCodeCompareType>
      <MinQuantity>int</MinQuantity>
      <StockFlag>int</StockFlag>
      <PricesOnly>boolean</PricesOnly>
      <SearchType>int</SearchType>
      <MaxResults>int</MaxResults>
      <PageNum>int</PageNum>
      <Sort>string</Sort>
    </SearchOwnInventory>
  </soap:Body>
</soap:Envelope>

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <SearchOwnInventoryResponse xmlns="http://XMLSearch.icsource.com/XMLSearch">
      <SearchOwnInventoryResult>
        <xsd:schema>schema</xsd:schema>xml</SearchOwnInventoryResult>
    </SearchOwnInventoryResponse>
  </soap:Body>
</soap:Envelope>

HTTP GET

The following is a sample HTTP GET request and response. Replace all {placeholder} values before use.

GET /xmlsearch.asmx/SearchOwnInventory?User={string}&Key={string}&Part={string}&Mfg={string}&DateCode={string}&DateCodeCompareType={int}&MinQuantity={int}&StockFlag={int}&PricesOnly={boolean}&SearchType={int}&MaxResults={int}&PageNum={int}&Sort={string} HTTP/1.1
Host: xmlsearch.icsource.com

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://XMLSearch.icsource.com/XMLSearch">
  <schema xmlns="http://www.w3.org/2001/XMLSchema">schema</schema>xml</DataSet>

HTTP POST

The following is a sample HTTP POST request and response. Replace all {placeholder} values before use.

POST /xmlsearch.asmx/SearchOwnInventory HTTP/1.1
Host: xmlsearch.icsource.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

User={string}&Key={string}&Part={string}&Mfg={string}&DateCode={string}&DateCodeCompareType={int}&MinQuantity={int}&StockFlag={int}&PricesOnly={boolean}&SearchType={int}&MaxResults={int}&PageNum={int}&Sort={string}

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://XMLSearch.icsource.com/XMLSearch">
  <schema xmlns="http://www.w3.org/2001/XMLSchema">schema</schema>xml</DataSet>

Response Example

SearchOwnInventory returns the same schema as SearchInventory, limited to inventory posted by your own company. Note that PreferredVendorsOnly and Region are not applicable for this method. The following example shows a response when no matching records are found:

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://XMLSearch.icsource.com/XMLSearch">
  <xs:schema id="InventorySearch" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="InventorySearch" msdata:IsDataSet="true">
      <xs:complexType>
        <xs:choice maxOccurs="unbounded">
          <xs:element name="Inventory">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="CompanyName" type="xs:string" minOccurs="0" />
                <xs:element name="Contact" type="xs:string" minOccurs="0" />
                <xs:element name="Phone" type="xs:string" minOccurs="0" />
                <xs:element name="Fax" type="xs:string" minOccurs="0" />
                <xs:element name="Email" type="xs:string" minOccurs="0" />
                <xs:element name="Address1" type="xs:string" minOccurs="0" />
                <xs:element name="Address2" type="xs:string" minOccurs="0" />
                <xs:element name="City" type="xs:string" minOccurs="0" />
                <xs:element name="State" type="xs:string" minOccurs="0" />
                <xs:element name="PostalCode" type="xs:string" minOccurs="0" />
                <xs:element name="CountryName" type="xs:string" minOccurs="0" />
                <xs:element name="PartNumber" type="xs:string" minOccurs="0" />
                <xs:element name="Quantity" type="xs:int" minOccurs="0" />
                <xs:element name="LastUpdated" type="xs:dateTime" minOccurs="0" />
                <xs:element name="Mfg" type="xs:string" minOccurs="0" />
                <xs:element name="DateCode" type="xs:string" minOccurs="0" />
                <xs:element name="Price" type="xs:string" minOccurs="0" />
                <xs:element name="Comment" type="xs:string" minOccurs="0" />
                <xs:element name="IsStock" type="xs:boolean" minOccurs="0" />
                <xs:element name="IsPreferredVendor" type="xs:boolean" minOccurs="0" />
                <xs:element name="CompanyID" type="xs:int" minOccurs="0" />
                <xs:element name="InventoryID" type="xs:long" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
    </xs:element>
  </xs:schema>
  <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1" />
</DataSet>

SearchRequirements

SOAP

The following is a sample SOAP request and response. The placeholders shown need to be replaced with actual values.

POST /xmlsearch.asmx HTTP/1.1
Host: xmlsearch.icsource.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://XMLSearch.icsource.com/XMLSearch/SearchRequirements"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <SearchRequirements xmlns="http://XMLSearch.icsource.com/XMLSearch">
      <User>string</User>
      <Key>string</Key>
      <Part>string</Part>
      <Mfg>string</Mfg>
      <DateCode>string</DateCode>
      <DateCodeCompareType>int</DateCodeCompareType>
      <MinQuantity>int</MinQuantity>
      <StockFlag>int</StockFlag>
      <PricesOnly>boolean</PricesOnly>
      <PreferredVendorsOnly>boolean</PreferredVendorsOnly>
      <Region>int</Region>
      <SearchType>int</SearchType>
      <MaxResults>int</MaxResults>
      <PageNum>int</PageNum>
      <Sort>string</Sort>
    </SearchRequirements>
  </soap:Body>
</soap:Envelope>

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <SearchRequirementsResponse xmlns="http://XMLSearch.icsource.com/XMLSearch">
      <SearchRequirementsResult>
        <xsd:schema>schema</xsd:schema>xml</SearchRequirementsResult>
    </SearchRequirementsResponse>
  </soap:Body>
</soap:Envelope>

HTTP GET

The following is a sample HTTP GET request and response. Replace all {placeholder} values before use.

GET /xmlsearch.asmx/SearchRequirements?User={string}&Key={string}&Part={string}&Mfg={string}&DateCode={string}&DateCodeCompareType={int}&MinQuantity={int}&StockFlag={int}&PricesOnly={boolean}&PreferredVendorsOnly={boolean}&Region={int}&SearchType={int}&MaxResults={int}&PageNum={int}&Sort={string} HTTP/1.1
Host: xmlsearch.icsource.com

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://XMLSearch.icsource.com/XMLSearch">
  <schema xmlns="http://www.w3.org/2001/XMLSchema">schema</schema>xml</DataSet>

HTTP POST

The following is a sample HTTP POST request and response. Replace all {placeholder} values before use.

POST /xmlsearch.asmx/SearchRequirements HTTP/1.1
Host: xmlsearch.icsource.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

User={string}&Key={string}&Part={string}&Mfg={string}&DateCode={string}&DateCodeCompareType={int}&MinQuantity={int}&StockFlag={int}&PricesOnly={boolean}&PreferredVendorsOnly={boolean}&Region={int}&SearchType={int}&MaxResults={int}&PageNum={int}&Sort={string}

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://XMLSearch.icsource.com/XMLSearch">
  <schema xmlns="http://www.w3.org/2001/XMLSchema">schema</schema>xml</DataSet>

Response Example

Regardless of the method used to submit the request, the IC Source Search API (XML) will return an XML document containing the search results, similar to the following example:

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://XMLSearch.icsource.com/XMLSearch">
  <xs:schema id="RequirementsSearch" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="RequirementsSearch" msdata:IsDataSet="true">
      <xs:complexType>
        <xs:choice maxOccurs="unbounded">
          <xs:element name="Requirements">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="CompanyName" type="xs:string" minOccurs="0" />
                <xs:element name="Contact" type="xs:string" minOccurs="0" />
                <xs:element name="Phone" type="xs:string" minOccurs="0" />
                <xs:element name="Fax" type="xs:string" minOccurs="0" />
                <xs:element name="Email" type="xs:string" minOccurs="0" />
                <xs:element name="Address1" type="xs:string" minOccurs="0" />
                <xs:element name="Address2" type="xs:string" minOccurs="0" />
                <xs:element name="City" type="xs:string" minOccurs="0" />
                <xs:element name="State" type="xs:string" minOccurs="0" />
                <xs:element name="PostalCode" type="xs:string" minOccurs="0" />
                <xs:element name="CountryName" type="xs:string" minOccurs="0" />
                <xs:element name="PartNumber" type="xs:string" minOccurs="0" />
                <xs:element name="Quantity" type="xs:int" minOccurs="0" />
                <xs:element name="LastUpdated" type="xs:dateTime" minOccurs="0" />
                <xs:element name="Mfg" type="xs:string" minOccurs="0" />
                <xs:element name="DateCode" type="xs:string" minOccurs="0" />
                <xs:element name="Price" type="xs:string" minOccurs="0" />
                <xs:element name="Comment" type="xs:string" minOccurs="0" />
                <xs:element name="IsStock" type="xs:boolean" minOccurs="0" />
                <xs:element name="IsPreferredVendor" type="xs:boolean" minOccurs="0" />
                <xs:element name="CompanyID" type="xs:int" minOccurs="0" />
                <xs:element name="RequirementID" type="xs:long" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
    </xs:element>
  </xs:schema>
  <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
    <RequirementsSearch xmlns="">
      <Requirements diffgr:id="Requirements1" msdata:rowOrder="0">
        <CompanyName>ACME CO</CompanyName>
        <Contact>CONTACT1</Contact>
        <Phone>+1-555-555-1234</Phone>
        <Fax>+1-555-555-4321</Fax>
        <Email>email@address.com</Email>
        <Address1>ADDRESS1</Address1>
        <Address2>ADDRESS2</Address2>
        <City>CITY</City>
        <State>STATE</State>
        <PostalCode>11111-1111</PostalCode>
        <CountryName>USA</CountryName>
        <PartNumber>ms1mss10242</PartNumber>
        <Quantity>2</Quantity>
        <LastUpdated>2026-03-03T10:27:12.6570000-04:00</LastUpdated>
        <Mfg />
        <DateCode />
        <Price />
        <Comment>TEST - PLEASE IGNORE</Comment>
        <IsStock>true</IsStock>
        <IsPreferredVendor>false</IsPreferredVendor>
        <CompanyID>4105</CompanyID>
        <RequirementID>15356</RequirementID>
      </Requirements>
    </RequirementsSearch>
  </diffgr:diffgram>
</DataSet>

SearchOldRequirements

SOAP

The following is a sample SOAP request and response. The placeholders shown need to be replaced with actual values.

POST /xmlsearch.asmx HTTP/1.1
Host: xmlsearch.icsource.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://XMLSearch.icsource.com/XMLSearch/SearchOldRequirements"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <SearchOldRequirements xmlns="http://XMLSearch.icsource.com/XMLSearch">
      <User>string</User>
      <Key>string</Key>
      <Part>string</Part>
      <Mfg>string</Mfg>
      <DateCode>string</DateCode>
      <DateCodeCompareType>int</DateCodeCompareType>
      <MinQuantity>int</MinQuantity>
      <StockFlag>int</StockFlag>
      <PricesOnly>boolean</PricesOnly>
      <PreferredVendorsOnly>boolean</PreferredVendorsOnly>
      <Region>int</Region>
      <SearchType>int</SearchType>
      <MaxResults>int</MaxResults>
      <PageNum>int</PageNum>
      <Sort>string</Sort>
    </SearchOldRequirements>
  </soap:Body>
</soap:Envelope>

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <SearchOldRequirementsResponse xmlns="http://XMLSearch.icsource.com/XMLSearch">
      <SearchOldRequirementsResult>
        <xsd:schema>schema</xsd:schema>xml</SearchOldRequirementsResult>
    </SearchOldRequirementsResponse>
  </soap:Body>
</soap:Envelope>

HTTP GET

The following is a sample HTTP GET request and response. Replace all {placeholder} values before use.

GET /xmlsearch.asmx/SearchOldRequirements?User={string}&Key={string}&Part={string}&Mfg={string}&DateCode={string}&DateCodeCompareType={int}&MinQuantity={int}&StockFlag={int}&PricesOnly={boolean}&PreferredVendorsOnly={boolean}&Region={int}&SearchType={int}&MaxResults={int}&PageNum={int}&Sort={string} HTTP/1.1
Host: xmlsearch.icsource.com

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://XMLSearch.icsource.com/XMLSearch">
  <schema xmlns="http://www.w3.org/2001/XMLSchema">schema</schema>xml</DataSet>

HTTP POST

The following is a sample HTTP POST request and response. Replace all {placeholder} values before use.

POST /xmlsearch.asmx/SearchOldRequirements HTTP/1.1
Host: xmlsearch.icsource.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

User={string}&Key={string}&Part={string}&Mfg={string}&DateCode={string}&DateCodeCompareType={int}&MinQuantity={int}&StockFlag={int}&PricesOnly={boolean}&PreferredVendorsOnly={boolean}&Region={int}&SearchType={int}&MaxResults={int}&PageNum={int}&Sort={string}

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://XMLSearch.icsource.com/XMLSchema">
  <schema xmlns="http://www.w3.org/2001/XMLSchema">schema</schema>xml</DataSet>

Response Example

Regardless of the method used to submit the request, the IC Source Search API (XML) will return an XML document containing the search results, similar to the following example:

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://XMLSearch.icsource.com/XMLSearch">
  <xs:schema id="RequirementsSearch" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="RequirementsSearch" msdata:IsDataSet="true">
      <xs:complexType>
        <xs:choice maxOccurs="unbounded">
          <xs:element name="Requirements">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="CompanyName" type="xs:string" minOccurs="0" />
                <xs:element name="Contact" type="xs:string" minOccurs="0" />
                <xs:element name="Phone" type="xs:string" minOccurs="0" />
                <xs:element name="Fax" type="xs:string" minOccurs="0" />
                <xs:element name="Email" type="xs:string" minOccurs="0" />
                <xs:element name="Address1" type="xs:string" minOccurs="0" />
                <xs:element name="Address2" type="xs:string" minOccurs="0" />
                <xs:element name="City" type="xs:string" minOccurs="0" />
                <xs:element name="State" type="xs:string" minOccurs="0" />
                <xs:element name="PostalCode" type="xs:string" minOccurs="0" />
                <xs:element name="CountryName" type="xs:string" minOccurs="0" />
                <xs:element name="PartNumber" type="xs:string" minOccurs="0" />
                <xs:element name="Quantity" type="xs:int" minOccurs="0" />
                <xs:element name="LastUpdated" type="xs:dateTime" minOccurs="0" />
                <xs:element name="Mfg" type="xs:string" minOccurs="0" />
                <xs:element name="DateCode" type="xs:string" minOccurs="0" />
                <xs:element name="Price" type="xs:string" minOccurs="0" />
                <xs:element name="Comment" type="xs:string" minOccurs="0" />
                <xs:element name="IsStock" type="xs:boolean" minOccurs="0" />
                <xs:element name="IsPreferredVendor" type="xs:boolean" minOccurs="0" />
                <xs:element name="CompanyID" type="xs:int" minOccurs="0" />
                <xs:element name="RequirementID" type="xs:long" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
    </xs:element>
  </xs:schema>
  <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
    <RequirementsSearch xmlns="">
      <Requirements diffgr:id="Requirements1" msdata:rowOrder="0">
        <CompanyName>ACME CO</CompanyName>
        <Contact>CONTACT1</Contact>
        <Phone>+1-555-555-1234</Phone>
        <Fax>+1-555-555-4321</Fax>
        <Email>email@address.com</Email>
        <Address1>ADDRESS1</Address1>
        <Address2>ADDRESS2</Address2>
        <City>CITY</City>
        <State>STATE</State>
        <PostalCode>11111-1111</PostalCode>
        <CountryName>USA</CountryName>
        <PartNumber>1MSA5935BT3</PartNumber>
        <Quantity>2500</Quantity>
        <LastUpdated>2026-03-03T22:50:57.0000000-04:00</LastUpdated>
        <Mfg>ONS</Mfg>
        <DateCode />
        <Price>0</Price>
        <Comment>A</Comment>
        <IsStock>true</IsStock>
        <IsPreferredVendor>false</IsPreferredVendor>
        <CompanyID>4101</CompanyID>
        <RequirementID>15356</RequirementID>
      </Requirements>
    </RequirementsSearch>
  </diffgr:diffgram>
</DataSet>

SearchQuotes

SOAP

The following is a sample SOAP request and response. The placeholders shown need to be replaced with actual values.

POST /xmlsearch.asmx HTTP/1.1
Host: xmlsearch.icsource.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://XMLSearch.icsource.com/XMLSearch/SearchQuotes"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <SearchQuotes xmlns="http://XMLSearch.icsource.com/XMLSearch">
      <User>string</User>
      <Key>string</Key>
      <Part>string</Part>
      <Mfg>string</Mfg>
      <DateCode>string</DateCode>
      <DateCodeCompareType>int</DateCodeCompareType>
      <MinQuantity>int</MinQuantity>
      <StockFlag>int</StockFlag>
      <PreferredVendorsOnly>boolean</PreferredVendorsOnly>
      <Region>int</Region>
      <SearchType>int</SearchType>
      <MaxResults>int</MaxResults>
      <PageNum>int</PageNum>
      <Sort>string</Sort>
    </SearchQuotes>
  </soap:Body>
</soap:Envelope>

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <SearchQuotesResponse xmlns="http://XMLSearch.icsource.com/XMLSearch">
      <SearchQuotesResult>
        <xsd:schema>schema</xsd:schema>xml</SearchQuotesResult>
    </SearchQuotesResponse>
  </soap:Body>
</soap:Envelope>

HTTP GET

The following is a sample HTTP GET request and response. Replace all {placeholder} values before use.

GET /xmlsearch.asmx/SearchQuotes?User={string}&Key={string}&Part={string}&Mfg={string}&DateCode={string}&DateCodeCompareType={int}&MinQuantity={int}&StockFlag={int}&PreferredVendorsOnly={boolean}&Region={int}&SearchType={int}&MaxResults={int}&PageNum={int}&Sort={string} HTTP/1.1
Host: xmlsearch.icsource.com

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://XMLSearch.icsource.com/XMLSearch">
  <schema xmlns="http://www.w3.org/2001/XMLSchema">schema</schema>xml</DataSet>

HTTP POST

The following is a sample HTTP POST request and response. Replace all {placeholder} values before use.

POST /xmlsearch.asmx/SearchQuotes HTTP/1.1
Host: xmlsearch.icsource.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

User={string}&Key={string}&Part={string}&Mfg={string}&DateCode={string}&DateCodeCompareType={int}&MinQuantity={int}&StockFlag={int}&PreferredVendorsOnly={boolean}&Region={int}&SearchType={int}&MaxResults={int}&PageNum={int}&Sort={string}

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://XMLSearch.icsource.com/XMLSearch">
  <schema xmlns="http://www.w3.org/2001/XMLSchema">schema</schema>xml</DataSet>

Response Example

Regardless of the method used to submit the request, the IC Source Search API (XML) will return an XML document containing the search results, similar to the following example:

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://XMLSearch.icsource.com/XMLSearch">
  <xs:schema id="QuotesSearch" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="QuotesSearch" msdata:IsDataSet="true">
      <xs:complexType>
        <xs:choice maxOccurs="unbounded">
          <xs:element name="Quotes">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="CompanyName" type="xs:string" minOccurs="0" />
                <xs:element name="Contact" type="xs:string" minOccurs="0" />
                <xs:element name="Phone" type="xs:string" minOccurs="0" />
                <xs:element name="Fax" type="xs:string" minOccurs="0" />
                <xs:element name="Email" type="xs:string" minOccurs="0" />
                <xs:element name="Address1" type="xs:string" minOccurs="0" />
                <xs:element name="Address2" type="xs:string" minOccurs="0" />
                <xs:element name="City" type="xs:string" minOccurs="0" />
                <xs:element name="State" type="xs:string" minOccurs="0" />
                <xs:element name="PostalCode" type="xs:string" minOccurs="0" />
                <xs:element name="CountryName" type="xs:string" minOccurs="0" />
                <xs:element name="PartNumber" type="xs:string" minOccurs="0" />
                <xs:element name="Quantity" type="xs:int" minOccurs="0" />
                <xs:element name="LastUpdated" type="xs:dateTime" minOccurs="0" />
                <xs:element name="Mfg" type="xs:string" minOccurs="0" />
                <xs:element name="DateCode" type="xs:string" minOccurs="0" />
                <xs:element name="Price" type="xs:string" minOccurs="0" />
                <xs:element name="Comment" type="xs:string" minOccurs="0" />
                <xs:element name="IsPreferredVendor" type="xs:boolean" minOccurs="0" />
                <xs:element name="CompanyID" type="xs:int" minOccurs="0" />
                <xs:element name="QuoteID" type="xs:long" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
    </xs:element>
  </xs:schema>
  <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
    <QuotesSearch xmlns="">
      <Quotes diffgr:id="Quotes1" msdata:rowOrder="0">
        <CompanyName>ACME CO</CompanyName>
        <Contact>CONTACT1</Contact>
        <Phone>+1-555-555-1234</Phone>
        <Fax>+1-555-555-4321</Fax>
        <Email>email@address.com</Email>
        <Address1>ADDRESS1</Address1>
        <Address2>ADDRESS2</Address2>
        <City>CITY</City>
        <State>STATE</State>
        <PostalCode>11111-1111</PostalCode>
        <CountryName>USA</CountryName>
        <PartNumber>ms1mss10151</PartNumber>
        <Quantity>1</Quantity>
        <LastUpdated>2026-03-03T12:07:08.5000000-05:00</LastUpdated>
        <Mfg>test</Mfg>
        <DateCode />
        <Price>.03</Price>
        <Comment>TEST</Comment>
        <IsPreferredVendor>false</IsPreferredVendor>
        <CompanyID>4103</CompanyID>
        <QuoteID>15359</QuoteID>
      </Quotes>
    </QuotesSearch>
  </diffgr:diffgram>
</DataSet>

Sample Java Client Code

The following is a complete Java sample demonstrating how to call SearchInventory via SOAP. The XMLSearchProxy class handles SOAP envelope construction and HTTP communication. Adapt this pattern for other search methods by updating the SOAPAction header and XML body.

import java.net.*;
import java.io.*;

public class XMLSearchClientSample {
    public XMLSearchClientSample() { }

    public static void main(String[] args) {
        XMLSearchProxy objSearch = new XMLSearchProxy();
        System.out.println(objSearch.SearchInventory("user",
                                                    "key",
                                                    "ne555",
                                                    "",
                                                    "",
                                                    0,
                                                    0,
                                                    2,
                                                    false,
                                                    false,
                                                    0,
                                                    0,
                                                    10,
                                                    1,
                                                    "") + "\n");
    }
}

class XMLSearchProxy {
    private String m_strURL = "https://xmlsearch.icsource.com/xmlsearch.asmx";

    private String getInventorySearchRequestString(String user, String key, String part,
                                        String mfg, String dateCode,
                                        int dateCodeCompareType, int minQuantity,
                                        int stockFlag, boolean pricesOnly,
                                        boolean preferredVendorsOnly, int region,
                                        int searchType, int maxResults,
                                        int pageNum, String sort) {
        StringBuffer strRequest = new StringBuffer();
        strRequest.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
        strRequest.append("<soap:Envelope ");
        strRequest.append("xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ");
        strRequest.append("xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" ");
        strRequest.append("xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">");
        strRequest.append("<soap:Body>");
        strRequest.append("<SearchInventory xmlns=\"http://XMLSearch.icsource.com/XMLSearch\">");
        strRequest.append("<User>" + user + "</User>");
        strRequest.append("<Key>" + key + "</Key>");
        strRequest.append("<Part>" + part + "</Part>");
        strRequest.append("<Mfg>" + mfg + "</Mfg>");
        strRequest.append("<DateCode>" + dateCode + "</DateCode>");
        strRequest.append("<DateCodeCompareType>" + dateCodeCompareType + "</DateCodeCompareType>");
        strRequest.append("<MinQuantity>" + minQuantity + "</MinQuantity>");
        strRequest.append("<StockFlag>" + stockFlag + "</StockFlag>");
        strRequest.append("<PricesOnly>" + pricesOnly + "</PricesOnly>");
        strRequest.append("<PreferredVendorsOnly>" + preferredVendorsOnly + "</PreferredVendorsOnly>");
        strRequest.append("<Region>" + region + "</Region>");
        strRequest.append("<SearchType>" + searchType + "</SearchType>");
        strRequest.append("<MaxResults>" + maxResults + "</MaxResults>");
        strRequest.append("<PageNum>" + pageNum + "</PageNum>");
        strRequest.append("<Sort>" + sort + "</Sort>");
        strRequest.append("</SearchInventory>");
        strRequest.append("</soap:Body>");
        strRequest.append("</soap:Envelope>");
        return strRequest.toString();
    }

    public String SearchInventory(String user, String key, String part,
    String mfg, String dateCode, int dateCodeCompareType, int minQuantity,
    int stockFlag, boolean pricesOnly, boolean preferredVendorsOnly,
    int region, int searchType, int maxResults, int pageNum, String sort) {
        try {
            URL objURL = new URL(m_strURL);
            HttpURLConnection objCon = (HttpURLConnection) objURL.openConnection();
            objCon.setDoOutput(true);
            objCon.setRequestMethod("POST");
            objCon.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
            objCon.setRequestProperty("SoapAction",
                    "http://XMLSearch.icsource.com/XMLSearch/SearchInventory");

            PrintWriter objWriter = new PrintWriter(objCon.getOutputStream());
            objWriter.println(getInventorySearchRequestString(user, key, part, mfg,
                                                    dateCode, dateCodeCompareType,
                                                    minQuantity, stockFlag,
                                                    pricesOnly, preferredVendorsOnly,
                                                    region, searchType,
                                                    maxResults, pageNum, sort));
            objWriter.close();

            InputStreamReader objReader = new InputStreamReader(objCon.getInputStream());
            BufferedReader objBuffer = new BufferedReader(objReader);
            StringBuffer strResponse = new StringBuffer();
            String strPartialResponse = objBuffer.readLine();
            while (strPartialResponse != null) {
                strResponse.append(strPartialResponse);
                strPartialResponse = objBuffer.readLine();
            }
            return strResponse.toString();
        } catch (Exception e) {
            System.out.println(e.getMessage());
            return "";
        }
    }
}
Download Whitepaper docx