> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.cail.health/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.cail.health/_mcp/server.

# List verification events for a resource

GET https://staging.cail.health/v1/providers/{type}/{id}/verification/events

Returns the verification timeline for the supplied resource. Each event captures the prior status, the new status, the reviewer, the method used to verify, and any notes recorded with the transition. Sorted ascending by default so reviewers see the history oldest-first.

Reference: https://docs.cail.health/api-references/api-reference/curate-your-network/list-events

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: cail-api
  version: 1.0.0
paths:
  /v1/providers/{type}/{id}/verification/events:
    get:
      operationId: list-events
      summary: List verification events for a resource
      description: >-
        Returns the verification timeline for the supplied resource. Each event
        captures the prior status, the new status, the reviewer, the method used
        to verify, and any notes recorded with the transition. Sorted ascending
        by default so reviewers see the history oldest-first.
      tags:
        - subpackage_curateYourNetwork
      parameters:
        - name: type
          in: path
          description: FHIR resource type the events belong to.
          required: true
          schema:
            $ref: >-
              #/components/schemas/V1ProvidersTypeIdVerificationEventsGetParametersType
        - name: id
          in: path
          description: Stable identifier of the resource.
          required: true
          schema:
            type: string
        - name: limit
          in: query
          description: Maximum number of events to return.
          required: false
          schema:
            type: number
            format: double
        - name: cursor
          in: query
          description: Opaque cursor returned from a prior call.
          required: false
          schema:
            type: string
        - name: order
          in: query
          description: >-
            Sort direction over the event creation timestamp. Defaults to asc
            (replay the timeline oldest-first).
          required: false
          schema:
            $ref: >-
              #/components/schemas/V1ProvidersTypeIdVerificationEventsGetParametersOrder
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Verification events.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListVerificationEventsResponse'
servers:
  - url: https://staging.cail.health
    description: https://staging.cail.health
components:
  schemas:
    V1ProvidersTypeIdVerificationEventsGetParametersType:
      type: string
      enum:
        - Organization
        - Location
        - HealthcareService
      title: V1ProvidersTypeIdVerificationEventsGetParametersType
    V1ProvidersTypeIdVerificationEventsGetParametersOrder:
      type: string
      enum:
        - asc
        - desc
      title: V1ProvidersTypeIdVerificationEventsGetParametersOrder
    VerificationEventViewPriorStatus:
      type: string
      enum:
        - unverified
        - verified
        - rejected
        - needs_review
      description: Status the row had before the event was applied.
      title: VerificationEventViewPriorStatus
    VerificationEventViewNewStatus:
      type: string
      enum:
        - unverified
        - verified
        - rejected
        - needs_review
      description: Status the row took after the event was applied.
      title: VerificationEventViewNewStatus
    VerificationEventViewActorId:
      type: object
      properties: {}
      description: Actor that recorded the event.
      title: VerificationEventViewActorId
    VerificationEventViewActorOrganizationId:
      type: object
      properties: {}
      description: Organisation context of the actor.
      title: VerificationEventViewActorOrganizationId
    VerificationEventViewVerificationMethod:
      type: object
      properties: {}
      description: Method used to verify.
      title: VerificationEventViewVerificationMethod
    VerificationEventViewNotes:
      type: object
      properties: {}
      description: Operational notes attached to the event.
      title: VerificationEventViewNotes
    VerificationEventViewEvidenceReference:
      type: object
      properties: {}
      description: Pointer to supporting evidence, when supplied.
      title: VerificationEventViewEvidenceReference
    VerificationEventView:
      type: object
      properties:
        id:
          type: string
          description: Stable identifier of the event row.
        priorStatus:
          $ref: '#/components/schemas/VerificationEventViewPriorStatus'
          description: Status the row had before the event was applied.
        newStatus:
          $ref: '#/components/schemas/VerificationEventViewNewStatus'
          description: Status the row took after the event was applied.
        actorId:
          oneOf:
            - $ref: '#/components/schemas/VerificationEventViewActorId'
            - type: 'null'
          description: Actor that recorded the event.
        actorOrganizationId:
          oneOf:
            - $ref: '#/components/schemas/VerificationEventViewActorOrganizationId'
            - type: 'null'
          description: Organisation context of the actor.
        verificationMethod:
          oneOf:
            - $ref: '#/components/schemas/VerificationEventViewVerificationMethod'
            - type: 'null'
          description: Method used to verify.
        notes:
          oneOf:
            - $ref: '#/components/schemas/VerificationEventViewNotes'
            - type: 'null'
          description: Operational notes attached to the event.
        evidenceReference:
          oneOf:
            - $ref: '#/components/schemas/VerificationEventViewEvidenceReference'
            - type: 'null'
          description: Pointer to supporting evidence, when supplied.
        createdAt:
          type: string
          description: ISO 8601 timestamp the event was recorded.
      required:
        - id
        - priorStatus
        - newStatus
        - actorId
        - actorOrganizationId
        - verificationMethod
        - notes
        - evidenceReference
        - createdAt
      title: VerificationEventView
    VerificationEventsPaginationCursor:
      type: object
      properties: {}
      description: Cursor for the next page.
      title: VerificationEventsPaginationCursor
    VerificationEventsPagination:
      type: object
      properties:
        cursor:
          oneOf:
            - $ref: '#/components/schemas/VerificationEventsPaginationCursor'
            - type: 'null'
          description: Cursor for the next page.
        hasMore:
          type: boolean
          description: True when more events exist after this page.
        limit:
          type: number
          format: double
          description: Echoes the requested page size.
      required:
        - cursor
        - hasMore
        - limit
      title: VerificationEventsPagination
    ListVerificationEventsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/VerificationEventView'
          description: Events for the resource, ordered by createdAt.
        pagination:
          $ref: '#/components/schemas/VerificationEventsPagination'
      required:
        - data
        - pagination
      title: ListVerificationEventsResponse
  securitySchemes:
    auth0Bearer:
      type: http
      scheme: bearer

```

## Examples



**Response**

```json
{
  "data": [
    {
      "id": "8f3c1b2a-4d5e-46c7-b890-1f2e3d4c5b6a",
      "priorStatus": "unverified",
      "newStatus": "needs_review",
      "actorId": "0c1d2e3f-4a5b-4677-8899-aabbccddeeff",
      "actorOrganizationId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "verificationMethod": null,
      "notes": null,
      "evidenceReference": null,
      "createdAt": "2026-05-12T10:00:00.000Z"
    },
    {
      "id": "evt_02HZX9P3Q5R7S9T1V3W5Y7Z9A1",
      "priorStatus": "needs_review",
      "newStatus": "verified",
      "actorId": "0c1d2e3f-4a5b-4677-8899-aabbccddeeff",
      "actorOrganizationId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "verificationMethod": "manual-review",
      "notes": "Confirmed via published address.",
      "evidenceReference": null,
      "createdAt": "2026-05-13T14:21:00.000Z"
    }
  ],
  "pagination": {
    "cursor": null,
    "hasMore": false,
    "limit": 25
  }
}
```

**SDK Code**

```python Two events recorded over two days
import requests

url = "https://staging.cail.health/v1/providers/Organization/id/verification/events"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript Two events recorded over two days
const url = 'https://staging.cail.health/v1/providers/Organization/id/verification/events';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Two events recorded over two days
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://staging.cail.health/v1/providers/Organization/id/verification/events"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Two events recorded over two days
require 'uri'
require 'net/http'

url = URI("https://staging.cail.health/v1/providers/Organization/id/verification/events")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Two events recorded over two days
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://staging.cail.health/v1/providers/Organization/id/verification/events")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Two events recorded over two days
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://staging.cail.health/v1/providers/Organization/id/verification/events', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Two events recorded over two days
using RestSharp;

var client = new RestClient("https://staging.cail.health/v1/providers/Organization/id/verification/events");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Two events recorded over two days
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://staging.cail.health/v1/providers/Organization/id/verification/events")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```