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

# Connect Twilio with API Key – StackOne Hub

> Link a Twilio account in the StackOne Hub using API Key. End-user guide to authorize the integration and start using Twilio actions.

<Warning>Ensure you have access to your Twilio Console with account owner or admin privileges.</Warning>

<Panel>
  <div className="not-prose guides-scope-selector" data-guides-scope-selector data-guide-actions-json="[{&#x22;id&#x22;:&#x22;twilio_list_messages&#x22;,&#x22;label&#x22;:&#x22;List Messages&#x22;,&#x22;scopes&#x22;:[&#x22;messaging.messages:list&#x22;]},{&#x22;id&#x22;:&#x22;twilio_get_message&#x22;,&#x22;label&#x22;:&#x22;Get Message&#x22;,&#x22;scopes&#x22;:[&#x22;messaging.messages:read&#x22;]},{&#x22;id&#x22;:&#x22;twilio_create_message&#x22;,&#x22;label&#x22;:&#x22;Create Message&#x22;,&#x22;scopes&#x22;:[&#x22;messaging.messages:create&#x22;]},{&#x22;id&#x22;:&#x22;twilio_update_message&#x22;,&#x22;label&#x22;:&#x22;Update Message&#x22;,&#x22;scopes&#x22;:[&#x22;messaging.messages:update&#x22;]},{&#x22;id&#x22;:&#x22;twilio_delete_message&#x22;,&#x22;label&#x22;:&#x22;Delete Message&#x22;,&#x22;scopes&#x22;:[&#x22;messaging.messages:delete&#x22;]},{&#x22;id&#x22;:&#x22;twilio_list_calls&#x22;,&#x22;label&#x22;:&#x22;List Calls&#x22;,&#x22;scopes&#x22;:[&#x22;voice.calls:list&#x22;]},{&#x22;id&#x22;:&#x22;twilio_create_call&#x22;,&#x22;label&#x22;:&#x22;Make Call&#x22;,&#x22;scopes&#x22;:[&#x22;voice.calls:create&#x22;]},{&#x22;id&#x22;:&#x22;twilio_get_account&#x22;,&#x22;label&#x22;:&#x22;Get Account&#x22;,&#x22;scopes&#x22;:[&#x22;iam.accounts:read&#x22;]},{&#x22;id&#x22;:&#x22;twilio_list_accounts&#x22;,&#x22;label&#x22;:&#x22;List Accounts&#x22;,&#x22;scopes&#x22;:[&#x22;iam.accounts:list&#x22;]},{&#x22;id&#x22;:&#x22;twilio_create_event_sink&#x22;,&#x22;label&#x22;:&#x22;Create Event Sink&#x22;,&#x22;scopes&#x22;:[&#x22;event-streams.sink:create&#x22;]},{&#x22;id&#x22;:&#x22;twilio_get_event_sink&#x22;,&#x22;label&#x22;:&#x22;Get Event Sink&#x22;,&#x22;scopes&#x22;:[&#x22;event-streams.sink:read&#x22;]},{&#x22;id&#x22;:&#x22;twilio_list_event_sinks&#x22;,&#x22;label&#x22;:&#x22;List Event Sinks&#x22;,&#x22;scopes&#x22;:[&#x22;event-streams.sink:list&#x22;]},{&#x22;id&#x22;:&#x22;twilio_delete_event_sink&#x22;,&#x22;label&#x22;:&#x22;Delete Event Sink&#x22;,&#x22;scopes&#x22;:[&#x22;event-streams.sink:delete&#x22;]},{&#x22;id&#x22;:&#x22;twilio_create_event_subscription&#x22;,&#x22;label&#x22;:&#x22;Create Event Subscription&#x22;,&#x22;scopes&#x22;:[&#x22;event-streams.subscription:create&#x22;]},{&#x22;id&#x22;:&#x22;twilio_get_event_subscription&#x22;,&#x22;label&#x22;:&#x22;Get Event Subscription&#x22;,&#x22;scopes&#x22;:[&#x22;event-streams.subscription:read&#x22;]},{&#x22;id&#x22;:&#x22;twilio_list_event_subscriptions&#x22;,&#x22;label&#x22;:&#x22;List Event Subscriptions&#x22;,&#x22;scopes&#x22;:[&#x22;event-streams.subscription:list&#x22;]},{&#x22;id&#x22;:&#x22;twilio_delete_event_subscription&#x22;,&#x22;label&#x22;:&#x22;Delete Event Subscription&#x22;,&#x22;scopes&#x22;:[&#x22;event-streams.subscription:delete&#x22;]},{&#x22;id&#x22;:&#x22;twilio_list_subscribed_events&#x22;,&#x22;label&#x22;:&#x22;List Subscribed Events&#x22;,&#x22;scopes&#x22;:[&#x22;event-streams.subscription.subscribed-event:list&#x22;]},{&#x22;id&#x22;:&#x22;twilio_list_event_types&#x22;,&#x22;label&#x22;:&#x22;List Event Types&#x22;,&#x22;scopes&#x22;:[&#x22;event-streams.event-type:list&#x22;]},{&#x22;id&#x22;:&#x22;twilio_get_event_type&#x22;,&#x22;label&#x22;:&#x22;Get Event Type&#x22;,&#x22;scopes&#x22;:[&#x22;event-streams.event-type:read&#x22;]}]" style={{ borderRadius: '8px', padding: '16px', marginBottom: '24px' }}>
    <div className="guides-scope-selector__title" style={{ fontSize: '16px', fontWeight: '600', marginBottom: '12px' }}>Select Actions to adjust the guide</div>
    <div className="guides-scope-selector__muted" style={{ fontSize: '13px', marginBottom: '12px' }}>Some actions may require additional configuration in the provider to be accessible. Choose the actions you need and the guide will be updated.</div>

    <div style={{ display: 'flex', gap: '8px', marginBottom: '12px', flexWrap: 'wrap' }}>
      <input type="text" placeholder="Search actions..." className="guides-scope-selector__input" data-guide-action-search style={{ padding: '8px 12px', borderRadius: '6px', fontSize: '13px', flex: 1, minWidth: '160px' }} />

      <button type="button" className="guides-scope-selector__quick-btn" data-guide-select-all style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Select all</button>
      <button type="button" className="guides-scope-selector__quick-btn" data-guide-clear style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Clear</button>
    </div>

    <div className="guides-scope-selector__list" style={{ maxHeight: '240px', overflowY: 'auto', borderRadius: '6px', marginBottom: '12px' }}>
      <div className="guides-scope-selector__list-header" style={{ display: 'flex', alignItems: 'center', gap: '10px', padding: '8px 12px', fontSize: '12px', fontWeight: '600', position: 'sticky', top: 0, zIndex: 1 }}>
        <div style={{ width: '16px', flexShrink: 0 }} />

        <div style={{ flex: 1, textAlign: 'left' }}>Action</div>
        <div style={{ minWidth: '120px', marginLeft: 'auto', textAlign: 'right' }}>Scope(s)</div>
      </div>

      <div className="guides-scope-selector__muted" data-guide-loading style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>Loading actions...</div>
      <div className="guides-scope-selector__muted" data-guide-no-results hidden style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>No actions match your search.</div>
    </div>

    <div className="guides-scope-selector__url-section" style={{ marginTop: '12px', paddingTop: '12px' }}>
      <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Dynamic Guide URL</div>

      <div style={{ display: 'flex', alignItems: 'center', gap: '8px', flexWrap: 'wrap' }}>
        <input type="text" readOnly className="guides-scope-selector__input" data-guide-url style={{ flex: 1, minWidth: '200px', padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace' }} />

        <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-url style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap', marginLeft: 'auto' }}>Copy URL</button>
      </div>

      <div style={{ marginTop: '12px' }}>
        <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Scopes Selected</div>

        <div style={{ display: 'flex', alignItems: 'stretch', gap: '8px', flexWrap: 'wrap' }}>
          <pre className="guides-scope-selector__input" role="textbox" aria-readonly="true" tabIndex={0} data-guide-scopes-output style={{ flex: 1, minWidth: '200px', minHeight: '88px', maxHeight: '120px', overflowY: 'auto', margin: 0, padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace', whiteSpace: 'pre-wrap' }} />

          <div className="guides-scope-selector__muted" style={{ display: 'flex', flexDirection: 'column', gap: '8px', fontSize: '12px', fontWeight: '500', flexShrink: 0, alignItems: 'flex-start' }}>
            <div style={{ whiteSpace: 'nowrap' }}>Separator</div>

            <select className="guides-scope-selector__input" data-guide-scope-delimiter style={{ width: '100%', padding: '6px 10px', borderRadius: '6px', fontSize: '12px' }}>
              <option value="space">Space</option>
              <option value="comma">Comma</option>
              <option value="semicolon">Semicolon</option>
              <option value="pipe">Pipe</option>
              <option value="newline">Newline</option>
            </select>

            <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-scopes style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap' }}>Copy scopes</button>
          </div>
        </div>
      </div>
    </div>
  </div>
</Panel>

<section data-guide-section data-guide-scopes="">
  <h2>Creating an API Key</h2>

  <p>To connect Twilio with StackOne using API Keys (recommended for enhanced security), you'll need to create an API Key in the Twilio Console.</p>

  <Steps>
    <Step title="Log in to Twilio Console">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Sign in to your <a href="https://www.twilio.com/console" target="_blank" rel="noopener noreferrer">Twilio Console</a>.</p>
      </div>
    </Step>

    <Step title="Navigate to API Keys">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Access the API Keys section from the Twilio Console.</p>

        <ul>
          <li>On the Console Dashboard, scroll down to the <strong>Account Info</strong> section</li>
          <li>Click <strong>Go to account settings</strong> or <strong>Go to API Keys</strong></li>
          <li>In the account settings page, select <strong>API Keys & Tokens</strong> from the left navigation bar</li>
          <li>Or navigate directly to <a href="https://www.twilio.com/console/project/api-keys" target="_blank" rel="noopener noreferrer">API Keys & Tokens</a></li>
        </ul>
      </div>
    </Step>

    <Step title="Create a New API Key">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Create a new API Key for the StackOne integration.</p>

        <ul>
          <li>Click the <strong>Create API key</strong> button</li>
          <li>Enter a <strong>Friendly name</strong> for the key (e.g., StackOne Integration)</li>
          <li>Select <strong>Main</strong> for the Key type to enable full API access. <strong>Restricted</strong> keys provide limited access as per the configured scopes. Note: Non-US regions (Ireland, Australia) only support <strong>Main</strong> key type</li>
          <li>Click <strong>Create API Key</strong></li>
        </ul>
      </div>
    </Step>

    <Step title="Configure Scopes (Restricted Keys Only)">
      <div data-guide-step data-guide-scopes="messaging.messages:read,messaging.messages:list,messaging.messages:create,messaging.messages:update,messaging.messages:delete,voice.calls:list,voice.calls:create,iam.accounts:read,iam.accounts:list,event-streams.event-type:read,event-streams.event-type:list,event-streams.sink:read,event-streams.sink:list,event-streams.sink:create,event-streams.sink:delete,event-streams.sink.test:create,event-streams.subscription:read,event-streams.subscription:list,event-streams.subscription:create,event-streams.subscription:delete,event-streams.subscription.subscribed-event:list" data-guide-display-scopes-list="messaging.messages:read,messaging.messages:list,messaging.messages:create,messaging.messages:update,messaging.messages:delete,voice.calls:list,voice.calls:create,iam.accounts:read,iam.accounts:list,event-streams.event-type:read,event-streams.event-type:list,event-streams.sink:read,event-streams.sink:list,event-streams.sink:create,event-streams.sink:delete,event-streams.sink.test:create,event-streams.subscription:read,event-streams.subscription:list,event-streams.subscription:create,event-streams.subscription:delete,event-streams.subscription.subscribed-event:list">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="messaging.messages:read,messaging.messages:list,messaging.messages:create,messaging.messages:update,messaging.messages:delete,voice.calls:list,voice.calls:create,iam.accounts:read,iam.accounts:list,event-streams.event-type:read,event-streams.event-type:list,event-streams.sink:read,event-streams.sink:list,event-streams.sink:create,event-streams.sink:delete,event-streams.sink.test:create,event-streams.subscription:read,event-streams.subscription:list,event-streams.subscription:create,event-streams.subscription:delete,event-streams.subscription.subscribed-event:list" style={{ display: 'block', width: 'fit-content', maxWidth: '100%', padding: '2px 8px', borderRadius: '8px', fontSize: '12px', marginBottom: '8px', marginTop: '-10px', whiteSpace: 'nowrap', overflowX: 'auto', overflowY: 'hidden', msOverflowStyle: 'none', scrollbarWidth: 'none' }}>
          <span>Enables actions: </span><span data-guide-actions-badge-labels>Create Event Sink, Create Event Subscription, Create Message, Delete Event Sink, Delete Event Subscription, Delete Message, Get Account, Get Event Sink, Get Event Subscription, Get Event Type, Get Message, List Accounts, List Calls, List Event Sinks, List Event Subscriptions, List Event Types, List Messages, List Subscribed Events, Make Call, Update Message</span>
        </div>

        <p>If using a <strong>Restricted</strong> API Key, enable the following scopes. Main keys have full access and do not require scope configuration. Note that Restricted keys may not support all available features. The minimum required scope to link the account is <strong>iam.accounts:list</strong>.</p>

        <div style={{ marginTop: '8px' }} data-guide-display-scopes>
          <div className="connector-guide-scopes-container connector-guide-scopes-container--scrollable">
            <ul className="not-prose" style={{ listStyleType: "'- '", paddingLeft: '1em', margin: 0 }}>
              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="messaging.messages:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy messaging.messages:read" title="Copy scope" data-copy="messaging.messages:read">
                  <span className="connector-guide-scope-copy__label">messaging.messages:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="messaging.messages:list">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy messaging.messages:list" title="Copy scope" data-copy="messaging.messages:list">
                  <span className="connector-guide-scope-copy__label">messaging.messages:list</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="messaging.messages:create">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy messaging.messages:create" title="Copy scope" data-copy="messaging.messages:create">
                  <span className="connector-guide-scope-copy__label">messaging.messages:create</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="messaging.messages:update">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy messaging.messages:update" title="Copy scope" data-copy="messaging.messages:update">
                  <span className="connector-guide-scope-copy__label">messaging.messages:update</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="messaging.messages:delete">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy messaging.messages:delete" title="Copy scope" data-copy="messaging.messages:delete">
                  <span className="connector-guide-scope-copy__label">messaging.messages:delete</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="voice.calls:list">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy voice.calls:list" title="Copy scope" data-copy="voice.calls:list">
                  <span className="connector-guide-scope-copy__label">voice.calls:list</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="voice.calls:create">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy voice.calls:create" title="Copy scope" data-copy="voice.calls:create">
                  <span className="connector-guide-scope-copy__label">voice.calls:create</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="iam.accounts:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy iam.accounts:read" title="Copy scope" data-copy="iam.accounts:read">
                  <span className="connector-guide-scope-copy__label">iam.accounts:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="iam.accounts:list">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy iam.accounts:list" title="Copy scope" data-copy="iam.accounts:list">
                  <span className="connector-guide-scope-copy__label">iam.accounts:list</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="event-streams.event-type:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy event-streams.event-type:read" title="Copy scope" data-copy="event-streams.event-type:read">
                  <span className="connector-guide-scope-copy__label">event-streams.event-type:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="event-streams.event-type:list">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy event-streams.event-type:list" title="Copy scope" data-copy="event-streams.event-type:list">
                  <span className="connector-guide-scope-copy__label">event-streams.event-type:list</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="event-streams.sink:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy event-streams.sink:read" title="Copy scope" data-copy="event-streams.sink:read">
                  <span className="connector-guide-scope-copy__label">event-streams.sink:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="event-streams.sink:list">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy event-streams.sink:list" title="Copy scope" data-copy="event-streams.sink:list">
                  <span className="connector-guide-scope-copy__label">event-streams.sink:list</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="event-streams.sink:create">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy event-streams.sink:create" title="Copy scope" data-copy="event-streams.sink:create">
                  <span className="connector-guide-scope-copy__label">event-streams.sink:create</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="event-streams.sink:delete">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy event-streams.sink:delete" title="Copy scope" data-copy="event-streams.sink:delete">
                  <span className="connector-guide-scope-copy__label">event-streams.sink:delete</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="event-streams.sink.test:create">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy event-streams.sink.test:create" title="Copy scope" data-copy="event-streams.sink.test:create">
                  <span className="connector-guide-scope-copy__label">event-streams.sink.test:create</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="event-streams.subscription:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy event-streams.subscription:read" title="Copy scope" data-copy="event-streams.subscription:read">
                  <span className="connector-guide-scope-copy__label">event-streams.subscription:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="event-streams.subscription:list">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy event-streams.subscription:list" title="Copy scope" data-copy="event-streams.subscription:list">
                  <span className="connector-guide-scope-copy__label">event-streams.subscription:list</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="event-streams.subscription:create">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy event-streams.subscription:create" title="Copy scope" data-copy="event-streams.subscription:create">
                  <span className="connector-guide-scope-copy__label">event-streams.subscription:create</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="event-streams.subscription:delete">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy event-streams.subscription:delete" title="Copy scope" data-copy="event-streams.subscription:delete">
                  <span className="connector-guide-scope-copy__label">event-streams.subscription:delete</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="event-streams.subscription.subscribed-event:list">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy event-streams.subscription.subscribed-event:list" title="Copy scope" data-copy="event-streams.subscription.subscribed-event:list">
                  <span className="connector-guide-scope-copy__label">event-streams.subscription.subscribed-event:list</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </Step>

    <Step title="Copy Your API Credentials">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Copy the API Key SID and Secret immediately.</p>

        <ul>
          <li>Copy the <strong>SID</strong> (starts with `SK`)</li>
          <li>Copy the <strong>Secret</strong> value</li>
          <li>⚠️ The Secret is only shown once - store it securely for use later</li>
          <li>Check the confirmation box and click <strong>Done</strong></li>
        </ul>
      </div>
    </Step>

    <Step title="Find Your Account SID">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>You'll also need your Account SID to authenticate API requests.</p>

        <ul>
          <li>Navigate back to the <a href="https://www.twilio.com/console" target="_blank" rel="noopener noreferrer">Console Dashboard</a></li>
          <li>Find the <strong>Account Info</strong> section</li>
          <li>Copy the <strong>Account SID</strong> (starts with `AC`)</li>
        </ul>
      </div>
    </Step>

    <Step title="Region Availability">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Not all features are available in every region. Review the availability below before selecting your region.</p>

        <ul>
          <li><strong>US1 (United States)</strong>: Full access to all features — Messages, Calls, Accounts, and Conversations</li>
          <li><strong>IE1 (Ireland)</strong>: Messages (SMS only, Beta), Calls (limited), Accounts, and Conversations (Chat channel only)</li>
          <li><strong>AU1 (Australia)</strong>: Calls (limited) and Accounts only — Messages and Conversations are not available</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<div data-whitelabel-hide>
  <h2>Linking the Account from the Hub</h2>

  <Steps>
    <Step title="Navigate to the Hub">
      Use one of the three <a href="/guides/accounts-section#linking-accounts">Linking Account Methods</a> to access the Hub.
    </Step>

    <Step title="Fill out the fields">
      Fill out the following fields using details from your provider:

      <ul>
        <li><strong>Region</strong></li>
        <li><strong>API Key SID</strong></li>
        <li><strong>API Key Secret</strong></li>
        <li><strong>Account SID</strong></li>
      </ul>
    </Step>

    <Step title="Connect">
      <ul>
        <li>Click <strong>Connect</strong></li>
        <li>If applicable, the provider will redirect you to a sign-in or authorization page. Complete the provider's authorization flow.</li>
        <li>Once authorization is successful, you will see a confirmation popup</li>
      </ul>
    </Step>
  </Steps>

  <p>If the account linking is successful, you will see the newly linked account in your <a href="/guides/accounts-section">Accounts</a> page.</p>
</div>
