> ## 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 Datadog with API Key & Application Key – StackOne Hub

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

<Warning>You need Datadog Admin or equivalent role to create API and Application keys.</Warning>

<Panel>
  <div className="not-prose guides-scope-selector" data-guides-scope-selector data-guide-actions-json="[{&#x22;id&#x22;:&#x22;datadog_list_log_indexes&#x22;,&#x22;label&#x22;:&#x22;List Log Indexes&#x22;,&#x22;scopes&#x22;:[&#x22;logs_read_config&#x22;]},{&#x22;id&#x22;:&#x22;datadog_create_log_index&#x22;,&#x22;label&#x22;:&#x22;Create Log Index&#x22;,&#x22;scopes&#x22;:[&#x22;logs_modify_indexes&#x22;]},{&#x22;id&#x22;:&#x22;datadog_search_logs&#x22;,&#x22;label&#x22;:&#x22;Search Logs&#x22;,&#x22;scopes&#x22;:[&#x22;logs_read_data&#x22;]},{&#x22;id&#x22;:&#x22;datadog_list_logs&#x22;,&#x22;label&#x22;:&#x22;List Logs&#x22;,&#x22;scopes&#x22;:[&#x22;logs_read_data&#x22;]},{&#x22;id&#x22;:&#x22;datadog_aggregate_logs&#x22;,&#x22;label&#x22;:&#x22;Aggregate Logs&#x22;,&#x22;scopes&#x22;:[&#x22;logs_read_data&#x22;]},{&#x22;id&#x22;:&#x22;datadog_list_active_metrics&#x22;,&#x22;label&#x22;:&#x22;List Active Metrics&#x22;,&#x22;scopes&#x22;:[&#x22;metrics_read&#x22;]},{&#x22;id&#x22;:&#x22;datadog_query_metrics&#x22;,&#x22;label&#x22;:&#x22;Query Metrics&#x22;,&#x22;scopes&#x22;:[&#x22;timeseries_query&#x22;]},{&#x22;id&#x22;:&#x22;datadog_get_metric_metadata&#x22;,&#x22;label&#x22;:&#x22;Get Metric Metadata&#x22;,&#x22;scopes&#x22;:[&#x22;metrics_read&#x22;]},{&#x22;id&#x22;:&#x22;datadog_get_metric_tag_configuration&#x22;,&#x22;label&#x22;:&#x22;Get Metric Tag Configuration&#x22;,&#x22;scopes&#x22;:[&#x22;metrics_read&#x22;]},{&#x22;id&#x22;:&#x22;datadog_list_tags_by_metric&#x22;,&#x22;label&#x22;:&#x22;List Tags By Metric&#x22;,&#x22;scopes&#x22;:[&#x22;metrics_read&#x22;]},{&#x22;id&#x22;:&#x22;datadog_timeseries_query&#x22;,&#x22;label&#x22;:&#x22;Timeseries Query&#x22;,&#x22;scopes&#x22;:[&#x22;timeseries_query&#x22;]},{&#x22;id&#x22;:&#x22;datadog_scalar_query&#x22;,&#x22;label&#x22;:&#x22;Scalar Query&#x22;,&#x22;scopes&#x22;:[&#x22;timeseries_query&#x22;]},{&#x22;id&#x22;:&#x22;datadog_list_monitors&#x22;,&#x22;label&#x22;:&#x22;List Monitors&#x22;,&#x22;scopes&#x22;:[&#x22;monitors_read&#x22;]},{&#x22;id&#x22;:&#x22;datadog_get_monitor&#x22;,&#x22;label&#x22;:&#x22;Get Monitor&#x22;,&#x22;scopes&#x22;:[&#x22;monitors_read&#x22;]},{&#x22;id&#x22;:&#x22;datadog_create_monitor&#x22;,&#x22;label&#x22;:&#x22;Create Monitor&#x22;,&#x22;scopes&#x22;:[&#x22;monitors_write&#x22;]},{&#x22;id&#x22;:&#x22;datadog_update_monitor&#x22;,&#x22;label&#x22;:&#x22;Update Monitor&#x22;,&#x22;scopes&#x22;:[&#x22;monitors_write&#x22;]},{&#x22;id&#x22;:&#x22;datadog_list_service_definitions&#x22;,&#x22;label&#x22;:&#x22;List Service Definitions&#x22;,&#x22;scopes&#x22;:[&#x22;apm_service_catalog_read&#x22;]},{&#x22;id&#x22;:&#x22;datadog_get_service_definition&#x22;,&#x22;label&#x22;:&#x22;Get Service Definition&#x22;,&#x22;scopes&#x22;:[&#x22;apm_service_catalog_read&#x22;]},{&#x22;id&#x22;:&#x22;datadog_create_service_definition&#x22;,&#x22;label&#x22;:&#x22;Create Service Definition&#x22;,&#x22;scopes&#x22;:[&#x22;apm_service_catalog_write&#x22;]},{&#x22;id&#x22;:&#x22;datadog_delete_service_definition&#x22;,&#x22;label&#x22;:&#x22;Delete Service Definition&#x22;,&#x22;scopes&#x22;:[&#x22;apm_service_catalog_write&#x22;]},{&#x22;id&#x22;:&#x22;datadog_list_service_dependencies&#x22;,&#x22;label&#x22;:&#x22;List Service Dependencies&#x22;,&#x22;scopes&#x22;:[&#x22;apm_read&#x22;]},{&#x22;id&#x22;:&#x22;datadog_search_spans&#x22;,&#x22;label&#x22;:&#x22;Search Spans&#x22;,&#x22;scopes&#x22;:[&#x22;apm_read&#x22;]},{&#x22;id&#x22;:&#x22;datadog_list_spans&#x22;,&#x22;label&#x22;:&#x22;List Spans&#x22;,&#x22;scopes&#x22;:[&#x22;apm_read&#x22;]},{&#x22;id&#x22;:&#x22;datadog_aggregate_spans&#x22;,&#x22;label&#x22;:&#x22;Aggregate Spans&#x22;,&#x22;scopes&#x22;:[&#x22;apm_read&#x22;]},{&#x22;id&#x22;:&#x22;datadog_list_retention_filters&#x22;,&#x22;label&#x22;:&#x22;List Retention Filters&#x22;,&#x22;scopes&#x22;:[&#x22;apm_retention_filter_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>Identify Your Datadog Site</h2>

  <p>Datadog operates across multiple regional sites. You must select the correct site that matches your organization's Datadog instance.</p>

  <Steps>
    <Step title="Determine Your Site Region">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Log in to your Datadog account for your region (for example, `https://app.datadoghq.com` for US1, or regional hosts such as `https://us3.datadoghq.com` or `https://ap1.datadoghq.com`) and check the URL in your browser to identify your site. Your browser will show either an `app.datadoghq.*` host or a regional subdomain (for example, `us3.datadoghq.com`, `us5.datadoghq.com`, `ap1.datadoghq.com`) — when connecting your account, select the corresponding `api.` host from the options below.</p>

        <ul>
          <li><strong>US1</strong> - api.datadoghq.com (most common)</li>
          <li><strong>US3</strong> - api.us3.datadoghq.com</li>
          <li><strong>US5</strong> - api.us5.datadoghq.com</li>
          <li><strong>EU</strong> - api.datadoghq.eu</li>
          <li><strong>AP1</strong> - api.ap1.datadoghq.com</li>
          <li><strong>US1-FED</strong> - api.ddog-gov.com (government)</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

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

  <p>An API key is required to authenticate all requests to the Datadog API.</p>

  <Steps>
    <Step title="Navigate to API Keys">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In your Datadog dashboard, click your avatar in the bottom-left corner and select <strong>Organization Settings</strong>. Then navigate to <strong>API Keys</strong> under the <strong>Access</strong> section.</p>
      </div>
    </Step>

    <Step title="Create a New API Key">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click the <strong>+ New Key</strong> button at the top-right.</p>

        <ul>
          <li>Enter a descriptive <strong>Name</strong> for your key (e.g., "StackOne Integration").</li>
          <li>Click <strong>Create Key</strong>.</li>
        </ul>
      </div>
    </Step>

    <Step title="Copy the API Key">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>The new API key will be displayed. Click the <strong>Copy</strong> button to copy it and store it securely for use later. You can reveal the key again later from this page if needed.</p>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Generate an Application Key</h2>

  <p>An Application key is required alongside the API key to access programmatic features. Application keys are scoped to the permissions of the user who created them.</p>

  <Steps>
    <Step title="Navigate to Application Keys">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In <strong>Organization Settings</strong>, navigate to <strong>Application Keys</strong> under the <strong>Access</strong> section.</p>
      </div>
    </Step>

    <Step title="Create a New Application Key">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click the <strong>+ New Key</strong> button at the top-right.</p>

        <ul>
          <li>Enter a descriptive <strong>Name</strong> for your key (e.g., "StackOne Integration").</li>
          <li>Click <strong>Create Key</strong>.</li>
        </ul>
      </div>
    </Step>

    <Step title="Configure scopes">
      <div data-guide-step data-guide-scopes="apm_service_catalog_read,apm_service_catalog_write,apm_read,apm_retention_filter_read,logs_read_data,logs_read_config,logs_modify_indexes,metrics_read,timeseries_query,monitors_read,monitors_write" data-guide-display-scopes-list="apm_service_catalog_read,apm_service_catalog_write,apm_read,apm_retention_filter_read,logs_read_data,logs_read_config,logs_modify_indexes,metrics_read,timeseries_query,monitors_read,monitors_write">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="apm_service_catalog_read,apm_service_catalog_write,apm_read,apm_retention_filter_read,logs_read_data,logs_read_config,logs_modify_indexes,metrics_read,timeseries_query,monitors_read,monitors_write" 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>Aggregate Logs, Aggregate Spans, Create Log Index, Create Monitor, Create Service Definition, Delete Service Definition, Get Metric Metadata, Get Metric Tag Configuration, Get Monitor, Get Service Definition, List Active Metrics, List Log Indexes, List Logs, List Monitors, List Retention Filters, List Service Definitions, List Service Dependencies, List Spans, List Tags By Metric, Query Metrics, Scalar Query, Search Logs, Search Spans, Timeseries Query, Update Monitor</span>
        </div>

        <p>When creating the Application Key, you can optionally add scopes to restrict its permissions. If no scopes are selected, the key is unscoped and inherits the full permissions of the user who created it. Enable only the scopes required for the actions you intend to use:</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="apm_service_catalog_read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy apm_service_catalog_read" title="Copy scope" data-copy="apm_service_catalog_read">
                  <span className="connector-guide-scope-copy__label">apm\_service\_catalog\_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="apm_service_catalog_write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy apm_service_catalog_write" title="Copy scope" data-copy="apm_service_catalog_write">
                  <span className="connector-guide-scope-copy__label">apm\_service\_catalog\_write</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="apm_read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy apm_read" title="Copy scope" data-copy="apm_read">
                  <span className="connector-guide-scope-copy__label">apm\_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="apm_retention_filter_read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy apm_retention_filter_read" title="Copy scope" data-copy="apm_retention_filter_read">
                  <span className="connector-guide-scope-copy__label">apm\_retention\_filter\_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="logs_read_data">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy logs_read_data" title="Copy scope" data-copy="logs_read_data">
                  <span className="connector-guide-scope-copy__label">logs\_read\_data</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="logs_read_config">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy logs_read_config" title="Copy scope" data-copy="logs_read_config">
                  <span className="connector-guide-scope-copy__label">logs\_read\_config</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="logs_modify_indexes">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy logs_modify_indexes" title="Copy scope" data-copy="logs_modify_indexes">
                  <span className="connector-guide-scope-copy__label">logs\_modify\_indexes</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="metrics_read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy metrics_read" title="Copy scope" data-copy="metrics_read">
                  <span className="connector-guide-scope-copy__label">metrics\_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="timeseries_query">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy timeseries_query" title="Copy scope" data-copy="timeseries_query">
                  <span className="connector-guide-scope-copy__label">timeseries\_query</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="monitors_read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy monitors_read" title="Copy scope" data-copy="monitors_read">
                  <span className="connector-guide-scope-copy__label">monitors\_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="monitors_write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy monitors_write" title="Copy scope" data-copy="monitors_write">
                  <span className="connector-guide-scope-copy__label">monitors\_write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </Step>

    <Step title="Copy the Application Key">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>The new Application key will be displayed. Copy it immediately and store it securely for use later. This key will not be shown again after you navigate away from this page.</p>
      </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>Datadog Site</strong></li>
        <li><strong>API Key</strong></li>
        <li><strong>Application Key</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>
