<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="Home page of The Apache Software Foundation">
  <link rel="apple-touch-icon" sizes="57x57" href="/favicons/apple-touch-icon-57x57.png">
  <link rel="apple-touch-icon" sizes="60x60" href="/favicons/apple-touch-icon-60x60.png">
  <link rel="apple-touch-icon" sizes="72x72" href="/favicons/apple-touch-icon-72x72.png">
  <link rel="apple-touch-icon" sizes="76x76" href="/favicons/apple-touch-icon-76x76.png">
  <link rel="apple-touch-icon" sizes="114x114" href="/favicons/apple-touch-icon-114x114.png">
  <link rel="apple-touch-icon" sizes="120x120" href="/favicons/apple-touch-icon-120x120.png">
  <link rel="apple-touch-icon" sizes="144x144" href="/favicons/apple-touch-icon-144x144.png">
  <link rel="apple-touch-icon" sizes="152x152" href="/favicons/apple-touch-icon-152x152.png">
  <link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon-180x180.png">
  <link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
  <link rel="icon" type="image/png" href="/favicons/favicon-194x194.png" sizes="194x194">
  <link rel="icon" type="image/png" href="/favicons/favicon-96x96.png" sizes="96x96">
  <link rel="icon" type="image/png" href="/favicons/android-chrome-192x192.png" sizes="192x192">
  <link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
  <link rel="manifest" href="/favicons/manifest.json">
  <link rel="shortcut icon" href="/favicons/favicon.ico">
  <meta name="msapplication-TileColor" content="#603cba">
  <meta name="msapplication-TileImage" content="/favicons/mstile-144x144.png">
  <meta name="msapplication-config" content="/favicons/browserconfig.xml">
  <meta name="theme-color" content="#282661">

  <title>Sponsorship</title>
  <link href="/css/Montserrat-300-600.css" rel="stylesheet">
  <link href="/css/min.bootstrap.css" rel="stylesheet">
  <link href="/css/styles.css" rel="stylesheet">
  <style>
.headerlink {
  visibility: hidden;
}
dt:hover > .headerlink, p:hover > .headerlink, td:hover > .headerlink, h1:hover > .headerlink, h2:hover > .headerlink, h3:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, h6:hover > .headerlink {
  visibility: visible
}  </style>

<!-- https://www.apache.org/licenses/LICENSE-2.0 -->
</head>

<body >
  <!-- Navigation -->
  <header>
	<div id="skiptocontent">
		<a href="#maincontent">Skip to Main Content</a>
	</div>
    <nav class="navbar navbar-inverse navbar-fixed-top mainmenu">
      <div class="container">
        <div class="navbar-header">
          <button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#mainnav-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
        </div>
        <div class="collapse navbar-collapse" id="mainnav-collapse">
          <ul class="nav navbar-nav navbar-justified">
            <li><a href="/index.html#news">News</a></li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">About&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/foundation">Overview</a></li>
                <li><a href="/foundation/how-it-works.html">Process</a></li>
                <li><a href="/foundation/governance/">Governance</a></li>
                <li><a href="/theapacheway/index.html">The Apache Way</a></li>
                <li><a href="/foundation/governance/members.html">Membership</a></li>
                <li><a href="https://community.apache.org/">Community</a></li>
                <li><a href="https://diversity.apache.org/">Diversity & Inclusion</a></li>
                <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                <li><a href="/foundation/glossary.html">Glossary</a></li>
				  <li><a href="/apache-name">About Our Name</a></li>
                <li><a href="/foundation/preFAQ.html">FAQ</a></li>
                <li><a href="/foundation/contributing.html">Support Apache</a></li>
                <li><a href="/press/">Media/Analysts</a></li>
                <li><a href="/foundation/contact.html">Contact</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Make a Donation&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/foundation/contributing.html">Donate Now</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via Credit Card</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via ACH</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via PayPal</a></li>
                <li><a href="https://www.redbubble.com/people/comdev">Buy Swag</a></li>
                <li><a href="https://smile.amazon.com/gp/chpf/homepage/ref=smi_se_scyc_srch_stsr?q=apache+software+foundation&orig=%2F">Shop smile.amazon.com</a></li>
                <li><a href="/foundation/sponsorship.html">ASF Sponsorship</a></li>
                <li><a href="/foundation/thanks#targeted-sponsors">Targeted Sponsorship</a></li>
                <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdopwn-toggle" data-toggle="dropdown">The Apache Way&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/theapacheway/index.html">The Apache Way</a></li>
                <li><a href="https://s.apache.org/GhnI">Sustainable Open Source</a></li>
                <li><a href="/foundation/how-it-works.html">How it Works</a></li>
                <li><a href="/foundation/how-it-works.html#meritocracy">Merit</a></li>
                <li><a href="https://blogs.apache.org/foundation/category/SuccessAtApache">Success at Apache</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdopwn-toggle" data-toggle="dropdown">Join Us&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="https://community.apache.org/gettingStarted/101.html">Getting Started</a></li>
                <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                <li><a href="https://www.apachecon.com/">ApacheCon</a></li>
                <li><a href="http://community.apache.org/calendars/">Community Events</a></li>
                <li><a href="/travel/">Travel Assistance</a></li>
                <li><a href="https://community.apache.org/gsoc.html">Summer of Code</a></li>
                <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                <li><a href="https://community.apache.org/contributors/etiquette">Etiquette</a></li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Projects&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/index.html#projects-list">Project List</a></li>
                    <li><a href="/foundation/how-it-works.html#management">How they work</a></li>
                    <li><a href="https://community.apache.org/projectIndependence.html">Independence</a></li>
                    <li><a href="https://projects.apache.org/committees.html?date">Date Founded</a></li>
                    <li><a href="https://projects.apache.org/projects.html?name">Names</a></li>
                    <li><a href="https://projects.apache.org/projects.html?category">Categories</a></li>
                    <li><a href="https://projects.apache.org/projects.html?language">Languages</a></li>
                    <li><a href="https://projects.apache.org/statistics.html">Statistics</a></li>
                    <li><a href="https://incubator.apache.org/">Apache Incubator</a></li>
                    <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                    <li><a href="/foundation/marks/">Brand Management</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">People&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/foundation/how-it-works.html#roles">Roles</a></li>
                    <li><a href="/foundation/members.html">Members</a></li>
                    <li><a href="https://community.apache.org/contributors/">Committers</a></li>
                    <li><a href="/foundation/#who-runs-the-asf">Board of Directors</a></li>
                    <li><a href="/foundation/#who-runs-the-asf">Officers  &amp; Project VPs</a></li>
                    <li><a href="https://community.zones.apache.org/map.html">Location Map</a></li>
                    <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                    <li><a href="https://people.apache.org/">Committer Directory</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Community&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="https://community.apache.org/about/">Community Development</a></li>
                    <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                    <li><a href="https://community.apache.org/">Get Involved</a></li>
                    <li><a href="https://community.apache.org/mentoringprogramme.html">Mentoring</a></li>
                    <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                    <li><a href="https://community.apache.org/calendars/">Community Events</a></li>
                    <li><a href="https://community.apache.org/newbiefaq.html">FAQ</a></li>
                    <li><a href="https://community.apache.org/lists.html">Mailing Lists</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Infrastructure&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/dev/infrastructure.html">Infra overview</a></li>
                    <li><a href="https://infra.apache.org/" target="_blank">Policies and Tools</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/INFRA/Index" target="_blank">CWiki</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">License&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/licenses/LICENSE-2.0">Apache License 2.0</a></li>
                    <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
                    <li><a href="/licenses/contributor-agreements.html">Contributor License Agreements</a></li>
                    <li><a href="/licenses/contributor-agreements.html#grants">Software Grants</a></li>
                    <li><a href="/foundation/marks/list/">Trademarks</a></li>
					<li><a href="/licenses/exports/">Exports</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Sponsors&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/foundation/sponsorship.html">Sponsor the ASF</a></li>
                    <li><a href="/foundation/thanks">Sponsor Thanks</a></li>
                    <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
                    <li><a href="/foundation/contributing.html">Individual Donations</a></li>
                    <li><a href="https://www.redbubble.com/people/comdev/">Buy Stuff</a></li>
                  </ul>
                </li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Downloads&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="https://downloads.apache.org/">Distribution</a></li>
                <li><a href="https://projects.apache.org/releases.html">Releases</a></li>
                <li><a href="https://status.apache.org/">Infrastructure Status</a></li>
                <li><a href="/uptime/">Infrastructure Statistics</a></li>
              </ul>
            </li>
            <li class="dropdown hidden-xs">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button"><span class="glyphicon glyphicon-search"
                  aria-hidden="true"></span><span class="sr-only">Search</span></a>
              <ul class="dropdown-menu search-form" role="search">
                <li>
                  <div class="input-group" style="width: 100%; padding: 0 5px;">
                    <script async src="https://cse.google.com/cse.js?cx=cb41d2753d228d8b7"></script>
                    <div class="gcse-search"></div>
                  </div>
                </li>
              </ul>
            </li>
          </ul>
        </div>
      </div>
    </nav>
  </header>
  <!-- / Navigation -->
  <header id="main-header" class="container">
    <div class="sideImg">
          <a class="visible-home" href="https://events.apache.org/x/current-event.html">
            <img class="img-responsive" style="width: 125px;" src="/events/current-event-125x125.png" alt="Apache Events"/>
<!-- STALE: <img class="img-responsive" style="width: 125px;" src="https://www.apachecon.com/event-images/default-square-light.png" alt="ApacheCon 2021 Coming Soon!" /> -->
          </a>
      <a class="hidden-home" href="/"><img class="img-responsive" src="/img/asf-estd-1999-logo.jpg" alt="The Apache Software Foundation"></a>
    </div>
    <div class="main">
      <img class="img-responsive center-block visible-home" src="/img/asf-estd-1999-logo.jpg" alt="Apache 20th Anniversary Logo">

      <ul class="nav navbar-nav navbar-justified">
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Projects&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/index.html#projects-list">Project List</a></li>
            <li><a href="/foundation/how-it-works.html#management">How they work</a></li>
            <li><a href="https://community.apache.org/projectIndependence.html">Independence</a></li>
            <li><a href="https://projects.apache.org/committees.html?date">Date Founded</a></li>
            <li><a href="https://projects.apache.org/projects.html?name">Names</a></li>
            <li><a href="https://projects.apache.org/projects.html?category">Categories</a></li>
            <li><a href="https://projects.apache.org/projects.html?language">Languages</a></li>
            <li><a href="https://projects.apache.org/statistics.html">Statistics</a></li>
            <li><a href="https://incubator.apache.org/">Apache Incubator</a></li>
            <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
            <li><a href="/foundation/marks/">Brand Management</a></li>
            <li><a href="/foundation/glossary.html">Glossary of Terms</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">People&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/foundation/how-it-works.html#roles">Roles</a></li>
            <li><a href="/foundation/members.html">Members</a></li>
            <li><a href="https://community.apache.org/contributors/">Committers</a></li>
            <li><a href="/foundation/#who-runs-the-asf">Board of Directors</a></li>
            <li><a href="/foundation/#who-runs-the-asf">Officers &amp; Project VPs</a></li>
            <li><a href="https://diversity.apache.org/">Diversity & Inclusion</a></li>
            <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
            <li><a href="https://people.apache.org/">Committer Directory</a></li>
            <li><a href="https://community.zones.apache.org/map.html">Heat Map</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Community&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="https://community.apache.org/about/">Community Development</a></li>
            <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
            <li><a href="https://community.apache.org/">Get Involved</a></li>
            <li><a href="https://community.apache.org/mentoringprogramme.html">Mentoring</a></li>
            <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
            <li><a href="https://community.apache.org/calendars/">Community Events</a></li>
            <li><a href="https://community.apache.org/newbiefaq.html">FAQ</a></li>
            <li><a href="https://community.apache.org/lists.html">Mailing Lists</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Infrastructure&nbsp;<span class="caret"></span></a>
          <ul class="dropdown-menu" role="menu">
              <li><a href="/dev/infrastructure.html">Infra overview</a></li>
              <li><a href="https://infra.apache.org/" target="_blank">Policies and Tools</a></li>
              <li><a href="https://cwiki.apache.org/confluence/display/INFRA/Index" target="_blank">CWiki</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">License&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/licenses/LICENSE-2.0">Apache License 2.0</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/licenses/contributor-agreements.html">Contributor License Agreements</a></li>
            <li><a href="/licenses/contributor-agreements.html#grants">Software Grants</a></li>
            <li><a href="/foundation/marks/list/">Trademarks</a></li>
			<li><a href="/licenses/exports/">Exports</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Sponsors&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/foundation/sponsorship.html">Sponsor the ASF</a></li>
            <li><a href="/foundation/thanks">Sponsor Thanks</a></li>
            <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
            <li><a href="/foundation/contributing.html">Individual Donations</a></li>
            <li><a href="https://www.redbubble.com/people/comdev/">Buy Stuff</a></li>
          </ul>
        </li>
      </ul>
    </div>
 
  </header>
  <main id="maincontent">
<div class="container">    <h1 id="the-apache-software-foundation-sponsorship-program">The Apache Software Foundation Sponsorship Program<a class="headerlink" href="#the-apache-software-foundation-sponsorship-program" title="Permalink">&para;</a></h1>
<p>The ASF Sponsorship Program is the way that corporations and individuals can
contribute substantially to the ongoing support of the Foundation. (As distinct
from <a href="contributing.html">one-time donations</a>.)</p>
<p>In return, the ASF will officially acknowledge your donation via various methods
appropriate to your sponsorship level. We will display your logo and link on the
<a href="thanks.html">ASF Thanks page</a> and provide an official sponsor image to place on
your website. (<em>Logo and link subject to ASF approval.</em>)</p>
<ul>
<li><a href="#Levels">Sponsorship levels</a></li>
<li><a href="#WhySponsor">Why should I sponsor the ASF?</a></li>
<li><a href="#FundsGo">Where will my sponsorship funds go?</a></li>
<li><a href="#WhoCanSponsor">Who can sponsor the ASF?</a></li>
<li><a href="#tax-status">The ASF is a non-profit organization</a></li>
<li><a href="#Sponsor">I'd like to talk to someone about supporting the ASF!</a></li>
<li><a href="#Renewals">How do sponsorship renewals happen?</a></li>
<li><a href="#Donations">Can I just make a one-time donation?</a></li>
<li><a href="/foundation/thanks.html">Who are the current sponsors?</a></li>
</ul>
<h2 id="Levels">Sponsorship Levels<a class="headerlink" href="#Levels" title="Permalink">&para;</a></h2>
<p>There are four sponsorship levels, defined by donation amount and in-return
benefits of sponsorship. No more than 25% of value can be based on
in-kind services</p>
<p>You must coordinate with the ASF Public Relations and Fundraising Team
(<a href="mailto:fundraising@apache.org">fundraising@apache.org</a>) on all donations you make.</p>
<table class="table">
<tr><td background="platinum.png" style="background-repeat:no-repeat;background-position: 90% 5%;">
<br/>
<h3 id="platinum">Platinum<a class="headerlink" href="#platinum" title="Permalink">&para;</a></h3>
<br/><br/><br/>
<ul>
<li>Donation level: <strong>US$125k</strong>/year</li>
<li>Your logo (max size: 400x179) on our ASF Thanks page with rel="sponsored" link
  <ul>
<li>Logo location: top section of page</li>
<li>Logo in rotating, random placement</li>
<li>Logo in a two column row</li>
</ul>
</li>
<li>Use of the ASF Platinum Sponsorship logo for your site</li>
<li>Joint press release with the ASF</li>
<li>Listed in ASF Quarterly + Annual Reports</li>
<li>Listed in all ASF press releases</li>
<li>New: Sponsor co-authored Case Study</li>
<li>New: &ldquo;Success At Apache&rdquo; Guest Post</li>
<li>New: Media testimonial placement + spokesperson opportunities</li>
<li>New: Dedicated Sponsorship Ambassador</li>
</ul>
</td>
<td background="gold.png" style="background-repeat:no-repeat;background-position: 90% 5%;">
<br/>
<h3 id="gold">Gold<a class="headerlink" href="#gold" title="Permalink">&para;</a></h3>
<br/><br/><br/>
<ul>
<li>Donation level: <strong>US$50k</strong>/year</li>
<li>Your logo (max size: 223x100) on our ASF Thanks page with rel="sponsored" link
  <ul>
<li>Logo location: upper-middle section of page</li>
<li>Logo in alphabetical placement</li>
<li>Logo in three column row</li>
</ul>
</li>
<li>Use of the ASF Gold Sponsorship logo for your site</li>
<li>Personal quote for your press release</li>
<li>Listed in ASF Quarterly + Annual Reports</li>
<li>Listed in all ASF press releases</li>
<li>New: Sponsor co-authored Case Study</li>
<li>New: Media testimonial placement + spokesperson opportunities</li>
<li>New: Dedicated Sponsorship Ambassador</li>
</ul>
</td></tr>
<tr><td background="silver.png" style="background-repeat:no-repeat;background-position: 90% 5%;">
<br/>
<h3 id="silver">Silver<a class="headerlink" href="#silver" title="Permalink">&para;</a></h3>
<br/><br/><br/>
<ul>
<li>Donation level: <strong>US$25k</strong>/year</li>
<li>Your logo (max size: 150x67) on our ASF Thanks page with rel="sponsored" link
  <ul>
<li>Logo location: lower-middle section of page</li>
<li>Logo in alphabetical placement</li>
<li>Logo in four column row</li>
</ul>
</li>
<li>Use of the ASF Silver Sponsorship logo for your site</li>
<li>Listed in ASF Quarterly + Annual Reports</li>
<li>Listed in all ASF press releases</li>
<li>New: Dedicated ASF Ambassador</li>
</ul>
</td>
<td background="bronze.png" style="background-repeat:no-repeat;background-position: 90% 5%;">
<br/>
<h3 id="bronze">Bronze<a class="headerlink" href="#bronze" title="Permalink">&para;</a></h3>
<br/><br/><br/>
<ul>
<li>Donation level: <strong>US$6k</strong>/year</li>
<li>Text mention on our ASF Thanks page rel="sponsored" link
  <ul>
<li>Text mention location: lower section of page</li>
<li>Alphabetical placement</li>
<li>Shared row</li>
</ul>
</li>
<li>Use of the ASF Bronze Sponsorship logo for your site</li>
<li>Listed in ASF Quarterly + Annual Reports</li>
</ul>
</td>
</tr>
</table>
<h2 id="WhySponsor">Why should I sponsor the ASF?<a class="headerlink" href="#WhySponsor" title="Permalink">&para;</a></h2>
<p>The Apache Software Foundation provides support for the Apache community of
open-source software <a href="projects.html">projects</a>. Apache projects use a collaborative, consensus-based development process, an
open and pragmatic software license, and a desire to create high quality
software that leads the way in its field. We consider ourselves not simply
a group of projects sharing a server, but rather a community of developers
and users.</p>
<p>The ASF provides the infrastructure for the projects - the mailing lists,
code repositories, bug tracking systems, etc. A few paid contractors, plus
large amounts of volunteer effort, maintain these resources. This,
in addition to the large costs of bandwidth and server hardware, constitutes
the bulk of the expense of running the Foundation.</p>
<p>By sponsoring the ASF you show your support for our mission and help
sustain a vibrant organization. Sponsorship also shows your support for
Open Source and gives you the opportunity to "give back" to the
community. Finally, since the ASF is non-profit organization, sponsorship
provides attractive tax benefits.</p>
<h2 id="FundsGo">Where will my sponsorship funds go?<a class="headerlink" href="#FundsGo" title="Permalink">&para;</a></h2>
<p>The Apache Software Foundation comprises 200+ top level projects, more than 800 active members, over 8,200 committers and countless contributors and users. We oversee hundreds of millions of lines of code, supported by an extensive infrastructure comprising ~200 individual machines, 1,400+ repositories, 5-6 petabytes in annual traffic, ~75M downloads per month, and 2-3M daily emails on 2,000+ lists.</p>
<p>We also have the normal business operating expenses which go with any
organization. These include:</p>
<ul>
<li>Infrastructure costs</li>
<li>Legal and Accounting</li>
<li>Marketing and PR</li>
<li>Ongoing office expenses and administrative duties</li>
</ul>
<p>Your sponsorship helps the ASF meet these expenses and
expand our capability to maintain our leadership in the developer and Open
Source communities. Funding lets us perform pro-active hardware
procurement, enhance our community outreach, sponsor developer hackathons
and user groups, and perform non-code related improvements to projects such
as better documentation and more comprehensive websites</p>
<h2 id="WhoCanSponsor">Who can sponsor the ASF?<a class="headerlink" href="#WhoCanSponsor" title="Permalink">&para;</a></h2>
<p>From time to time there is confusion about who can sponsor the Apache Software Foundation.
Additionally, there are often inquiries from potential sponsors who are not committed
to the mission of the ASF or open source software.</p>
<p>Because The Apache Software Foundation Sponsorship Program needs to apply its policies quickly,
fairly and equally, without the need for exceptions or board votes, we have tried to
maintain this document at the most basic level.  However, the Foundation reserves the right
to decline any sponsor without providing a reason and at our sole discretion.</p>
<p>In short, sponsors must be:</p>
<ul>
<li>An individual or a business located anywhere in the world that would be legal to operate anywhere in the United States and any state of nexus* for the ASF, excluding businesses, persons and jurisdiction limited by law.  This is necessary to avoid legal risks and protect our non-profit status.</li>
<li>Demonstrably committed to open source software and The Foundation&rsquo;s mission.</li>
</ul>
<p>Landing pages for sponsor links cannot be advertisements or redirectors and must be &ldquo;PG Rated&rdquo; and safe for work environments.  All links should go to a home page or a page with relevant, editorial content about open source software. Any sites with content unsuitable for minors must use a landing page that is completely kid-safe, with appropriate warnings, and that meets US legal requirements such as the FTC&rsquo;s COPPA requirements.</p>
<p><super>*</super><sub><strong>Nexus</strong>, also called &ldquo;sufficient physical presence&rdquo;, is a legal term that refers to the requirement for companies doing business in a state to collect and pay tax on sales in that state. For example, if you sell goods or services in Los Angeles, you must file and pay California state taxes. Source: <a href="https://quickbooks.intuit.com/r/taxes/what-is-nexus-and-how-does-it-affect-your-small-business">https://quickbooks.intuit.com/r/taxes/what-is-nexus-and-how-does-it-affect-your-small-business</a>.</sub></p>
<h2 id="Links">A note about links<a class="headerlink" href="#Links" title="Permalink">&para;</a></h2>
<p>Our sponsors demonstrate their commitment to Open Source Software by supporting us in our mission of providing software for the public good. We do this by providing services and support for many like-minded software project communities consisting of individuals who choose to participate in ASF activities. In the past, some sponsors have been primarily interested in the SEO benefits of being listed on the sponsors page. To address this issue, all sponsor thank-you listings include a rel="sponsored" tag as suggested by <a href="https://webmasters.googleblog.com/2019/09/evolving-nofollow-new-ways-to-identify.html">popular webmaster policies</a>.</p>
<h2 id="tax-status">The Apache Software Foundation is a non-profit organization<a class="headerlink" href="#tax-status" title="Permalink">&para;</a></h2>
<p>The Apache Software Foundation is a private operating foundation that is
registered as a non-profit, charitable organization under Section 501(c)(3)
of the U.S. Internal Revenue Code. This means that, for individuals within
the U.S., donations to the ASF should be <strong>tax-deductible</strong>. We are not
accountants, so this cannot be trusted as financial advice of any kind, but
we hope this description will be useful to those who advise you in these
matters. You may view our <a href="records/ASF-501c3.pdf">ruling letter from the IRS acknowledging our
501(c)3 status</a>.</p>
<p>You may review the latest financial filings and non-profit exemption
application of The Apache Software Foundation in our <a href="records/">public
records</a> section. You may find other helpful information
through
<a href="https://www.guidestar.org/profile/47-0825376">GuideStar</a>
(requires free registration for full access).</p>
<p>You can find more information about non-profits and related issues at the
<a href="http://www.nonprofits.org/">Internet Nonprofit Center</a>.</p>
<h2 id="Sponsor">I'd like to talk to someone about supporting the ASF!<a class="headerlink" href="#Sponsor" title="Permalink">&para;</a></h2>
<p>If you would like more information about supporting the ASF, please contact
<a href="mailto:fundraising@apache.org">fundraising@apache.org</a>.
We handle sponsorship donations
differently from <a href="contributing.html">standard non-directed donations</a>,
so if you want your
donations to be part of the Sponsorship program (and thus obtain the
benefits of the program), coordinate the donation with the
Fundraising team
(<a href="mailto:fundraising@apache.org">fundraising@apache.org</a>).</p>
<p>We keep all information in strictest confidence.</p>
<h2 id="Renewals">How do sponsorship renewals happen?<a class="headerlink" href="#Renewals" title="Permalink">&para;</a></h2>
<p>Your sponsorship runs for one year after the date of receipt of payment.
During this period, we display your logo on our <a href="/foundation/thanks.html">thanks</a>
page.</p>
<p>Two months before the end of your sponsorship, we will contact you (via the
same mechanism we used to arrange the initial sponsorship) requesting
renewal. If renewal does not take place by the renewal date of the sponsorship,
the ASF may remove your logo from the thanks page.</p>
<h2 id="Donations">Can I just make a one-time donation?<a class="headerlink" href="#Donations" title="Permalink">&para;</a></h2>
<p>The ASF appreciates donations of any size and, as we are a US registered 501(c)(3)
corporation, your donation may be tax deductible.  If you are interested in
donating to the ASF at a different level than sponsorship, see our
<a href="/foundation/contributing.html">donation page</a>.</p>
<p>Thanks for your support!</p>

</div>  </main>

  <!-- Footer -->
  <footer class="bg-primary">
    <div class="container">
      <div class="row">
        <br />
        <div class="col-sm-1">

        </div>
        <div class="col-sm-2">
          <h5 class="white">Community</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="http://community.apache.org/">Overview</a></li>
            <li><a href="/foundation/conferences.html">Conferences</a></li>
            <li><a href="http://community.apache.org/gsoc.html">Summer of Code</a></li>
            <li><a href="http://community.apache.org/newcomers/">Getting Started</a></li>
            <li><a href="/foundation/how-it-works.html">The Apache Way</a></li>
            <li><a href="/travel/">Travel Assistance</a></li>
            <li><a href="/foundation/getinvolved.html">Get Involved</a></li>
            <li><a href="/foundation/policies/conduct.html">Code of Conduct</a></li>
            <li><a href="http://community.apache.org/newbiefaq.html">Community FAQ</a></li>
            <li><a href="/memorials/">Memorials</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Innovation</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="http://incubator.apache.org/">Incubator</a></li>
            <li><a href="http://labs.apache.org/">Labs</a></li>
            <li><a href="/licenses/">Licensing</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/foundation/marks/">Trademark Policy</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Tech Operations</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/dev/">Developer Information</a></li>
            <li><a href="/dev/infrastructure.html">Infrastructure</a></li>
            <li><a href="/security/">Security</a></li>
            <li><a href="http://status.apache.org">Status</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Press</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/press/">Overview</a></li>
            <li><a href="https://blogs.apache.org/">ASF News</a></li>
            <li><a href="https://blogs.apache.org/foundation/">Announcements</a></li>
            <li><a href="https://twitter.com/TheASF">Twitter Feed</a></li>
            <li><a href="/press/#contact">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Legal</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/legal/">Legal Affairs</a></li>
            <li><a href="/legal/dmca.html">DMCA</a></li>
            <li><a href="/licenses/">Licensing</a></li>
            <li><a href="/foundation/marks/">Trademark Policy</a></li>
            <li><a href="/foundation/records/">Public Records</a></li>
            <li><a href="/foundation/policies/privacy.html">Privacy Policy</a></li>
            <li><a href="/licenses/exports/">Export Information</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-1">
        </div>

      </div>
      <hr class="col-lg-12 hr-white" />
      <div class="row">
        <div class="col-lg-12">
          <p class="text-center">Copyright &#169; 2023 The Apache Software Foundation, Licensed under the <a class="white" href="/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
          <p class="text-center">Apache and the Apache feather logo are trademarks of The Apache Software Foundation. </p>
        </div>
      </div>
    </div>

  </footer>

  <!-- / Footer -->

  <script src="/js/jquery-2.1.1.min.js"></script>
  <script src="/js/bootstrap.js"></script>
  <script src="/js/slideshow.js"></script>
  <script>
    (function($){
    $(document).ready(function(){
    $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
    event.preventDefault();
    event.stopPropagation();
    $(this).parent().siblings().removeClass('open');
    $(this).parent().toggleClass('open');
    console.log('WOrked');
    });
    });
    })(jQuery);
  </script>
</body>
</html>