---
schema_version: "1"
id: 3c592dced60f21a2c82dc46b7db29baec961530a3d630dedffdd0af73ef47d6a
title: ApexPage
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/api_tooling/tooling_api_objects_apexpage.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/tooling_api_objects_apexpage.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: 61a961cb700f5319d4324af07ed6cbdf92f3a7659ccdbd3a12f129731501d922
description: Represents the saved copy of a Visualforce page. ApexPage uses the cached version of the page unless one is unavailable. Available from API version 28.0 or later.
---
# ApexPage

Represents the saved copy of a Visualforce page. ApexPage uses the cached version of the page unless one is unavailable. Available from API version 28.0 or later.

To edit, save, or compile Visualforce pages, use [ApexPageMember](https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/tooling_api_objects_apexpagemember.htm "Represents the working copy of a Visualforce page for editing, saving, or compiling in a MetadataContainer.").

## Supported SOAP API Calls

create(), delete(), describeSObjects(), query(), retrieve(), search(), update(), upsert()

## Supported REST API HTTP Methods

Query, GET, POST, PATCH, DELETE

## Fields

<table class="featureTable sort_table" summary="">


          <thead class="thead sorted" align="left">
            <tr>
              <th class="featureTableHeader  " id="d30213e119">Field Name</th>

              <th class="featureTableHeader  " id="d30213e122">Details</th>

            </tr>

          </thead>

          <tbody class="tbody">
            <tr>
              <td class="entry" headers="d30213e119" data-title="Field Name"><span class="keyword parmname">ApiVersion</span></td>

              <td class="entry" headers="d30213e122" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">double</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Create, Filter, Sort, Update</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">The API version for the page. Every page has an API version specified at
                    creation. <span class="ph" id="ApiVersionDefault"><a name="ApiVersionDefault"><!-- --></a>If the API version is less than 15.0 and
                      <samp class="codeph java">ApiVersion</samp> is not specified, <samp class="codeph java">ApiVersion</samp> defaults to 15.0.</span> This field is
                    available in API version 30.0 and later.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d30213e119" data-title="Field Name"><span class="keyword parmname">ControllerKey</span></td>

              <td class="entry" headers="d30213e122" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">string</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Create, Filter, Group, Nillable, Sort, Update</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">The identifier for the controller associated with this page:<ul class="ul bulletList">
                      <li class="li">If <span class="keyword parmname">ControllerType</span> is set to <samp class="codeph nolang">Standard</samp> or <samp class="codeph nolang">StandardSet</samp>, this value is the name of the sObject that
                        defines the controller.</li>

                      <li class="li">If <span class="keyword parmname">ControllerType</span> is set to <samp class="codeph nolang">Custom</samp>, this value is the name of the Apex
                        class that defines the controller.</li>

                    </ul>
                    <p class="p">This field is available in API version 30.0 and later.</p>
                  </dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d30213e119" data-title="Field Name"><span class="keyword parmname">ControllerType</span></td>

              <td class="entry" headers="d30213e122" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">picklist</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Create, Filter, Group, Restricted picklist, Sort, Update</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">The type of controller associated with this Visualforce page. Possible
                    values include:<ul class="ul bulletList">
                      <li class="li">
                        <samp class="codeph nolang">Not Specified</samp>, for pages defined
                        with neither a <samp class="codeph nolang">standardController</samp> nor
                        a <samp class="codeph nolang">controller</samp> attribute on the <samp class="codeph apex_page"><span class="tag">&lt;apex:page</span>&gt;</samp> tag
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">Standard</samp>, for pages defined with
                        the <samp class="codeph nolang">standardController</samp> attribute on
                        the <samp class="codeph apex_page"><span class="tag">&lt;apex:page</span>&gt;</samp> tag
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">StandardSet</samp>, for pages defined
                        using the <samp class="codeph nolang">standardController</samp> and
                        <samp class="codeph nolang">recordSetVar</samp> attribute on the
                        <samp class="codeph apex_page"><span class="tag">&lt;apex:page</span>&gt;</samp> tag
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">Custom</samp>, for pages defined with the
                        <samp class="codeph nolang">controller</samp> attribute on the <samp class="codeph apex_page"><span class="tag">&lt;apex:page</span>&gt;</samp> tag
                      </li>

                    </ul>
                    <p class="p">This field is available in API version 30.0 and later.</p>
                  </dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d30213e119" data-title="Field Name"><span class="keyword parmname">Description</span></td>

              <td class="entry" headers="d30213e122" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">textarea</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Create, Filter, Nillable, Sort, Update</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">Description of the Visualforce page. This field is available in API version
                    30.0 and later.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d30213e119" data-title="Field Name"><span class="keyword parmname">FullName</span></td>

              <td class="entry" headers="d30213e122" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">string</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Create, Filter, Group, idLookup, Sort, Update</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">The full name of the associated metadata object in Metadata API.</dd>

                  <dd class="dd">Query this field only if the query result contains no more than one record.
                    Otherwise, an error is returned. If more than one record exists, use multiple
                    queries to retrieve the records. This limit protects performance. This field
                    is available in API version 36.0 and later.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d30213e119" data-title="Field Name"><span class="keyword parmname">IsAvailableInTouch</span></td>

              <td class="entry" headers="d30213e122" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">boolean</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Create, Defaulted on create, Filter, Group, Sort, Update</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">Indicates if Visualforce tabs associated with the Visualforce page can be
                    used in the Salesforce mobile app (<samp class="codeph nolang">true</samp>)
                    or not (<samp class="codeph nolang">false</samp>). (Use of this field for
                    Salesforce Touch is deprecated.) This field is available in API version 30.0
                    and later. <p class="p">Standard object tabs that are overridden with a Visualforce page
                      aren’t supported in the Salesforce mobile app, even if you set this field
                      for the page. The default Salesforce app page for the object is displayed
                      instead of the Visualforce page.</p>
                  </dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d30213e119" data-title="Field Name"><span class="keyword parmname">IsConfirmationTokenRequired</span></td>

              <td class="entry" headers="d30213e122" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">boolean</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Create, Defaulted on create, Filter, Group, Sort, Update</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">Indicates whether <samp class="codeph nolang">GET</samp> requests for the
                    page require a CSRF confirmation token (<samp class="codeph nolang">true</samp>) or not (<samp class="codeph nolang">false</samp>). This
                    field is available in API version 30.0 and later. <p class="p">If you change this
                      field’s value from <samp class="codeph nolang">false</samp> to <samp class="codeph nolang">true</samp>, links to the page require a CSRF token
                      to be added to them, or the page will be inaccessible.</p>
                  </dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d30213e119" data-title="Field Name"><span class="keyword parmname">ManageableState</span></td>

              <td class="entry" headers="d30213e122" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">ManageableState enumerated list</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Filter, Group, Nillable, Restricted picklist, Sort</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">Indicates the manageable state of the specified component that is contained
                    in a package: <ul class="ul bulletList">
                      <li class="li"><samp class="codeph nolang">beta</samp></li>

                      <li class="li"><samp class="codeph nolang">deleted</samp></li>

                      <li class="li"><samp class="codeph nolang" id="option_deprecated"><a name="option_deprecated"><!-- --></a>deprecated</samp></li>

                      <li class="li"><samp class="codeph nolang">deprecatedEditable</samp></li>

                      <li class="li"><samp class="codeph nolang">installed</samp></li>

                      <li class="li"><samp class="codeph nolang">installedEditable</samp></li>

                      <li class="li"><samp class="codeph nolang">released</samp></li>

                      <li class="li"><samp class="codeph nolang">unmanaged</samp></li>

                    </ul>
                  </dd>


                </dl>

                <p class="p">This field is available in API version 38.0 and later.</p>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d30213e119" data-title="Field Name"><span class="keyword parmname">Markup</span></td>

              <td class="entry" headers="d30213e122" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">textarea</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Create, Update</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">The Visualforce markup, HTML, Javascript, and any other Web-enabled code
                    that defines the content of the page. This field is available in API version
                    30.0 and later.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d30213e119" data-title="Field Name"><span class="keyword parmname">MasterLabel</span></td>

              <td class="entry" headers="d30213e122" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">string</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Create, Filter, Group, Sort, Update</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">The text used to identify the Visualforce page in the Setup area of
                    Salesforce. The Label is <strong class="ph b">Label</strong>. This field is available in API version
                    30.0 and later.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d30213e119" data-title="Field Name"><span class="keyword parmname">Metadata</span></td>

              <td class="entry" headers="d30213e122" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">mns:ApexPage</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Create, Nillable, Update</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">The Visualforce page metadata. Query this field only if the query result
                    contains no more than one record. Otherwise, an error is returned. If more
                    than one record exists, use multiple queries to retrieve the records. This
                    limit protects performance. This field is available in API version 36.0 and
                    later.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d30213e119" data-title="Field Name"><span class="keyword parmname">Name</span></td>

              <td class="entry" headers="d30213e122" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">string</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Create, Filter, Group, idLookup, Sort, Update</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">Required. Name of this Visualforce page. This field is available in API
                    version 30.0 and later.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d30213e119" data-title="Field Name"><span class="keyword parmname">NamespacePrefix</span></td>

              <td class="entry" headers="d30213e122" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">string</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Filter, Group, Nillable, Sort</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">The namespace prefix that is associated with this object. Each Developer
                    Edition org that creates a managed package has a unique namespace prefix.
                    Limit: 15 characters. You can refer to a component in a managed package by
                    using the <samp class="codeph nolang"><var class="keyword varname">namespacePrefix</var>__<var class="keyword varname">componentName</var></samp>
                    notation. <p class="p">The namespace prefix can have one of the following values.</p>
                    <a name="namespace_prefix_values"><!-- --></a>
                    <ul class="ul bulletList" id="namespace_prefix_values">
                      <li class="li">In Developer Edition orgs, <span class="keyword parmname">NamespacePrefix</span> is set
                        to the namespace prefix of the org for all objects that support it, unless
                        an object is in an installed managed package. In that case, the object has
                        the namespace prefix of the installed managed package. This field’s value
                        is the namespace prefix of the Developer Edition org of the package
                        developer.</li>

                      <li class="li">In orgs that are not Developer Edition orgs,
                        <span class="keyword parmname">NamespacePrefix</span> is set only for objects that are
                        part of an installed managed package. All other objects have no namespace
                        prefix.
                      </li>

                    </ul>
                  </dd>

                  <dd class="dd"> This field is available in API version 30.0 and later.</dd>


                </dl>

              </td>

            </tr>

          </tbody>

        </table>

## Usage

To retrieve information about a Visualforce page, create an ApexPage object that references it. For example code, see [SOAP Calls](https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/intro_soap_overview.htm).

To edit, save, or compile Visualforce pages, use [ApexPageMember](https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/tooling_api_objects_apexpagemember.htm "Represents the working copy of a Visualforce page for editing, saving, or compiling in a MetadataContainer.").