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

> ## Agent Instructions
> Forager is a REST API for B2B people, company and job post data: contact lookups (phone numbers, personal emails, work emails), person, company and job post search, and bulk data feeds.
> Server: https://api-v2.forager.ai. Send the API key in the X-API-KEY header. Most paths include {account_id}. Read FORAGER_API_KEY and FORAGER_ACCOUNT_ID from the environment; never put the key in client-side code, logs or prompts.
> To add Forager to a project, follow https://www.forager.ai/docs/guides/agent-quickstart.md. To pick an endpoint, read https://www.forager.ai/docs/guides/choose-an-endpoint.md. For end-to-end builds, see https://www.forager.ai/docs/recipes/overview.md.
> Most requests spend credits. Do not guess costs; use https://www.forager.ai/docs/api-overview/credit-pricing.md and ask the user before spending credits.
> Use only endpoints and fields defined in https://www.forager.ai/docs/openapi.yaml. Forager has no MCP server for the API yet; the /mcp endpoint on this site searches the documentation only.

# Work email feedback

> Submit valid or invalid feedback for a work email address returned by a Forager person lookup.

## When to use this endpoint

You learned whether a work email Forager returned is valid or invalid, for example from a bounce or a reply, and want to send that outcome back. Free, rate limited to 60 requests per minute per account across the three feedback endpoints.

## Example request

```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X POST "https://api-v2.forager.ai/api/$FORAGER_ACCOUNT_ID/datastorage/feedback/work_emails/" \
  -H "X-API-KEY: $FORAGER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "email": "jane.doe@acme.com",
  "contact_status": "valid",
  "is_correct_person": true,
  "person_id": 48213
}'
```

Set `FORAGER_API_KEY` and `FORAGER_ACCOUNT_ID` as in the [quickstart](https://www.forager.ai/docs/api-overview/send-your-first-request.md).

## Example response

```json 201 (illustrative values) theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "id": 311,
  "email": "jane.doe@acme.com",
  "contact_status": "valid",
  "is_correct_person": true,
  "name": "Jane Doe",
  "person_id": 48213,
  "date_created": "2026-10-20T08:15:00Z"
}
```

## Credits

This endpoint is free: it does not use credits. See [API credits and pricing](https://www.forager.ai/docs/api-overview/credit-pricing.md).


## OpenAPI

````yaml POST /api/{account_id}/datastorage/feedback/work_emails/
openapi: 3.0.3
info:
  title: Forager public API
  version: 1.0.0
  description: Forager public API endpoints documentation
servers:
  - url: https://api-v2.forager.ai
security: []
tags:
  - name: Job Posts
    description: >-
      Search the Forager job-post index. Use these endpoints to find job
      postings by attributes such as title, location, posted date, or hiring
      organization, and to retrieve aggregate totals for a given query before
      paginating through full results.
  - name: Organizations
    description: >-
      Search the Forager organization index. Filter companies by attributes such
      as industry, headcount, location, keywords, and web technologies, and
      retrieve total match counts alongside the result set.
  - name: People
    description: >-
      Look up people and their records. Use the search endpoints to find people
      by role, employer, location, or skills, and the detail-lookup endpoints to
      fetch a full person record by ID, email, or phone number. Contact data has
      its own sections: Phones, Personal Emails, and Work Emails.
  - name: Phones
    description: >-
      Retrieve phone numbers for a known person. Provide identifying information
      (such as a LinkedIn handle or Forager ID) and get back the available phone
      numbers.
  - name: Personal Emails
    description: >-
      Retrieve personal email addresses for a known person. Returns addresses on
      free webmail / consumer providers (Gmail, Outlook, Yahoo, iCloud, Proton,
      and similar); corporate, educational, and other custom domains are
      excluded to keep deliverability high.
  - name: Work Emails
    description: >-
      Find and verify a person's work email address. Submit a lookup (single or
      bulk), poll the job for its result, and optionally receive the result by
      webhook when the job completes.
  - name: Websites
    description: >-
      Look up information about a website, including the organization that owns
      it and the technologies detected on the domain.
  - name: Users
    description: >-
      Manage your Forager account. Retrieve the current authenticated user,
      create and revoke API keys used to authenticate requests to the rest of
      the API, and review the credit balance-change log that records every
      lookup charge or adjustment against your account.
  - name: Autocomplete
    description: >-
      Resolve free-text input into the canonical IDs used elsewhere in the API.
      Each endpoint returns matching options for a search term (industries,
      organizations, organization keywords, locations, person skills, web
      technologies) so they can be passed as filters to the search endpoints.
  - name: Feedback
    description: >-
      Report verification feedback for contact data (phone numbers, personal
      emails, work emails) returned by Forager person lookups. Use these
      endpoints to submit whether a contact value is valid/invalid and whether
      it belongs to the matched person — every submission is stored as a new row
      and is used to improve the accuracy of future lookups.
paths:
  /api/{account_id}/datastorage/feedback/work_emails/:
    post:
      tags:
        - Feedback
      summary: Submit work-email verification feedback
      description: >-
        Submit verification feedback for a work email address returned by a
        Forager person lookup. Required fields: `email` and `contact_status`
        (one of `valid` or `invalid`). Optional: `is_correct_person` — omit it,
        or send `null`, when the exchange never revealed whose address it is;
        `null` means "unknown" and is deliberately distinct from `false` ("this
        is the wrong person"). Also optional: `name` and `person_id`. Reports
        for the same address via both the work and personal endpoints store two
        distinct rows distinguished by email type.
      operationId: datastorage_feedback_work_emails_create
      parameters:
        - in: path
          name: account_id
          schema:
            type: integer
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailFeedbackRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/EmailFeedbackRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/EmailFeedbackRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailFeedbackResponse'
          description: ''
        '400':
          description: >-
            Validation failed. The body contained an invalid contact value (e.g.
            a phone number that cannot be parsed as E.164, or a malformed email
            address), an unrecognised `contact_status` value, or a missing
            required field.
        '403':
          description: >-
            Authentication failed. The request was missing a valid `X-API-Key`
            header, the key was for a different account, or the API key user is
            inactive.
        '429':
          description: >-
            Rate limit exceeded. Feedback endpoints share a per-account budget
            of 60 requests per minute.
      security:
        - Api-Key: []
components:
  schemas:
    EmailFeedbackRequest:
      type: object
      description: Request serializer for personal/work email verification feedback.
      properties:
        is_correct_person:
          type: boolean
          nullable: true
        name:
          type: string
          nullable: true
          maxLength: 255
        person_id:
          type: integer
          nullable: true
        email:
          type: string
          format: email
          writeOnly: true
        contact_status:
          $ref: '#/components/schemas/EmailFeedbackRequestContactStatusEnum'
      required:
        - contact_status
        - email
    EmailFeedbackResponse:
      type: object
      description: Response serializer for created personal- and work-email feedback rows.
      properties:
        id:
          type: integer
          readOnly: true
        email:
          type: string
          readOnly: true
        contact_status:
          type: string
          readOnly: true
        is_correct_person:
          type: boolean
          readOnly: true
          nullable: true
        name:
          type: string
          readOnly: true
          nullable: true
        person_id:
          type: integer
          readOnly: true
          nullable: true
        date_created:
          type: string
          format: date-time
          readOnly: true
      required:
        - contact_status
        - date_created
        - email
        - id
        - is_correct_person
        - name
        - person_id
    EmailFeedbackRequestContactStatusEnum:
      enum:
        - valid
        - invalid
      type: string
      description: |-
        * `valid` - Valid
        * `invalid` - Invalid
  securitySchemes:
    Api-Key:
      type: apiKey
      in: header
      name: X-API-KEY

````

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