Skip to content

Restore a logged email

client.Email.Restore(ctx, id, body) (*EmailRestoreResponse, error)
POST/v1/emails/{id}/restore

Restores a trashed email that was logged through POST /v1/emails/log, bringing it back to active. Synced emails cannot be restored here. Calling restore on an email that is not trashed is a no-op and returns the existing record.

Required scope: emails:restore

Rate limit category: Write

ParametersExpand Collapse
id string

Unique identifier of the email to restore.

body EmailRestoreParams
Body param.Field[EmailRestoreParamsBody]Optional
ReturnsExpand Collapse
type EmailRestoreResponse struct{…}
ID string

Unique identifier for the entity.

AccessLevel EmailRestoreResponseAccessLevel

The caller’s resolved access level for this email.

One of the following:
const EmailRestoreResponseAccessLevelFull EmailRestoreResponseAccessLevel = "FULL"
const EmailRestoreResponseAccessLevelMetadata EmailRestoreResponseAccessLevel = "METADATA"
CreatedAt string

ISO 8601 timestamp of when the entity was created.

Fields map[string, EmailRestoreResponseField]

Map of field names to their typed values. System fields are prefixed with $ (e.g. $name, $email); custom attributes use their bare slug.

Value EmailRestoreResponseFieldValueUnion

The field value, or null if unset.

One of the following:
string
float64
bool
type EmailRestoreResponseFieldValueArray []string
type EmailRestoreResponseFieldValueAddress struct{…}
City stringOptional

City name.

Country stringOptional

2-letter ISO 3166-1 alpha-2 country code.

Latitude float64Optional

Latitude coordinate.

Longitude float64Optional

Longitude coordinate.

PostalCode stringOptional

Postal or ZIP code.

State stringOptional

State or province.

Street stringOptional

Street address line 1.

Street2 stringOptional

Street address line 2.

type EmailRestoreResponseFieldValueFullName struct{…}
FirstName stringOptional

The contact’s first name.

LastName stringOptional

The contact’s last name.

ValueType string

The data type of the field.

One of the following:
const EmailRestoreResponseFieldValueTypeAddress EmailRestoreResponseFieldValueType = "ADDRESS"
const EmailRestoreResponseFieldValueTypeCheckbox EmailRestoreResponseFieldValueType = "CHECKBOX"
const EmailRestoreResponseFieldValueTypeCurrency EmailRestoreResponseFieldValueType = "CURRENCY"
const EmailRestoreResponseFieldValueTypeDatetime EmailRestoreResponseFieldValueType = "DATETIME"
const EmailRestoreResponseFieldValueTypeEmail EmailRestoreResponseFieldValueType = "EMAIL"
const EmailRestoreResponseFieldValueTypeFullName EmailRestoreResponseFieldValueType = "FULL_NAME"
const EmailRestoreResponseFieldValueTypeMarkdown EmailRestoreResponseFieldValueType = "MARKDOWN"
const EmailRestoreResponseFieldValueTypeMultiSelect EmailRestoreResponseFieldValueType = "MULTI_SELECT"
const EmailRestoreResponseFieldValueTypeNumber EmailRestoreResponseFieldValueType = "NUMBER"
const EmailRestoreResponseFieldValueTypeSingleSelect EmailRestoreResponseFieldValueType = "SINGLE_SELECT"
const EmailRestoreResponseFieldValueTypeSocialHandle EmailRestoreResponseFieldValueType = "SOCIAL_HANDLE"
const EmailRestoreResponseFieldValueTypeTelephone EmailRestoreResponseFieldValueType = "TELEPHONE"
const EmailRestoreResponseFieldValueTypeText EmailRestoreResponseFieldValueType = "TEXT"
const EmailRestoreResponseFieldValueTypeURL EmailRestoreResponseFieldValueType = "URL"
const EmailRestoreResponseFieldValueTypeHTML EmailRestoreResponseFieldValueType = "HTML"
ObjectType EmailRestoreResponseObjectType

Always email.

Relationships map[string, EmailRestoreResponseRelationship]

Map of relationship names to their associated entities. System relationships are prefixed with $ (e.g. $owner, $contact). A self-referential relationship keeps its merged values and includes optional directional values. List filters select the current record’s role with :asSource or :asDestination, for example ?parent:asSource[contains]=account_id.

Cardinality string

Whether the relationship is has_one or has_many.

ObjectType string

The type of the related object (e.g. account, contact).

Values []string

IDs of the related entities.

Directions EmailRestoreResponseRelationshipDirectionsOptional

Directional values for a self-referential relationship. List filters use the relationship key with :asSource or :asDestination; writes continue to use the bare key.

AsDestination EmailRestoreResponseRelationshipDirectionsAsDestination

The current record is the destination (incoming) endpoint.

Cardinality string

Whether this endpoint direction is HAS_ONE or HAS_MANY.

One of the following:
const EmailRestoreResponseRelationshipDirectionsAsDestinationCardinalityHasOne EmailRestoreResponseRelationshipDirectionsAsDestinationCardinality = "HAS_ONE"
const EmailRestoreResponseRelationshipDirectionsAsDestinationCardinalityHasMany EmailRestoreResponseRelationshipDirectionsAsDestinationCardinality = "HAS_MANY"
Values []string

IDs of the related entities in this direction.

AsSource EmailRestoreResponseRelationshipDirectionsAsSource

The current record is the source (outgoing) endpoint.

Cardinality string

Whether this endpoint direction is HAS_ONE or HAS_MANY.

One of the following:
const EmailRestoreResponseRelationshipDirectionsAsSourceCardinalityHasOne EmailRestoreResponseRelationshipDirectionsAsSourceCardinality = "HAS_ONE"
const EmailRestoreResponseRelationshipDirectionsAsSourceCardinalityHasMany EmailRestoreResponseRelationshipDirectionsAsSourceCardinality = "HAS_MANY"
Values []string

IDs of the related entities in this direction.

UpdatedAt string

ISO 8601 timestamp of when the entity was last updated, or null.

ExternalID stringOptional

External identifier for the entity, or null if unset.

Restore a logged email

package main

import (
  "context"
  "fmt"

  "github.com/Lightfld/lightfield-go"
  "github.com/Lightfld/lightfield-go/option"
)

func main() {
  client := githubcomlightfldlightfieldgo.NewClient(
    option.WithAPIKey("My API Key"),
  )
  emailRestoreResponse, err := client.Email.Restore(
    context.TODO(),
    "id",
    githubcomlightfldlightfieldgo.EmailRestoreParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", emailRestoreResponse.ID)
}
{
  "id": "eml_cm0abc456def789",
  "accessLevel": "FULL",
  "createdAt": "2026-05-01T09:00:00.000Z",
  "fields": {
    "$subject": {
      "value": "Following up on our chat",
      "valueType": "TEXT"
    },
    "$sentAt": {
      "value": "2026-05-01T08:30:00.000Z",
      "valueType": "DATETIME"
    },
    "$from": {
      "value": [
        "sales@acme.com"
      ],
      "valueType": "EMAIL"
    },
    "$to": {
      "value": [
        "lead@example.com"
      ],
      "valueType": "EMAIL"
    },
    "$cc": {
      "value": [
        "string"
      ],
      "valueType": "EMAIL"
    },
    "$bcc": {
      "value": [
        "string"
      ],
      "valueType": "EMAIL"
    },
    "$privacySetting": {
      "value": "string",
      "valueType": "TEXT"
    },
    "$body": {
      "value": "<p>Hi there,</p><p>Following up on our chat earlier this week.</p>",
      "valueType": "HTML"
    }
  },
  "httpLink": null,
  "objectType": "email",
  "relationships": {
    "$account": {
      "cardinality": "has_many",
      "objectType": "account",
      "values": [
        "acc_cm4stu901uvw234"
      ],
      "directions": {
        "asDestination": {
          "cardinality": "HAS_ONE",
          "values": [
            "string"
          ]
        },
        "asSource": {
          "cardinality": "HAS_ONE",
          "values": [
            "string"
          ]
        }
      }
    },
    "$contact": {
      "cardinality": "has_many",
      "objectType": "contact",
      "values": [
        "con_cm2ghi789jkl012"
      ],
      "directions": {
        "asDestination": {
          "cardinality": "HAS_ONE",
          "values": [
            "string"
          ]
        },
        "asSource": {
          "cardinality": "HAS_ONE",
          "values": [
            "string"
          ]
        }
      }
    }
  },
  "updatedAt": "2026-05-01T10:00:00.000Z",
  "externalId": "externalId"
}
Returns Examples
{
  "id": "eml_cm0abc456def789",
  "accessLevel": "FULL",
  "createdAt": "2026-05-01T09:00:00.000Z",
  "fields": {
    "$subject": {
      "value": "Following up on our chat",
      "valueType": "TEXT"
    },
    "$sentAt": {
      "value": "2026-05-01T08:30:00.000Z",
      "valueType": "DATETIME"
    },
    "$from": {
      "value": [
        "sales@acme.com"
      ],
      "valueType": "EMAIL"
    },
    "$to": {
      "value": [
        "lead@example.com"
      ],
      "valueType": "EMAIL"
    },
    "$cc": {
      "value": [
        "string"
      ],
      "valueType": "EMAIL"
    },
    "$bcc": {
      "value": [
        "string"
      ],
      "valueType": "EMAIL"
    },
    "$privacySetting": {
      "value": "string",
      "valueType": "TEXT"
    },
    "$body": {
      "value": "<p>Hi there,</p><p>Following up on our chat earlier this week.</p>",
      "valueType": "HTML"
    }
  },
  "httpLink": null,
  "objectType": "email",
  "relationships": {
    "$account": {
      "cardinality": "has_many",
      "objectType": "account",
      "values": [
        "acc_cm4stu901uvw234"
      ],
      "directions": {
        "asDestination": {
          "cardinality": "HAS_ONE",
          "values": [
            "string"
          ]
        },
        "asSource": {
          "cardinality": "HAS_ONE",
          "values": [
            "string"
          ]
        }
      }
    },
    "$contact": {
      "cardinality": "has_many",
      "objectType": "contact",
      "values": [
        "con_cm2ghi789jkl012"
      ],
      "directions": {
        "asDestination": {
          "cardinality": "HAS_ONE",
          "values": [
            "string"
          ]
        },
        "asSource": {
          "cardinality": "HAS_ONE",
          "values": [
            "string"
          ]
        }
      }
    }
  },
  "updatedAt": "2026-05-01T10:00:00.000Z",
  "externalId": "externalId"
}