---
title: "List portal access"
method: GET
path: "/portals/{portal_id}/access"
tags: ["Portal Access"]
---

# List portal access

`GET /portals/{portal_id}/access`

## Request

- Base URL: `https://api.metorial.com`
- URL: `https://api.metorial.com/portals/{portal_id}/access`
- Auth: HTTP bearer

Returns a paginated list of consumer access rules for a portal.

## Path parameters

- `portal_id` string, required

## Query parameters

- `limit` number
- `after` string
- `before` string
- `cursor` string
- `order` 'asc' | 'desc'
- `search` string
- `consumer_group_id` union
  - string
  - string[]
- `provider_template_id` union
  - string
  - string[]
- `magic_mcp_server_id` union
  - string
  - string[]
- `skill_id` union
  - string
  - string[]
- `skill_template_id` union
  - string
  - string[]
- `skill_group_id` union
  - string
  - string[]
- `skill_marketplace_id` union
  - string
  - string[]
- `skill_plugin_id` union
  - string
  - string[]
- `consumer_access_listing_id` union
  - string
  - string[]
- `type` union
  - 'provider_template' | 'magic_mcp_server' | 'skill' | 'skill_template' | 'skill_group' | 'skill_marketplace' | 'skill_plugin'
  - string[]

## Headers

- `Metorial-Version` string

## Response `200`

Successful response

- ConsumerAccessList
  - `items` Item16[], required
    - `object` 'consumer.access', required
    - `id` string, required
    - `access_level` 'read' | 'manage', nullable, required
    - `name` string, required
    - `description` string, nullable, required
    - `readme` string, nullable, required
    - `listing` object, nullable, required
      - `id` string, required
      - `name` string, required
      - `description` string, nullable, required
    - `access` union, required
      - Access2
        - `type` 'provider_template', required
        - `provider_template` ProviderTemplate, required
          - `object` 'provider.template#preview', required
          - `id` string, required
          - `status` 'active' | 'archived' | 'deleted', required
          - `name` string, required
          - `description` string, nullable, required
          - `metadata` object, required
          - `integration_id` string, nullable, required
          - `created_at` string, date-time, required
          - `updated_at` string, date-time, required
      - Access3
        - `type` 'magic_mcp_server', required
        - `magic_mcp_server` MagicMcpServer, required
          - `object` 'magic_mcp.server#preview', required
          - `id` string, required
          - `status` 'active' | 'archived' | 'deleted', required
          - `name` string, nullable, required
          - `description` string, nullable, required
      - Access4
        - `type` 'skill', required
        - `skill` object, required
          - `object` 'skill', required
          - `id` string, required
          - `status` 'active' | 'archived' | 'deleted', required
          - `name` string, required
      - Access5
        - `type` 'skill_template', required
        - `skill_template` SkillTemplate2, required
          - `object` 'skill.template', required
          - `id` string, required
          - `status` 'active' | 'archived' | 'deleted', required
          - `owner` 'system' | 'tenant', required
          - `name` string, required
          - `description` string, nullable, required
      - Access6
        - `type` 'skill_group', required
        - `skill_group` object, required
          - `object` 'skill.group', required
          - `id` string, required
          - `status` 'active' | 'archived' | 'deleted', required
          - `name` string, required
          - `description` string, nullable, required
      - Access7
        - `type` 'skill_marketplace', required
        - `skill_marketplace` object, required
          - `object` 'skill.marketplace', required
          - `id` string, required
          - `status` 'active' | 'archived' | 'deleted', required
      - Access8
        - `type` 'skill_plugin', required
        - `skill_plugin` object, required
          - `object` 'skill.plugin', required
          - `id` string, required
          - `status` 'active' | 'archived' | 'deleted', required
          - `name` string, nullable, required
    - `consumer_group` ConsumerGroup, required
      - `object` 'consumer.group', required
      - `id` string, required
      - `status` 'active' | 'archived' | 'deleted', required
      - `name` string, required
      - `description` string, nullable, required
      - `is_default` boolean, required
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `pagination` object, required
    - `has_more_before` boolean, required
    - `has_more_after` boolean, required

## Other responses

- `400`: Invalid parameters or action
- `401`: Missing or invalid API key
- `403`: The key lacks permission for this resource
- `404`: No such resource
- `422`: Validation failed
- `429`: Rate limit exceeded
- `500`: Unexpected server error

---

[API](https://skmtc.dev/metorial/apis/metorial-api.md) - [All operations](https://skmtc.dev/metorial/apis/metorial-api/llms.txt) - [OpenAPI document](https://skmtc.dev/metorial/apis/metorial-api/revisions/10ccc89f3eac?raw)
