Docs
API reference

Rotate a job's forwarding address

POST
/api/v1/jobs/{jobId}/forwarding-address/rotate

Issues a new address, for example after the old one was shared too widely. With graceDays: 7 the old address keeps accepting mail for seven days and is returned as previous; with 0 it stops at once. Send an Idempotency-Key so a retry does not rotate twice. Only the admin who created the address or any admin may rotate it.

Required scope: inbox:write.

Errors

  • 400: invalid_content_type, invalid_idempotency_key, invalid_json, request_body_too_large, unknown_field
  • 401: authentication_required, invalid_api_key
  • 403: api_access_disabled, insufficient_scope, permission_denied
  • 404: resource_not_found
  • 409: idempotency_key_reused, idempotency_request_in_progress
  • 422: invalid_parameter
  • 429: rate_limit_exceeded
  • 500: api_error
  • 503: inbox_unavailable, maintenance_mode, service_unavailable

Authorization

ApiKey
headerAuthorizationBearer <probb_live_<id>_<secret>>

Path Parameters

jobId*string

The job's ID.

Length1 <= length <= 200

Header Parameters

Idempotency-Key?string

Makes retries safe. Repeating a request with the same key and body within 24 hours returns the original response with Idempotent-Replayed: true. The same key with a different body, or from a different API key, returns idempotency_key_reused.

Length1 <= length <= 255

Request Body

application/json
  1. body
graceDays*|

0 retires the old address at once. 7 keeps it accepting mail for seven days so forwarding rules can be updated.

Response Body

Success.

application/json
  1. response
object*string
jobId*string

The job this address feeds.

status*string

active receives mail. off does not, and also describes a job that never had an address: address is null and monthlyAnalysisCap is the default.

Value in"active""off"
address*|

The address members forward resumes to, or null while it is off.

previous*|

The address before the last rotation, while it still accepts mail because the rotation asked for a grace period. Null otherwise.

monthlyAnalysisCap*integer

The most analyses this address starts per calendar month (UTC). The forward is the confirmation of the spend and this cap bounds it; there is no per-request maxCredits.

Range-9007199254740991 <= value <= 9007199254740991
analysesThisMonth*integer

Analyses this address has started this UTC month.

Range-9007199254740991 <= value <= 9007199254740991
waiting*

Files from this address that are waiting, counted by the reason they wait (for example credits or the monthly cap).

updatedAt*string
Formatdate-time
Example Request
# Set PROBB_URL and PROBB_API_KEY. Replace any *_VALUE placeholder and any example ID (such as job_example) with a real one.# Idempotency-Key is optional. Reuse the same key and body when retrying one logical write.curl --fail-with-body -X POST "$PROBB_URL/api/v1/jobs/JOB_ID_VALUE/forwarding-address/rotate" \  -H "Authorization: Bearer $PROBB_API_KEY" \  -H "Idempotency-Key: $REQUEST_KEY" \  -H 'Content-Type: application/json' \  --data-binary '{  "graceDays": 7}'
Example Response
{  "object": "forwarding_address",  "jobId": "string",  "status": "active",  "address": "string",  "previous": {    "address": "string",    "until": "2019-08-24T14:15:22Z"  },  "monthlyAnalysisCap": -9007199254740991,  "analysesThisMonth": -9007199254740991,  "waiting": {    "property1": -9007199254740991,    "property2": -9007199254740991  },  "updatedAt": "2019-08-24T14:15:22Z"}