Ometria Field forget (email / phone erasure) API

The Field forget (email / phone erasure) API from Ometria — 3 operation(s) for field forget (email / phone erasure).

Operations 4

GET /field-forget List field forget requests #
POST /field-forget Create new field forget request #
POST /field-forget/bulk Create up to 100 field forget requests in one call #
GET /field-forget/{id} Get details of specific field forget request #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ometria:ometria-field-forget-email-phone-erasure-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ometria-field-forget-email-phone-erasure-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.1.0
  title: Ometria data Field forget (email / phone erasure) API
  description: 'Welcome to the Ometria API reference.


    The Ometria API is organized around the REST methodology, and it uses resource-oriented URLs, and common HTTP response codes to indicate API errors. All requests are authenticated using an API key which can be obtained from your account settings.


    ### HTTPS


    All requests to the Ometria API MUST be carried out via HTTPS. API servers do not listen on unsecured HTTP ports to avoid the possibility of insecure information exchange.


    ### Message encoding


    The V2 Ometria API uses JSON encoding for all data exchanges and assumes UTF-8 character encoding throughout.


    ### Rate limits


    The Ometria API has a default rate limit of 4 requests per second per Ometria account. The /push/ endpoint allows 8 requests per second per Ometria account. If you expect to exceed this limit, please contact us.


    In the case of your application being rate limited, the HTTP code 429 (too many requests) will be returned. In this case your application should reduce the number of requests it is trying to send.'
  contact:
    name: Ometria
    email: support@ometria.com
    url: https://ometria.com
servers:
- url: https://api.ometria.com/v2
security:
- apikey: []
tags:
- name: Field forget (email / phone erasure)
paths:
  /field-forget:
    get:
      tags:
      - Field forget (email / phone erasure)
      summary: List field forget requests
      description: 'Returns previously filed field forget requests for your account and their status, newest first (by `timestamp_created`). Requests made from the Ometria app are included, with `source.origin` set to `app`.


        Page with `limit` and `offset`; `total_count` is the number of requests for the account.'
      parameters:
      - name: limit
        in: query
        description: The number of records to fetch. Maximum 500; larger values are capped to 500.
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 500
          default: 100
      - name: offset
        in: query
        description: Index of first record to fetch.
        required: false
        schema:
          type: integer
          minimum: 0
          default: 0
      responses:
        '200':
          description: A page of field forget request objects.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FieldForgetRequestPage'
              example:
                requests:
                - id: 6f1c2a0e-3b7d-4c8a-9e21-5d0f7b8a4c13
                  profile_hash: 27f4-f0b281-00003039
                  status: pending
                  fields:
                  - email
                  source:
                    origin: api
                    api_request_id: 0b7d9c2e-4f61-4e0a-8c3d-2a9e5f7b1d64
                  timestamp_created: '2026-09-07T10:18:12.833949+00:00'
                  timestamp_completed: null
                - id: 2c7e9f1a-5b3d-4e8c-9a1f-6d4b2e8c0a35
                  profile_hash: 27f4-26e69b-0000007b
                  status: completed
                  fields:
                  - phone
                  source:
                    origin: app
                    api_request_id: null
                  timestamp_created: '2026-09-06T16:02:41.512087+00:00'
                  timestamp_completed: '2026-09-06T16:02:43.077120+00:00'
                offset: 0
                page_size: 2
                total_count: 2
        '403':
          description: API key is not authorised to access this resource.
      operationId: getFieldForget
      x-operation-id-source: derived
    post:
      tags:
      - Field forget (email / phone erasure)
      summary: Create new field forget request
      description: 'Erase a profile''s `email` and/or `phone` while keeping the rest of the profile. For each requested field, Ometria clears the value on the profile. Nothing prevents the same value being added back to this profile later either.


        `profile_hash` is the `id` of a profile, as returned by `GET /profiles/`.


        Requests are processed asynchronously. A `202` means the request was accepted and queued; poll `GET /field-forget/{id}` until `status` is terminal. A request identical to one that is still `pending` or `in_progress` and less than 24 hours old returns the existing request''s `id` (still `202`) rather than creating a new one, so retries are safe. Once a request has reached a terminal status, a new request for the same profile and fields is accepted again.'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FieldForgetSubmission'
            examples:
              single_field:
                summary: Forget the email address only
                value:
                  profile_hash: 27f4-f0b281-00003039
                  fields:
                  - email
              both_fields:
                summary: Forget both the email address and the phone number
                value:
                  profile_hash: 27f4-f0b281-00003039
                  fields:
                  - email
                  - phone
        description: 'Provide the `profile_hash` of the profile and the `fields` to erase: `email`, `phone`, or both.'
        required: true
      responses:
        '202':
          description: Field forget request accepted and queued for processing.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FieldForgetPostResponse'
        '400':
          description: Invalid payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FieldForgetErrorMessage'
              examples:
                fields_missing_or_empty:
                  summary: '`fields` missing, empty or not a list'
                  value:
                    message: fields must be a non-empty list
                    status: 400
                    title: Bad Request
                fields_unsupported:
                  summary: '`fields` contains an unsupported value'
                  value:
                    message: fields must be a subset of email, phone
                    status: 400
                    title: Bad Request
                profile_hash_malformed:
                  summary: '`profile_hash` missing, not lowercase, or not a valid profile hash'
                  value:
                    message: profile_hash is malformed
                    status: 400
                    title: Bad Request
        '403':
          description: API key is not authorised to access this resource.
        '404':
          description: Profile not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FieldForgetErrorMessage'
              example:
                message: Profile doesn't exist
                status: 404
                title: Resource Not Found
      operationId: postFieldForget
      x-operation-id-source: derived
  /field-forget/bulk:
    post:
      tags:
      - Field forget (email / phone erasure)
      summary: Create up to 100 field forget requests in one call
      description: 'Submit up to 100 field forget requests in a single call. Each item is judged and processed independently: a malformed item is rejected without blocking its siblings, and an item identical to a request still `pending` or `in_progress` and less than 24 hours old is reported as `duplicate` and returns that existing request''s `id`, rather than creating a new one.


        This always returns `202`, even when every item was rejected, so check each item''s `result` field rather than the HTTP status. For each accepted or duplicate item, poll `GET /field-forget/{id}` with its `id` to find out how the request completed.'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FieldForgetBulkSubmission'
            example:
              requests:
              - profile_hash: 27f4-f0b281-00003039
                fields:
                - email
              - profile_hash: 27f4-26e69b-0000007b
                fields:
                - email
                - phone
        description: '`requests`: a non-empty list, capped at 100, of the same `profile_hash`/`fields` objects `POST /field-forget` accepts.'
        required: true
      responses:
        '202':
          description: Returns one result per submitted item.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FieldForgetBulkResponse'
              example:
                request_id: 0b7d9c2e-4f61-4e0a-8c3d-2a9e5f7b1d64
                accepted: 1
                duplicate: 1
                rejected: 1
                results:
                - index: 0
                  profile_hash: 27f4-f0b281-00003039
                  result: accepted
                  id: 6f1c2a0e-3b7d-4c8a-9e21-5d0f7b8a4c13
                - index: 1
                  profile_hash: 27f4-26e69b-0000007b
                  result: duplicate
                  id: 2c7e9f1a-5b3d-4e8c-9a1f-6d4b2e8c0a35
                - index: 2
                  profile_hash: null
                  result: rejected
                  id: null
                  message: profile_hash is malformed
        '400':
          description: 'The envelope itself is invalid: not an object, `requests` missing, empty, not a list, or over the 100-item cap. Malformed individual items are reported per-item in the `202` response instead.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FieldForgetErrorMessage'
              examples:
                requests_missing_or_empty:
                  summary: '`requests` missing, empty or not a list'
                  value:
                    message: requests must be a non-empty list
                    status: 400
                    title: Bad Request
                requests_over_cap:
                  summary: '`requests` has more than 100 items'
                  value:
                    message: requests must not exceed 100 items
                    status: 400
                    title: Bad Request
        '403':
          description: API key is not authorised to access this resource.
      operationId: postFieldForgetBulk
      x-operation-id-source: derived
  /field-forget/{id}:
    get:
      tags:
      - Field forget (email / phone erasure)
      summary: Get details of specific field forget request
      description: Returns details and status of a field forget request by its ID. Poll this endpoint after `POST /field-forget` until `status` is one of `completed`, `aborted_sole_identifier`, `not_found` or `failed`.
      parameters:
      - name: id
        in: path
        description: The request ID returned by `POST /field-forget`.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: A field forget request object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FieldForgetRequest'
              examples:
                pending:
                  summary: Accepted, waiting to be processed
                  value:
                    id: 6f1c2a0e-3b7d-4c8a-9e21-5d0f7b8a4c13
                    profile_hash: 27f4-f0b281-00003039
                    status: pending
                    fields:
                    - email
                    source:
                      origin: api
                      api_request_id: 0b7d9c2e-4f61-4e0a-8c3d-2a9e5f7b1d64
                    timestamp_created: '2026-09-07T10:18:12.833949+00:00'
                    timestamp_completed: null
                completed:
                  summary: Field(s) erased
                  value:
                    id: 6f1c2a0e-3b7d-4c8a-9e21-5d0f7b8a4c13
                    profile_hash: 27f4-f0b281-00003039
                    status: completed
                    fields:
                    - email
                    source:
                      origin: api
                      api_request_id: 0b7d9c2e-4f61-4e0a-8c3d-2a9e5f7b1d64
                    timestamp_created: '2026-09-07T10:18:12.833949+00:00'
                    timestamp_completed: '2026-09-07T10:18:14.102331+00:00'
                aborted_sole_identifier:
                  summary: 'Refused: no other matchable identifier would remain'
                  value:
                    id: b3e8f1d2-7c4a-4a9e-8d5f-1e2c3b4a5d6e
                    profile_hash: 27f4-26e69b-0000007b
                    status: aborted_sole_identifier
                    fields:
                    - email
                    - phone
                    source:
                      origin: api
                      api_request_id: 5e9a1c3f-2d7b-4f60-a8e4-9c1b3d5f7a20
                    timestamp_created: '2026-09-07T09:40:03.221904+00:00'
                    timestamp_completed: '2026-09-07T09:40:04.006512+00:00'
                not_found:
                  summary: Profile did not exist when processed
                  value:
                    id: 9a2d4c6e-1f3b-4d5a-b7c8-0e1f2a3b4c5d
                    profile_hash: 27f4-8337f0-002384af
                    status: not_found
                    fields:
                    - phone
                    source:
                      origin: api
                      api_request_id: 7f3b9d1e-6a2c-4e8f-b0d5-3c7a9e1f5b82
                    timestamp_created: '2026-09-07T08:15:27.480013+00:00'
                    timestamp_completed: '2026-09-07T08:15:28.115760+00:00'
                failed:
                  summary: Processing error; resubmit to retry
                  value:
                    id: d4c3b2a1-0f9e-4d8c-b7a6-5e4f3d2c1b0a
                    profile_hash: 27f4-f0b281-00003039
                    status: failed
                    fields:
                    - email
                    source:
                      origin: api
                      api_request_id: 1c5e7a9b-3d2f-4b6c-8e0a-4f6d8b2c9e17
                    timestamp_created: '2026-09-06T22:03:11.905228+00:00'
                    timestamp_completed: '2026-09-06T22:03:13.372641+00:00'
        '400':
          description: The request ID is not a valid UUID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FieldForgetErrorMessage'
              example:
                message: Field forget request ID is invalid
                status: 400
                title: Bad Request
        '403':
          description: API key is not authorised to access this resource.
        '404':
          description: Field forget request with specified ID was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FieldForgetErrorMessage'
              example:
                message: Field forget request doesn't exist
                status: 404
                title: Resource Not Found
      operationId: getFieldForgetById
      x-operation-id-source: derived
components:
  schemas:
    FieldForgetBulkResponse:
      type: object
      description: 'The outcome of a bulk field forget submission: one result per submitted item, plus counts by outcome.'
      properties:
        request_id:
          type: string
          description: Identifies this `POST /field-forget/bulk` call. If you sent an `X-Request-ID` header on the call, this is its value, so you can correlate it with your own logs; otherwise Ometria generates one.
        accepted:
          type: integer
          description: Number of items that created a new request.
        duplicate:
          type: integer
          description: Number of items that matched a request already `pending` or `in_progress` and less than 24 hours old.
        rejected:
          type: integer
          description: Number of items that failed validation and created no request.
        results:
          type: array
          description: One entry per submitted item, in the same order as submitted.
          items:
            $ref: '#/components/schemas/FieldForgetBulkResult'
      example:
        request_id: 0b7d9c2e-4f61-4e0a-8c3d-2a9e5f7b1d64
        accepted: 1
        duplicate: 1
        rejected: 1
        results:
        - index: 0
          profile_hash: 27f4-f0b281-00003039
          result: accepted
          id: 6f1c2a0e-3b7d-4c8a-9e21-5d0f7b8a4c13
        - index: 1
          profile_hash: 27f4-26e69b-0000007b
          result: duplicate
          id: 2c7e9f1a-5b3d-4e8c-9a1f-6d4b2e8c0a35
        - index: 2
          profile_hash: null
          result: rejected
          id: null
          message: profile_hash is malformed
    FieldForgetRequestPage:
      type: object
      description: A page of field forget requests.
      properties:
        requests:
          type: array
          description: The list of paginated objects.
          items:
            $ref: '#/components/schemas/FieldForgetRequest'
        offset:
          type: integer
          description: The offset value applied for pagination.
          example: 0
        page_size:
          type: integer
          description: The actual number of objects in the current page.
          example: 2
        total_count:
          type: integer
          description: The total number of field forget requests for the account.
          example: 2
    FieldForgetRequest:
      type: object
      description: Describes a field forget request and its status
      properties:
        id:
          type: string
          description: The request ID
        profile_hash:
          type: string
          description: The profile hash of the profile the request was filed for (eg 27f4-f0b281-00003039).
        status:
          type: string
          description: 'Current state of the request. `pending`: accepted and queued. `in_progress`: being processed. Terminal states: `completed` (the requested fields were erased), `aborted_sole_identifier` (refused and nothing changed, because erasing the fields would have left the profile with no other identifier Ometria can match on), `not_found` (the profile did not exist when processed), `failed` (an error occurred; resubmit to retry).'
          enum:
          - pending
          - in_progress
          - completed
          - aborted_sole_identifier
          - failed
          - not_found
        fields:
          type: array
          description: The fields requested, sorted alphabetically and deduplicated.
          items:
            type: string
            description: A field that can be forgotten. This list is the set supported by the service and is kept in sync via the service's own spec test.
            enum:
            - email
            - phone
        source:
          type: object
          description: Where the request originated.
          properties:
            origin:
              type: string
              description: '`api` for requests filed through this API, `app` for requests filed from the Ometria app.'
              enum:
              - app
              - api
            api_request_id:
              type:
              - string
              - 'null'
              description: Identifies the `POST /field-forget` call that filed this request. If you sent an `X-Request-ID` header on that call, this is its value, so you can correlate the request with your own logs; otherwise Ometria generates one. `null` for requests filed from the Ometria app.
        timestamp_created:
          type: string
          description: Date and time of request being filed. Following ISO 8601 dateTime format with timezone offset _YYYY-MM-DDThh:mm:ss+Z_.
          format: date-time
        timestamp_completed:
          type:
          - string
          - 'null'
          description: Date and time of request reaching a terminal status. Following ISO 8601 dateTime format with timezone offset _YYYY-MM-DDThh:mm:ss+Z_. `null` while the request is `pending` or `in_progress`.
          format: date-time
      example:
        id: 6f1c2a0e-3b7d-4c8a-9e21-5d0f7b8a4c13
        profile_hash: 27f4-f0b281-00003039
        status: completed
        fields:
        - email
        source:
          origin: api
          api_request_id: 0b7d9c2e-4f61-4e0a-8c3d-2a9e5f7b1d64
        timestamp_created: '2026-09-07T10:18:12.833949+00:00'
        timestamp_completed: '2026-09-07T10:18:14.102331+00:00'
    FieldForgetSubmission:
      type: object
      description: Field forget request submission. Identifies one profile by its `profile_hash` and names the field(s) to erase.
      required:
      - profile_hash
      - fields
      properties:
        profile_hash:
          type: string
          description: The profile hash of the profile to act on, as returned by `GET /profiles/`.
          pattern: ^[0-9a-f]+-[0-9a-f]{6}-[0-9a-f]{8,}$
          example: 27f4-f0b281-00003039
        fields:
          type: array
          description: 'The field(s) to erase: `email`, `phone`, or both. Order does not matter and duplicates are ignored; the request is stored and returned with the fields sorted alphabetically.'
          minItems: 1
          items:
            type: string
            description: A field that can be forgotten. This list is the set supported by the service and is kept in sync via the service's own spec test.
            enum:
            - email
            - phone
      example:
        profile_hash: 27f4-f0b281-00003039
        fields:
        - email
    FieldForgetBulkResult:
      type: object
      description: The outcome of one item from a bulk field forget submission.
      properties:
        index:
          type: integer
          description: Position of this item in the submitted `requests` array.
        profile_hash:
          type:
          - string
          - 'null'
          description: Echoed only when the submitted value was actually a string.
        result:
          type: string
          description: '`accepted`: a new request was created. `duplicate`: matched a request already `pending` or `in_progress` and less than 24 hours old; `id` is that existing request. `rejected`: the item failed validation and no request was created.'
          enum:
          - accepted
          - duplicate
          - rejected
        id:
          type:
          - string
          - 'null'
          description: The request ID. Use it with `GET /field-forget/{id}` to poll for the outcome. `null` for a `rejected` item, which created no request.
        message:
          type: string
          description: 'Present only when `result` is `rejected`: what was wrong with this item.'
    FieldForgetErrorMessage:
      type: object
      description: Error returned by the field forget endpoints.
      properties:
        message:
          type: string
          description: What was wrong with the request.
        status:
          type: integer
          description: The HTTP status code.
        title:
          type: string
          description: Short description of the error class.
      example:
        message: fields must be a subset of email, phone
        status: 400
        title: Bad Request
    FieldForgetBulkSubmission:
      type: object
      description: A batch of field forget request submissions.
      required:
      - requests
      properties:
        requests:
          type: array
          description: A non-empty list, capped at 100 items, of `profile_hash`/`fields` objects, each with the same shape `POST /field-forget` accepts.
          minItems: 1
          maxItems: 100
          items:
            $ref: '#/components/schemas/FieldForgetSubmission'
    FieldForgetPostResponse:
      type: object
      description: Response to a field forget request submission
      properties:
        id:
          type: string
          description: The request ID. Use it with `GET /field-forget/{id}` to poll for the outcome. An identical request that is still in flight and less than 24 hours old returns the ID of the existing request.
      example:
        id: 6f1c2a0e-3b7d-4c8a-9e21-5d0f7b8a4c13
  securitySchemes:
    apikey:
      type: apiKey
      name: X-Ometria-Auth
      in: header
      description: Ometria API key which can be obtained from your Ometria account administrator
    apiKeyReadTranslations:
      type: apiKey
      name: X-Ometria-Auth
      in: header
      description: 'Ometria API key which can be obtained from your Ometria account administrator. **Note**: The API key must have the scope `read:translations`.'
    apiKeyWriteTranslations:
      type: apiKey
      name: X-Ometria-Auth
      in: header
      description: 'Ometria API key which can be obtained from your Ometria account administrator. **Note**: The API key must have the scope `write:translations`.'
x-explorer-enabled: false
x-readme:
  proxy-enabled: true
  samples-enabled: true