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

# Get one account

> One account by its account_id. Reads only that company, so it is cheaper than a list.



## OpenAPI

````yaml /openapi.json get /accounts/{account_id}
openapi: 3.1.0
info:
  title: Letterdrop Competitor Monitoring API
  version: 2.0.0
  license:
    name: Proprietary
    url: https://letterdrop.com/terms
  description: >-
    Read your workspace's Competitor Monitoring data: the accounts where people
    engaged your competitors, the contacts and signals behind each, their CRM
    context, your outreach, and the dashboard metrics.


    The API speaks the same language as the New Competitor Deal webhook (payload
    version v2): a field has the same name and the same values in both, so
    whatever you build on one reads the other.


    **Versioning.** The major version is in the path (/api/v2). Within v2
    changes are additive only (new optional fields, filters, endpoints), so
    ignore fields you do not recognise. The v1 competitor-monitoring endpoints
    keep working unchanged.


    **Rate limits.** Per workspace: 10 requests/second and 600/minute, plus 20
    uncached computations/minute (analytics count as 4). Cached reads
    (meta.cache = hit), including every later page of a list you already
    started, use no computation budget. Every response carries RateLimit-Limit /
    RateLimit-Remaining / RateLimit-Reset; a 429 carries Retry-After.


    **Freshness.** Results are cached for a few minutes (analytics and filter
    options a little longer); meta.data_as_of says when the data was computed.
    Signals are collected daily, so polling faster than every few minutes
    returns the same data.
servers:
  - url: https://api.letterdrop.com/api/v2
security: []
tags:
  - name: Accounts
    description: Companies with competitor signals, and what we know about each.
  - name: Contacts
    description: The people behind the signals.
  - name: Analytics
    description: The dashboard metrics, one endpoint each.
  - name: Filters
    description: Every key of every object, and how to select and filter on it.
externalDocs:
  description: Developer reference
  url: https://api.letterdrop.com/api/v2/docs
paths:
  /accounts/{account_id}:
    get:
      tags:
        - Accounts
      summary: Get one account
      description: >-
        One account by its account_id. Reads only that company, so it is cheaper
        than a list.
      operationId: getAccount
      parameters:
        - name: account_id
          in: path
          required: true
          description: The account_id of an account, URL-encoded (domain%3Aacme.com).
          schema:
            type: string
        - name: include
          in: query
          required: false
          description: >-
            Comma-separated: contacts, buying_committee, job_postings,
            contact_info. Default contacts. buying_committee adds each account's
            committee (one batched read; /accounts/{account_id}/buying-committee
            for one account); job_postings adds the per-account job-postings
            rollup; contact_info adds contact_work_email and
            contact_phone_number.
          schema:
            type: string
        - name: max_contacts_per_account
          in: query
          required: false
          description: >-
            Contacts per account when include has contacts. Default 10; 0 keeps
            only account_contact_count.
          schema:
            type: integer
            minimum: 0
            maximum: 100
        - name: fields
          in: query
          required: false
          description: >-
            Comma-separated Account fields to return; omit for all. Reach into a
            list with a dot (contacts.contact_name,
            contacts.signals.signal_date). account_id and signal_id always ship.
          schema:
            type: string
            maxLength: 4000
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                  - meta
                properties:
                  data:
                    type: object
                    properties:
                      account:
                        $ref: '#/components/schemas/Account'
                  meta:
                    $ref: '#/components/schemas/Meta'
              example:
                data:
                  account:
                    account_id: domain:acme.com
                    company_name: Acme
                    company_domain: acme.com
                    company_size: 1001-5000
                    company_industry: Software Development
                    company_hq_country: US
                    company_hq_location: San Francisco, California
                    company_description: Acme makes workflow software for finance teams.
                    company_logo_url: https://cdn.letterdrop.co/logos/acme.png
                    account_competitors: HubSpot, Salesforce
                    account_competitor_cycle_stage: Early Stage
                    account_competitor_cycle_reason: >-
                      Three decision makers engaged HubSpot sales reps in the
                      last 30 days; no deal activity yet.
                    account_priority: High
                    account_icp_fit: true
                    account_icp_fit_reason: >-
                      Matches the industries and company sizes of your
                      closed-won customers.
                    account_confirmed_competitor: >-
                      HubSpot - Source:
                      https://jobs.example.com/acme/marketing-ops-manager
                    account_confirmed_project: ''
                    account_estimated_renewal_date: '2027-03-01'
                    account_optimal_outreach_date: ''
                    account_evaluating_vendors_confirmed: false
                    account_signal_freshness: Recent
                    first_signal_date: '2026-10-02'
                    first_signal_date_approximate: false
                    latest_signal_date: '2026-10-28'
                    latest_signal_summary: >-
                      Jane Doe engaged with a Vice President of Sales at
                      HubSpot.
                    crm_account_url: >-
                      https://app.hubspot.com/contacts/12345678/company/17598685516
                    crm_account_owner_name: Alex Owner
                    crm_account_owner_email: alex@example.com
                    crm_is_customer: false
                    crm_has_open_opp: true
                    crm_opp_count: 1
                    crm_latest_opp_id: '64931875364'
                    crm_latest_opp_stage: 'S1: Discover (SAO)'
                    crm_latest_opp_amount: 24000
                    crm_latest_opp_pipeline: New Business
                    crm_latest_opp_created_date: '2026-10-29'
                    crm_latest_opp_close_date: '2026-12-15'
                    crm_latest_opp_owner_name: Alex Owner
                    crm_latest_opp_owner_email: alex@example.com
                    crm_latest_opp_is_renewal: false
                    crm_custom_fields:
                      hubspot:company:Tier:
                        - A
                    outreach_status: reached_out_after_signal
                    outreach_started: true
                    outreach_any_replied: true
                    outreach_attribution: direct_reply
                    outreach_attribution_reason: >-
                      The meeting was booked after Jane replied to the Oct 24
                      outreach.
                    outreach_summary: >-
                      First touch four days after the signal; a meeting was
                      booked a week later.
                    outreach_before_signal: false
                    outreach_lead_source: outbound
                    outreach_last_date: '2026-10-24'
                    outreach_last_before_signal_date: ''
                    outreach_first_after_signal_date: '2026-10-24'
                    outreach_meeting_booked_date: '2026-10-30'
                    account_contact_count: 3
                    contacts:
                      - contact_name: Jane Doe
                        contact_job_title: VP Marketing
                        contact_linkedin_url: https://example.com/in/jane-doe
                        contact_type: Engaged Contact
                        contact_role: champion
                        contact_bucket: strong
                        contact_buying_committee_role: business_evaluator
                        contact_first_signal_date: '2026-10-02'
                        contact_latest_signal_date: '2026-10-28'
                        signal_freshness: Recent
                        recommended_channels: Email + Call
                        recommended_email: true
                        recommended_linkedin: false
                        recommended_call: true
                        outreach_contacted: true
                        outreach_replied: false
                        outreach_contacted_by_name: Alex Owner
                        outreach_contacted_by_email: alex@example.com
                        signals:
                          - signal_id: 6aa5558899db31a0da3c9465
                            signal_summary: Engaged with a Vice President of Sales at HubSpot
                            signal_post_url: https://example.com/posts/7392000000000000000
                            signal_freshness: Recent
                            signal_date: '2026-10-28'
                            signal_collected_date: '2026-10-28'
                            competitor_name: HubSpot
                            competitor_rep_title: Vice President of Sales
                          - signal_id: 6aa5558899db31a0da3c9411
                            signal_summary: Engaged with an Account Executive at HubSpot
                            signal_post_url: ''
                            signal_freshness: Recent
                            signal_date: '2026-10-02'
                            signal_collected_date: '2026-10-02'
                            competitor_name: HubSpot
                            competitor_rep_title: Account Executive
                meta:
                  api_version: '2'
                  data_as_of: '2026-11-02T09:36:28.016Z'
                  cache: hit
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/Unprocessable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/ServerError'
      security:
        - WorkspaceKey: []
        - BearerAuth:
            - mcp.read
components:
  schemas:
    Account:
      type: object
      description: >-
        A company where people engaged your competitors: one row of the
        Competitor Monitoring table.
      x-field-groups:
        - Account
        - Company
        - Contact
        - Signal
        - CRM
        - Outreach
      properties:
        account_id:
          type: string
          description: >-
            Stable id of the account, e.g. "domain:acme.com". Use it in
            /accounts/{account_id} paths (URL-encoded).
          x-group: Account
        company_name:
          type: string
          description: Company name.
          x-group: Company
        company_domain:
          type: string
          description: Website domain.
          x-group: Company
        company_size:
          type: string
          description: Employee band, e.g. "1001-5000".
          x-group: Company
        company_industry:
          type: string
          description: Industry.
          x-group: Company
        company_hq_country:
          type: string
          description: Headquarters country, ISO 3166-1 alpha-2 (e.g. "US").
          x-group: Company
        company_hq_location:
          type: string
          description: Headquarters location as listed, e.g. "San Francisco, California".
          x-group: Company
        company_description:
          type: string
          description: Company description.
          x-group: Company
        company_logo_url:
          type: string
          description: Logo image URL.
          x-group: Company
        account_competitors:
          type: string
          description: >-
            Every competitor with signals at this account, comma-joined ("Common
            Room, G2"), as the webhook sends it.
          x-group: Account
        account_competitor_cycle_stage:
          type: string
          x-values:
            - Aware of Competitor
            - Historical
            - Prospecting
            - Early Stage
            - Late Stage
          description: >-
            Where we infer the account is in a buying cycle with a competitor.
            An inference from signals, not CRM data.
          x-group: Account
        account_competitor_cycle_reason:
          type: string
          description: Why we inferred that stage.
          x-group: Account
        account_priority:
          type: string
          x-values:
            - High
            - Medium
            - Nurture
          description: >-
            How soon to act, as the Competitor Monitoring table shows it. The
            webhook sends this as signal_priority.
          x-group: Account
        account_icp_fit:
          type: boolean
          description: The account matches your ideal customer profile.
          x-group: Account
        account_icp_fit_reason:
          type: string
          description: Why it fits. Empty when account_icp_fit is false.
          x-group: Account
        account_confirmed_competitor:
          type: string
          description: >-
            A competitor the account's own job posts or filings say it uses,
            with the source: "<name> - Source: <url>". Empty when none.
          x-group: Account
        account_confirmed_project:
          type: string
          description: >-
            A project in the account's job posts or filings that what you sell
            would help: "<summary> - Source: <url>". Empty when none.
          x-group: Account
        account_estimated_renewal_date:
          type: string
          x-format: YYYY-MM-DD, or empty
          description: >-
            Estimated renewal date of the competitor contract. Empty when
            unknown.
          x-group: Account
        account_optimal_outreach_date:
          type: string
          x-format: YYYY-MM-DD, or empty
          description: Suggested date to reach out. Empty when unknown.
          x-group: Account
        account_signal_freshness:
          type: string
          x-values:
            - Recent
            - Historic
            - Stale
          description: >-
            Stale when the account's signals aged past your sales cycle,
            Historic when every signal is Historic, Recent otherwise.
          x-group: Signal
        first_signal_date:
          type: string
          x-format: YYYY-MM-DD, or empty
          description: The account's first dated signal.
          x-group: Signal
        first_signal_date_approximate:
          type: boolean
          description: first_signal_date was inferred from a scan rather than observed.
          x-group: Signal
        latest_signal_date:
          type: string
          x-format: YYYY-MM-DD, or empty
          description: The account's latest dated signal.
          x-group: Signal
        latest_signal_summary:
          type: string
          description: >-
            The latest signal in one sentence, e.g. "Jane Doe engaged with a VP
            of Sales at HubSpot."
          x-group: Signal
        account_evaluating_vendors_confirmed:
          type: boolean
          description: Someone on your team confirmed the account is evaluating vendors.
          x-group: Account
        account_contact_count:
          type: integer
          description: >-
            Engaged contacts at the account (contacts may be capped by
            max_contacts_per_account).
          x-group: Account
        crm_account_url:
          type: string
          description: >-
            Link to the account's own CRM record. Empty when it is not in your
            CRM.
          x-group: CRM
        crm_account_owner_name:
          type: string
          description: CRM account owner.
          x-group: CRM
        crm_account_owner_email:
          type: string
          description: Their email.
          x-group: CRM
        crm_is_customer:
          type: boolean
          description: The account is your customer now.
          x-group: CRM
        crm_has_open_opp:
          type:
            - boolean
            - 'null'
          description: >-
            The latest opportunity is open. Null when the latest is closed and
            an older one might be open.
          x-group: CRM
        crm_opp_count:
          type: integer
          description: Opportunities on the account.
          x-group: CRM
        crm_latest_opp_id:
          type: string
          description: CRM id of the latest opportunity.
          x-group: CRM
        crm_latest_opp_stage:
          type: string
          description: 'Its stage as your CRM labels it, e.g. "S1: Discover (SAO)".'
          x-group: CRM
        crm_latest_opp_amount:
          type:
            - number
            - 'null'
          description: Its amount.
          x-group: CRM
        crm_latest_opp_pipeline:
          type: string
          description: Its pipeline.
          x-group: CRM
        crm_latest_opp_created_date:
          type: string
          x-format: YYYY-MM-DD, or empty
          description: When it was created.
          x-group: CRM
        crm_latest_opp_close_date:
          type: string
          x-format: YYYY-MM-DD, or empty
          description: Its close date (expected close while open).
          x-group: CRM
        crm_latest_opp_owner_name:
          type: string
          description: Its owner.
          x-group: CRM
        crm_latest_opp_owner_email:
          type: string
          description: Their email.
          x-group: CRM
        crm_latest_opp_is_renewal:
          type: boolean
          description: It is a renewal, so not new pipeline even while open.
          x-group: CRM
        crm_custom_fields:
          type: object
          additionalProperties: true
          description: >-
            The CRM columns you added to the table, keyed
            "<crm>:<object>:<field>" (e.g. "hubspot:company:Tier"), each a list
            of values.
          x-group: CRM
        outreach_status:
          type: string
          x-values:
            - opportunity_created
            - replied
            - reached_out
          description: >-
            Where outreach to the account stands. *_after_signal values count
            only outreach after the first signal.
          x-group: Outreach
        outreach_started:
          type: boolean
          description: Anyone at the account has been contacted (CRM).
          x-group: Outreach
        outreach_any_replied:
          type: boolean
          description: Anyone at the account replied (CRM).
          x-group: Outreach
        outreach_attribution:
          type: string
          x-values:
            - direct_reply
            - driven
            - assisted
            - detected
            - competitive_deal
            - pending_analysis
            - none
          description: >-
            Our verdict on whether the signal led to the meeting or deal. Empty
            when we make no claim.
          x-group: Outreach
        outreach_attribution_reason:
          type: string
          description: Why we reached that verdict.
          x-group: Outreach
        outreach_summary:
          type: string
          description: A short summary of the CRM outreach.
          x-group: Outreach
        outreach_before_signal:
          type:
            - boolean
            - 'null'
          description: >-
            Your team reached out in the 30 days before the first signal. Null
            when that window was not observed, which is not the same as no
            outreach.
          x-group: Outreach
        outreach_lead_source:
          type: string
          description: Lead source category (outbound, inbound, …).
          x-group: Outreach
        outreach_last_date:
          type: string
          x-format: YYYY-MM-DD, or empty
          description: Latest outreach.
          x-group: Outreach
        outreach_last_before_signal_date:
          type: string
          x-format: YYYY-MM-DD, or empty
          description: Latest outreach before the first signal.
          x-group: Outreach
        outreach_first_after_signal_date:
          type: string
          x-format: YYYY-MM-DD, or empty
          description: First outreach after the first signal.
          x-group: Outreach
        outreach_meeting_booked_date:
          type: string
          x-format: YYYY-MM-DD, or empty
          description: When a meeting was booked.
          x-group: Outreach
        contacts:
          type: array
          items:
            $ref: '#/components/schemas/Contact'
          description: >-
            Engaged contacts, best first. Present with include=contacts (the
            default).
          x-group: Contact
        buying_committee:
          type: array
          items:
            $ref: '#/components/schemas/Contact'
          description: >-
            Decision-makers at the account who did NOT engage a competitor. Only
            with include=buying_committee.
          x-group: Contact
        job_postings:
          allOf:
            - $ref: '#/components/schemas/JobPostingsRollup'
          description: >-
            What the account's job postings say. Only with include=job_postings;
            the postings themselves are at /accounts/{account_id}/job-postings.
          x-group: Company
    Meta:
      type: object
      required:
        - api_version
        - data_as_of
        - cache
      properties:
        api_version:
          type: string
          const: '2'
        data_as_of:
          type: string
          format: date-time
          description: >-
            When the data in this response was computed. Responses are cached
            for a few minutes; this tells you how fresh they are.
        cache:
          type: string
          enum:
            - hit
            - miss
            - shared
            - 'off'
          description: >-
            hit = served from cache; miss = computed for this request; shared =
            joined a computation already running for the same query.
    Contact:
      type: object
      description: >-
        A person at an account: someone who engaged a competitor (Engaged
        Contact), or a decision-maker who did not (Buying Committee).
      x-field-groups:
        - Contact
        - Signal
        - Outreach
        - Recommended
      properties:
        contact_name:
          type: string
          description: Full name.
          x-group: Contact
        contact_job_title:
          type: string
          description: Current job title.
          x-group: Contact
        contact_linkedin_url:
          type: string
          description: Social profile URL.
          x-group: Contact
        contact_work_email:
          type: string
          description: >-
            Work email this workspace already enriched. Only with
            include=contact_info; empty means not enriched yet.
          x-group: Contact
        contact_phone_number:
          type: string
          description: >-
            Phone this workspace already enriched. Only with
            include=contact_info.
          x-group: Contact
        contact_type:
          type: string
          x-values:
            - Engaged Contact
            - Buying Committee
          description: >-
            Engaged Contact: this person produced signals. Buying Committee: a
            decision-maker at the account who has NOT engaged a competitor.
          x-group: Contact
        contact_role:
          type:
            - string
            - 'null'
          description: >-
            Role in a purchase (e.g. champion, decision_maker). Null when not
            classified.
          x-group: Contact
        contact_bucket:
          type:
            - string
            - 'null'
          description: >-
            How strong a fit the person is (strong, potential, weak). Null when
            not classified.
          x-group: Contact
        contact_buying_committee_role:
          type: string
          description: >-
            Seniority classification of the person (e.g. business_evaluator).
            Not committee membership.
          x-group: Contact
        contact_first_signal_date:
          type: string
          x-format: YYYY-MM-DD, or empty
          description: >-
            This person's first dated signal. Empty when all their signals are
            Historic.
          x-group: Signal
        contact_latest_signal_date:
          type: string
          x-format: YYYY-MM-DD, or empty
          description: >-
            This person's latest dated signal. Empty when all their signals are
            Historic.
          x-group: Signal
        signal_freshness:
          type: string
          x-values:
            - Recent
            - Historic
            - Stale
          description: Freshness of this person's latest signal.
          x-group: Signal
        recommended_channels:
          type: string
          description: >-
            The recommended outreach as one label, e.g. "Email + Call". Empty
            when there is no recommendation.
          x-group: Recommended
        recommended_email:
          type: boolean
          description: Email is recommended.
          x-group: Recommended
        recommended_linkedin:
          type: boolean
          description: Social outreach is recommended.
          x-group: Recommended
        recommended_call:
          type: boolean
          description: A call is recommended.
          x-group: Recommended
        outreach_contacted:
          type: boolean
          description: Your team has reached out to this person (CRM).
          x-group: Outreach
        outreach_replied:
          type: boolean
          description: This person replied (CRM).
          x-group: Outreach
        outreach_contacted_by_name:
          type: string
          description: Who on your team reached out.
          x-group: Outreach
        outreach_contacted_by_email:
          type: string
          description: Their email.
          x-group: Outreach
        signals:
          type: array
          items:
            $ref: '#/components/schemas/Signal'
          description: >-
            This person's signals, newest first. Empty for a Buying Committee
            member.
          x-group: Signal
    JobPostingsRollup:
      type: object
      description: >-
        An account's job postings in summary, as /accounts carries it with
        include=job_postings.
      x-field-groups:
        - Company
        - Competitor
      properties:
        job_postings_status:
          type: string
          description: complete, or pending while postings are still being read.
          x-group: Company
        job_postings_count:
          type: integer
          description: Postings read.
          x-group: Company
        job_postings_latest_date:
          type: string
          x-format: YYYY-MM-DD, or empty
          description: Newest posting.
          x-group: Company
        competitors_mentioned:
          type: array
          items:
            type: string
          description: Competitors named across the postings.
          x-group: Competitor
        systems_in_use:
          type: array
          items:
            type: string
          description: Software named across the postings.
          x-group: Company
        initiatives:
          type: array
          items:
            type: string
          description: Projects relevant to what you sell.
          x-group: Company
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              enum:
                - invalid_request
                - invalid_json
                - invalid_cursor
                - cursor_expired
                - unauthorized
                - forbidden
                - account_not_found
                - not_found
                - rate_limited
                - internal_error
            message:
              type: string
            details:
              type: array
              items:
                type: object
                properties:
                  path:
                    type: string
                  message:
                    type: string
              description: 'For invalid_request: one entry per parameter that failed.'
    Signal:
      type: object
      description: One interaction between a contact and a competitor's employee.
      x-field-groups:
        - Signal
        - Competitor
      properties:
        signal_id:
          type: string
          description: Stable id of this signal. The webhook sends the same id.
          x-group: Signal
        signal_summary:
          type: string
          description: >-
            One sentence: who did what with whom, e.g. "Engaged with a VP of
            Sales at HubSpot".
          x-group: Signal
        signal_post_url:
          type: string
          description: The post the interaction was on, when there is one. Empty otherwise.
          x-group: Signal
        signal_freshness:
          type: string
          x-values:
            - Recent
            - Historic
            - Stale
          description: >-
            Recent: observed since monitoring began. Historic: a relationship
            that existed before monitoring began. Stale: the account's signals
            have aged past your sales cycle.
          x-group: Signal
        signal_date:
          type: string
          x-format: YYYY-MM-DD, or empty
          description: >-
            When the signal happened. Empty for a Historic signal, whose real
            date is unknown.
          x-group: Signal
        signal_collected_date:
          type: string
          x-format: YYYY-MM-DD, or empty
          description: >-
            When Letterdrop recorded the signal. For a Historic signal this is
            the only date there is.
          x-group: Signal
        competitor_name:
          type: string
          description: The competitor the signal involves.
          x-group: Competitor
        competitor_rep_title:
          type: string
          description: >-
            Job title of the competitor's employee in the signal. Names are not
            published.
          x-group: Competitor
  responses:
    Unauthorized:
      description: Missing or invalid credential.
      x-status: 401
      x-codes:
        - unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: The credential lacks the mcp.read scope.
      x-status: 403
      x-codes:
        - forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: No such account in this workspace, or no such route.
      x-status: 404
      x-codes:
        - account_not_found
        - not_found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unprocessable:
      description: A parameter failed validation; details lists each one.
      x-status: 422
      x-codes:
        - invalid_request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: Rate limited; wait Retry-After seconds.
      x-status: 429
      x-codes:
        - rate_limited
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      headers:
        Retry-After:
          schema:
            type: integer
          description: Seconds to wait.
    ServerError:
      description: Our fault; retry, and contact support if it persists.
      x-status: 500
      x-codes:
        - internal_error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    WorkspaceKey:
      type: apiKey
      in: header
      name: api-key
    BearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.