Skip to content
bynhDocs

Update evidence

PATCH/workspaces/{workspace}/evidence/items/{evidenceItem}

Changes only the fields you send. Sending requirement_ids replaces the whole mapping. Changing the cadence moves the next review date.

Authentication

Send an API token as a bearer token. This endpoint needs a read and write token, made by an editor, admin or owner. Create one in My account → API tokens; see scopes and roles.

Authorization: Bearer 42|bynh_pat_•••••••Header

Path parameters

  • workspacestringRequired

    Your workspace slug, e.g. dokan.

  • evidenceItemintegerRequired

    Evidence item id.

Request body

application/json
  • titlestringmax 160

    Error: “Give the evidence a name, like “MFA is required for every admin”.”

  • categoryenum

    Exact English values. One of Access management, Asset management, Business continuity, Change management, Cryptography, Data protection, Governance, Incident response, Logging and monitoring, Network security, People, Physical security, Secure development, Vendor management, Vulnerability management.

  • review_every_daysenum

    How often it’s reviewed. One of 30, 90, 180, 365.

  • descriptionstring, nullablemax 2000

    Longer description.

  • methodstring, nullablemax 240

    How it’s collected.

  • owner_idinteger, nullable

    A member of this workspace.

  • is_publicboolean

    List it on the trust center.

  • public_labelstring, nullablemax 160

    Label shown publicly.

  • collectedboolean

    true marks it collected now if it never was; next_review_at is then set from the cadence.

  • requirement_idsstringmax 200

    Replaces the mapping. Each must be a requirement of a framework you follow.

Response

200 OK

The full item (without met and people).

  • idintegerEvidence item id.
  • titlestringName.
  • categorystringOne of the categories listed on create.
  • statusenumpending: never collected. due: next review within 14 days. overdue: past next_review_at. One of current, due, overdue, pending.
  • status_labelstringLocalized (Current, Review due, Overdue, Not collected yet).
  • owner{id, name}|nullOwner.
  • review_every_daysenumCadence. One of 30, 90, 180, 365.
  • last_collected_atstring|nullISO 8601.
  • next_review_atstring|nullYYYY-MM-DD.
  • is_publicbooleanListed on the trust center.
  • requirements_countintegerMapped requirements.
  • files_countintegerAttached files.
  • descriptionstring|nullLonger description.
  • methodstring|nullHow it’s collected.
  • public_labelstring|nullLabel shown publicly.
  • reminded_atstring|nullLast reminder.
  • created_atstringISO 8601.
  • requirements[]objectid, code, title, framework {slug, short_name}; on GET show also met.
  • files[]objectid, filename, mime, size, uploaded_by, uploaded_at, download_path.
  • timelineobjectdays (90 strings, oldest first: current | overdue | none), current_share (percent of tracked days current, 1 decimal, or null), collections (count in the last 90 days), lapse (most recent overdue run: from, to, days, ongoing, resolved_by, note; or null).
  • history[]objectLast 40 audit events on the item: id, kind (action without the evidence. prefix), who, text (localized), at.

Rate limits

This endpoint counts toward your general limit of 120 requests a minute and its own limit of 60 a minute. Its own limit answers 429 without Retry-After; wait and try again.

Errors

401The token is missing, wrong, revoked or expired.
403The token is read-only (message: “This token is read-only. Create a read and write token to make changes.”). Or: The token’s owner is a viewer (“Viewers can read everything but can’t change it.”), or the workspace’s editing is paused (a billing message, e.g. “Your trial has ended, so editing is paused. …”).
404The token belongs to another workspace, or its owner is no longer a member. Or: No evidence item with that id.
422Messages include “Give the evidence a name…”, “Keep the name to 160 characters.”, “Choose a category.”, “Choose a category from the list.”, “Choose someone in this workspace.”, “Choose how often it’s reviewed.”, “Pick requirements from the frameworks you follow.”
429evidence-writes limit (60/min).

Every error is JSON with a message. See Errors.

Next →Mark evidence collected
curl -X PATCH "https://api.bynh.io/api/v1/workspaces/dokan/evidence/items/1" \
  -H "Authorization: Bearer $BYNH_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "owner_id": 14,
    "requirement_ids": [
      1204,
      2311
    ]
  }'

Response200 OK

application/json
{
  "data": {
    "id": 31,
    "title": "Quarterly access review",
    "category": "Access management",
    "status": "current",
    "status_label": "Current",
    "owner": {
      "id": 21,
      "name": "Faisal Alharbi"
    },
    "review_every_days": 30,
    "last_collected_at": "2026-09-02T10:12:44+00:00",
    "next_review_at": "2026-12-01",
    "is_public": true,
    "requirements_count": 3,
    "files_count": 1,
    "description": "Every quarter the platform lead reviews admin access to AWS, GitHub and the Dokan back office.",
    "method": "Export of IAM users and GitHub org members, signed off in the ticket.",
    "public_label": "Quarterly access reviews",
    "reminded_at": null,
    "created_at": "2026-02-11T08:03:19+00:00",
    "requirements": [
      {
        "id": 1204,
        "code": "A.5.15",
        "title": "Access control",
        "framework": {
          "slug": "iso-27001",
          "short_name": "ISO 27001"
        }
      }
    ],
    "files": [
      {
        "id": 588,
        "filename": "access-review-2026-Q3.pdf",
        "mime": "application/pdf",
        "size": 191220,
        "uploaded_by": "Faisal Alharbi",
        "uploaded_at": "2026-09-02T10:12:44+00:00",
        "download_path": "/workspaces/dokan/evidence/items/31/files/588/download"
      }
    ],
    "timeline": {
      "days": [
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current",
        "current"
      ],
      "current_share": 100,
      "collections": 1,
      "lapse": null
    },
    "history": [
      {
        "id": 90211,
        "kind": "file_added",
        "who": "Faisal Alharbi",
        "text": "Added access-review-2026-Q3.pdf",
        "at": "2026-09-02T10:12:44+00:00"
      }
    ]
  }
}

Examples use Dokan, a sample workspace. Responses are shortened where lists are long.