> ## Documentation Index
> Fetch the complete documentation index at: https://docs.runmorph.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Perimeter81

> Open-Source Perimeter81 Connector

<Card title="Perimeter81" icon={<svg width="24" height="24" viewBox="0 0 62 62" xmlns="http://www.w3.org/2000/svg" fill="none"><path fill="url(#A)" d="M9 13h44v35.951H9z"/><defs><pattern id="A" patternContentUnits="objectBoundingBox" width="1" height="1"><use href="#B" transform="matrix(.006098 0 0 .007463 .018478 .011307)"/></pattern><image id="B" width="717" height="134" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAs0AAACGCAYAAAAmT7cHAAAsYmNhQlgAACxianVtYgAAAB5qdW1kYzJwYQARABCAAACqADibcQNjMnBhAAAALDxqdW1iAAAAR2p1bWRjMm1hABEAEIAAAKoAOJtxA3Vybjp1dWlkOjc0MmE1ZjZhLTU0MDEtNDJmOC1hZTUzLWI1YmVkNjlmMGQ4ZAAAAAGmanVtYgAAAClqdW1kYzJhcwARABCAAACqADibcQNjMnBhLmFzc2VydGlvbnMAAAAAymp1bWIAAAAmanVtZGNib3IAEQAQgAAAqgA4m3EDYzJwYS5hY3Rpb25zAAAAAJxjYm9yoWdhY3Rpb25zgaNmYWN0aW9ua2MycGEuZWRpdGVkbXNvZnR3YXJlQWdlbnRtQWRvYmUgRmlyZWZseXFkaWdpdGFsU291cmNlVHlwZXhGaHR0cDovL2N2LmlwdGMub3JnL25ld3Njb2Rlcy9kaWdpdGFsc291cmNldHlwZS90cmFpbmVkQWxnb3JpdGhtaWNNZWRpYQAAAKtqdW1iAAAAKGp1bWRjYm9yABEAEIAAAKoAOJtxA2MycGEuaGFzaC5kYXRhAAAAAHtjYm9ypWpleGNsdXNpb25zgaJlc3RhcnQYIWZsZW5ndGgZLG5kbmFtZW5qdW1iZiBtYW5pZmVzdGNhbGdmc2hhMjU2ZGhhc2hYIHQYR6DhAi+qwbRCmzXsGHse/MbKWoQhdUaIYrMj9B8HY3BhZEgAAAAAAAAAAAAAAgdqdW1iAAAAJGp1bWRjMmNsABEAEIAAAKoAOJtxA2MycGEuY2xhaW0AAAAB22Nib3KoaGRjOnRpdGxlb0dlbmVyYXRlZCBJbWFnZWlkYzpmb3JtYXRpaW1hZ2UvcG5namluc3RhbmNlSUR4LHhtcDppaWQ6NWM4Nzg2ZGEtM2VhZS00ZjU0LTk2YzctNWEwZDAwYTBmYjQwb2NsYWltX2dlbmVyYXRvcng2QWRvYmVfSWxsdXN0cmF0b3IvMjguMCBhZG9iZV9jMnBhLzAuNy42IGMycGEtcnMvMC4yNS4ydGNsYWltX2dlbmVyYXRvcl9pbmZvgb9kbmFtZXFBZG9iZSBJbGx1c3RyYXRvcmd2ZXJzaW9uZDI4LjD/aXNpZ25hdHVyZXgZc2VsZiNqdW1iZj1jMnBhLnNpZ25h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C+EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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"/></defs></svg>}>
  The Perimeter81 connector enables easy and secure data synchronization between your application and your customers' Perimeter81 accounts through unified data models.
</Card>

## Authorization

<Accordion title="OAuth" defaultOpen={false} icon="key-skeleton" iconType="duotone">
  The Perimeter81 connector uses OAuth for secure authentication. When creating a connection, the required OAuth scopes are automatically configured based on your specific operations needs (e.g. `genericContact::create`, `genericUser::list`).<br /><br />
  ✓ Automatic token refresh handling<br />
  ✓ Proactive insufficient permissions detection<br /><br />

  [View our step-by-step integration guide](./../api-reference/intro)

  **Whitelabel**

  <Check>
    **Supported** <br />
    You can choose to provide your own set of `clientId` and `clientSecret` for this
    connector from the Morph Cloud dashboard; allowing a fully whitelabled experience
    for your end-customers.
  </Check>
</Accordion>

<CodeGroup>
  ```typescript TypeScript theme={null}
  import { Morph } from "@runmorph/cloud";

  const morph = Morph({ publicKey: "pk_demo_xxxxxxxxxxxxxxx", secretKey: "sk_demo_xxxxxxxxxxxxxxx"}); 

  // create a new connection
  const connection = morph.connections({ connectorId: "perimeter81", ownerId: "demo" });
  await connection.create({ operations:[ "genericContact::list" ]});

  // auhtorize the connection
  const { auhtorizationUrl } = await connection.authorize();

  // redirect the user to the auhtorizationUrl
  ```

  ```tsx React theme={null}
  import { Morph, Connect } from "@runmorph/atoms";

  // generate sessionToken from server →  morph.sessions().create(...);

  export default function ConnectionPage({ sessionToken }) {
    return (
      <Morph.Provider>
        <Connect
          sessionToken={sessionToken}
          connectionCallbacks={{
            onError: (error) => alert(error.message)
          }}
        />
      </Morph.Provider>
    );
  }
  ```

  ```python Python theme={null}
  morph = Morph(api_key="pk_demo_xxxxxxxxxxxxxxx", api_secret="sk_demo_xxxxxxxxxxxxxxx")

  # create a new connection
  connection = morph.connections(connector_id="perimeter81", owner_id="demo")
  connection.create(operations=[ "genericContact::list" ])

  # authorize the connection
  auth_result = connection.authorize()
  authorization_url = auth_result["authorization_url"]

  # redirect the user to the authorization_url
  ```

  ```ruby Ruby theme={null}
  morph = Morph.new(api_key: "pk_demo_xxxxxxxxxxxxxxx", api_secret: "sk_demo_xxxxxxxxxxxxxxx")

  # create a new connection
  connection = morph.connections(connector_id: "perimeter81", owner_id: "demo")
  connection.create(operations: [ "genericContact::list" ])

  # authorize the connection
  auth_result = connection.authorize
  authorization_url = auth_result[:authorization_url]

  # redirect the user to the authorization_url
  ```

  ```php PHP theme={null}
  $morph = new Morph([
    'api_key' => 'pk_demo_xxxxxxxxxxxxxxx',
    'api_secret' => 'sk_demo_xxxxxxxxxxxxxxx'
  ]);

  // create a new connection
  $connection = $morph->connections([
    'connector_id' => 'perimeter81',
    'owner_id' => 'demo'
  ]);
  $connection->create(['operations' => ['genericContact::create','genericUser::list']]);

  // auhtorize the connection
  $authResult = $connection->authorize();
  $authorizationUrl = $authResult['authorization_url'];

  // redirect the user to the auhtorizationUrl
  ```

  ```go Go theme={null}
  morph := morph.New(&morph.Config{
      publicKey:    "pk_demo_xxxxxxxxxxxxxxx",
      secretKey: "sk_demo_xxxxxxxxxxxxxxx",
  })

  // create a new connection
  connection := morph.Connections(&morph.ConnectionConfig{
      ConnectorId: "perimeter81",
      OwnerId:    "demo",
  })
  connection.Create(&morph.CreateConfig{
      Operations: []string{"genericContact::create", "genericUser::list"},
  })

  // authorize the connection
  authResult, _ := connection.Authorize()
  authorizationUrl := authResult.AuthorizationUrl

  // redirect the user to the authorization URL
  ```
</CodeGroup>

<br />

<Accordion title="Try a live demo of Perimeter81 connection ✨">
  <Check>
    **Live Demo** <br />
    Select a connector below to experience our seamless authentication flow and see
    how easy it is to connect third-party services.
  </Check>

  <iframe src="https://atoms-playground.vercel.app/temp/connectors/perimeter81?theme=light" width="100%" height="370px" className="block dark:hidden" />

  <iframe src="https://atoms-playground.vercel.app/temp/connectors/perimeter81?theme=dark" width="100%" height="370px" className="hidden dark:block" />
</Accordion>

## Models

### Generic

<AccordionGroup>
  <Accordion title="User" defaultOpen={false} icon="users-medical">
    <p>
      The Perimeter81 connector seamlessly integrates with our unified `genericUser` model, enabling you to manage Users with rich data including `firstName`, `lastName`, `email` and other key details <br />
    </p>

    **API Reference**

    <table className="mt-0">
      <tr>
        <td className="py-1 px-2">
          <span className="px-1 py-0.5 rounded-md leading-tight font-bold bg-green-400/20 text-green-700 dark:bg-green-400/20 dark:text-green-400">GET</span>
        </td>

        <td className="py-1 px-2">`/resources/genericUser`</td>
        <td className="py-1 px-2">[List and Search Perimeter81 Users](./../api-reference/models/user/list-user)</td>
      </tr>

      <tr>
        <td className="py-1 px-2">
          <span className="px-1 py-0.5 rounded-md  leading-tight font-bold bg-green-400/20 text-green-700 dark:bg-green-400/20 dark:text-green-400">GET</span>
        </td>

        <td className="py-1 px-2">`/resources/genericUser/:id`</td>
        <td className="py-1 px-2">[Retrieve a Perimeter81 User](./../api-reference/models/user/retrieve-user)</td>
      </tr>

      <tr>
        <td className="py-1 px-2">
          <span className="px-1 py-0.5 rounded-md  leading-tight font-bold bg-blue-400/20 text-blue-700 dark:bg-blue-400/20 dark:text-blue-400">POST</span>
        </td>

        <td className="py-1 px-2">`/resources/genericUser`</td>
        <td className="py-1 px-2">[Create a Perimeter81 User](./../api-reference/models/user/create-user)</td>
      </tr>

      <tr>
        <td className="py-1 px-2">
          <span className="px-1 py-0.5 rounded-md leading-tight font-bold bg-orange-400/20 text-orange-700 dark:bg-orange-400/20 dark:text-orange-400">PATCH</span>
        </td>

        <td className="py-1 px-2">`/resources/genericUser/:id`</td>
        <td className="py-1 px-2">[Update a Perimeter81 User](./../api-reference/models/user/update-user)</td>
      </tr>

      <tr>
        <td className="py-1 px-2">
          <span className="px-1 py-0.5 rounded-md leading-tight font-bold bg-red-400/20 text-red-700 dark:bg-red-400/20 dark:text-red-400">DEL</span>
        </td>

        <td className="py-1 px-2">`/resources/genericUser/:id`</td>
        <td className="py-1 px-2">[Delete a Perimeter81 User](./../api-reference/models/user/delete-user)</td>
      </tr>
    </table>

    **Custom Fields**

    <Check>
      **Supported** <br />
      The Perimeter81 connector supports our `Field Mapping` feature, enabling you or your customers to seamlessly map Perimeter81 User custom fields to the unified user model. This allows for flexible data synchronization while maintaining data consistency across all connectors.
    </Check>

    <br />

    [view User model details](./../models/genericUser)
  </Accordion>

  <Accordion title="Workspace" defaultOpen={false} icon="network-wired">
    <p>
      The Perimeter81 connector seamlessly integrates with our unified `genericWorkspace` model, enabling you to manage Workspaces with rich data including `name` and other key details <br />
    </p>

    **API Reference**

    <table className="mt-0">
      <tr>
        <td className="py-1 px-2">
          <span className="px-1 py-0.5 rounded-md leading-tight font-bold bg-green-400/20 text-green-700 dark:bg-green-400/20 dark:text-green-400">GET</span>
        </td>

        <td className="py-1 px-2">`/resources/genericWorkspace`</td>
        <td className="py-1 px-2">[List and Search Perimeter81 Workspaces](./../api-reference/models/workspace/list-workspace)</td>
      </tr>

      <tr>
        <td className="py-1 px-2">
          <span className="px-1 py-0.5 rounded-md  leading-tight font-bold bg-green-400/20 text-green-700 dark:bg-green-400/20 dark:text-green-400">GET</span>
        </td>

        <td className="py-1 px-2">`/resources/genericWorkspace/:id`</td>
        <td className="py-1 px-2">[Retrieve a Perimeter81 Workspace](./../api-reference/models/workspace/retrieve-workspace)</td>
      </tr>

      <tr>
        <td className="py-1 px-2">
          <span className="px-1 py-0.5 rounded-md  leading-tight font-bold bg-blue-400/20 text-blue-700 dark:bg-blue-400/20 dark:text-blue-400">POST</span>
        </td>

        <td className="py-1 px-2">`/resources/genericWorkspace`</td>
        <td className="py-1 px-2">[Create a Perimeter81 Workspace](./../api-reference/models/workspace/create-workspace)</td>
      </tr>

      <tr>
        <td className="py-1 px-2">
          <span className="px-1 py-0.5 rounded-md leading-tight font-bold bg-orange-400/20 text-orange-700 dark:bg-orange-400/20 dark:text-orange-400">PATCH</span>
        </td>

        <td className="py-1 px-2">`/resources/genericWorkspace/:id`</td>
        <td className="py-1 px-2">[Update a Perimeter81 Workspace](./../api-reference/models/workspace/update-workspace)</td>
      </tr>

      <tr>
        <td className="py-1 px-2">
          <span className="px-1 py-0.5 rounded-md leading-tight font-bold bg-red-400/20 text-red-700 dark:bg-red-400/20 dark:text-red-400">DEL</span>
        </td>

        <td className="py-1 px-2">`/resources/genericWorkspace/:id`</td>
        <td className="py-1 px-2">[Delete a Perimeter81 Workspace](./../api-reference/models/workspace/delete-workspace)</td>
      </tr>
    </table>

    **Custom Fields**

    <Check>
      **Supported** <br />
      The Perimeter81 connector supports our `Field Mapping` feature, enabling you or your customers to seamlessly map Perimeter81 Workspace custom fields to the unified workspace model. This allows for flexible data synchronization while maintaining data consistency across all connectors.
    </Check>

    <br />

    [view Workspace model details](./../models/genericWorkspace)
  </Accordion>
</AccordionGroup>

## Custom

<Check>
  **Supported** <br />
  Can't find the unified model you need? The Perimeter81 connector supports your own custom model.
</Check>

## Webhooks

<Accordion title="Events Subscription" defaultOpen={false} icon="webhook" iconType="duotone">
  The Perimeter81 connector supports real-time event subscriptions, allowing you to
  receive instant notifications when records are created, updated, or deleted.
  Below are the supported models and their corresponding triggers.

  <table className="mt-0">
    <tr>
      <th className="py-1 px-2">Models</th>
      <th className="py-1 px-2">Created</th>
      <th className="py-1 px-2">Updated</th>
      <th className="py-1 px-2">Deleted</th>
      <th className="py-1 px-6">API Reference</th>
    </tr>

    <tr>
      <td className="">`genericUser`</td>

      <td className=" text-center">
        <Icon icon="circle-check" iconType="duotone" />
      </td>

      <td className=" text-center">
        <Icon icon="circle-check" iconType="duotone" />
      </td>

      <td className=" text-center">
        <Icon icon="circle-check" iconType="duotone" />
      </td>

      <td className=" text-center">
        [view event](./../api-reference/models/user/event)
      </td>
    </tr>

    <tr>
      <td className="">`genericWorkspace`</td>

      <td className=" text-center">
        <Icon icon="circle-x" iconType="duotone" color="gray" />
      </td>

      <td className=" text-center">
        <Icon icon="circle-x" iconType="duotone" color="gray" />
      </td>

      <td className=" text-center">
        <Icon icon="circle-x" iconType="duotone" color="gray" />
      </td>

      <td className=" text-center">
        [view event](./../api-reference/models/workspace/event)
      </td>
    </tr>
  </table>
</Accordion>

## Proxy

<Check>
  **Supported** <br />
  The Perimeter81 connector supports our `Proxy Request` feature, allowing you to directly
  call any endpoints from Perimeter81's public API without needing to handle authentication.
  Your customer's token will be automatically set and refreshed as needed, enabling
  quick implementation of custom connector behaviors. [View API Reference](./../api-reference/proxy/proxy-request-to-connector).
</Check>
