> ## Documentation Index
> Fetch the complete documentation index at: https://www.c1.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Search Past Grants

> Search historical grants that have been revoked, filtered by app user or entitlement.



## OpenAPI

````yaml https://spec.speakeasy.com/conductor-one/conductorone/my-source-with-code-samples post /api/v1/search/past-grants
openapi: 3.1.0
info:
  description: The C1 API is a HTTP API for managing C1 resources.
  title: C1 API
  version: 0.1.0-alpha
servers:
  - description: The C1 API server for the current tenant.
    url: https://{tenantDomain}.conductor.one
    variables:
      tenantDomain:
        default: example
        description: The domain of the tenant to use for this request.
security:
  - bearerAuth: []
    oauth: []
paths:
  /api/v1/search/past-grants:
    post:
      tags:
        - App Entitlement User Binding History
      summary: Search Past Grants
      description: >-
        Search historical grants that have been revoked, filtered by app user or
        entitlement.
      operationId: c1.api.app.v1.AppEntitlementUserBindingService.SearchPastGrants
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/c1.api.app.v1.SearchPastGrantsRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/c1.api.app.v1.SearchPastGrantsResponse'
          description: >-
            The SearchPastGrantsResponse message contains a list of past grants
            and a nextPageToken if applicable.
      x-codeSamples:
        - lang: go
          label: SearchPastGrants
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/conductorone/conductorone-sdk-go/pkg/models/shared\"\n\tconductoronesdkgo \"github.com/conductorone/conductorone-sdk-go\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := conductoronesdkgo.New(\n        conductoronesdkgo.WithSecurity(shared.Security{\n            BearerAuth: \"<YOUR_BEARER_TOKEN_HERE>\",\n            Oauth: \"<YOUR_OAUTH_HERE>\",\n        }),\n    )\n\n    res, err := s.AppEntitlementUserBinding.SearchPastGrants(ctx, nil)\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.SearchPastGrantsResponse != nil {\n        // handle response\n    }\n}"
        - lang: typescript
          label: Typescript (SDK)
          source: >-
            import { ConductoroneSDKTypescript } from
            "conductorone-sdk-typescript";


            const conductoroneSDKTypescript = new ConductoroneSDKTypescript({
              security: {
                bearerAuth: "<YOUR_BEARER_TOKEN_HERE>",
                oauth: "<YOUR_OAUTH_HERE>",
              },
            });


            async function run() {
              const result = await conductoroneSDKTypescript.appEntitlementUserBinding.searchPastGrants();

              console.log(result);
            }


            run();
components:
  schemas:
    c1.api.app.v1.SearchPastGrantsRequest:
      description: The request message for searching historical grants.
      properties:
        appEntitlementRefs:
          description: A list of entitlement references to restrict the search to.
          items:
            $ref: '#/components/schemas/c1.api.app.v1.AppEntitlementRef'
          nullable: true
          readOnly: false
          type: array
        appIds:
          description: A list of app IDs to restrict the search to.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
        appUserRefs:
          description: A list of app user references to restrict the search to.
          items:
            $ref: '#/components/schemas/c1.api.app.v1.AppUserRef'
          nullable: true
          readOnly: false
          type: array
        expandMask:
          $ref: >-
            #/components/schemas/c1.api.app.v1.AppEntitlementUserBindingExpandHistoryMask
        pageSize:
          description: The maximum number of results to return per page.
          format: int32
          readOnly: false
          type: integer
        pageToken:
          description: The token for fetching the next page of results.
          readOnly: false
          type: string
      title: Search Past Grants Request
      type: object
      x-speakeasy-name-override: SearchPastGrantsRequest
    c1.api.app.v1.SearchPastGrantsResponse:
      description: >-
        The SearchPastGrantsResponse message contains a list of past grants and
        a nextPageToken if applicable.
      properties:
        expanded:
          description: The expanded field.
          items:
            additionalProperties: true
            description: >-
              Contains an arbitrary serialized message along with a @type that
              describes the type of the serialized message.
            properties:
              '@type':
                description: The type of the serialized message.
                type: string
            readOnly: false
            type: object
          nullable: true
          readOnly: false
          type: array
        list:
          description: >-
            The list of results containing up to X results, where X is the page
            size defined in the request.
          items:
            $ref: >-
              #/components/schemas/c1.api.app.v1.AppEntitlementUserBindingHistoryView
          nullable: true
          readOnly: false
          type: array
        nextPageToken:
          description: >-
            The nextPageToken is shown for the next page if the number of
            results is larger than the max page size.
             The server returns one page of results and the nextPageToken until all results are retrieved.
             To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.
          readOnly: false
          type: string
      title: Search Past Grants Response
      type: object
      x-speakeasy-name-override: SearchPastGrantsResponse
    c1.api.app.v1.AppEntitlementRef:
      description: The AppEntitlementRef message.
      properties:
        appId:
          description: The appId field.
          readOnly: false
          type: string
        id:
          description: The id field.
          readOnly: false
          type: string
      title: App Entitlement Ref
      type: object
      x-speakeasy-name-override: AppEntitlementRef
    c1.api.app.v1.AppUserRef:
      description: The AppUserRef message.
      properties:
        appId:
          description: The ID of the application.
          readOnly: false
          type: string
        id:
          description: The ID of the app user.
          readOnly: false
          type: string
      title: App User Ref
      type: object
      x-speakeasy-name-override: AppUserRef
    c1.api.app.v1.AppEntitlementUserBindingExpandHistoryMask:
      description: The AppEntitlementUserBindingExpandHistoryMask message.
      properties:
        paths:
          description: The paths field.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
      title: App Entitlement User Binding Expand History Mask
      type: object
      x-speakeasy-name-override: AppEntitlementUserBindingExpandHistoryMask
    c1.api.app.v1.AppEntitlementUserBindingHistoryView:
      description: The AppEntitlementUserBindingHistoryView message.
      properties:
        appPath:
          description: The appPath field.
          readOnly: false
          type: string
        appUserPath:
          description: The appUserPath field.
          readOnly: false
          type: string
        entitlementPath:
          description: The entitlementPath field.
          readOnly: false
          type: string
        history:
          $ref: '#/components/schemas/c1.api.app.v1.AppEntitlementUserBindingHistory'
      title: App Entitlement User Binding History View
      type: object
      x-speakeasy-name-override: AppEntitlementUserBindingHistoryView
    c1.api.app.v1.AppEntitlementUserBindingHistory:
      description: The AppEntitlementUserBindingHistory message.
      properties:
        appEntitlementId:
          description: The ID of the app entitlement that the app user has access to
          readOnly: false
          type: string
        appId:
          description: The ID of the app associated with the app entitlement
          readOnly: false
          type: string
        appUserId:
          description: The ID of the app user that has access to the app entitlement
          readOnly: false
          type: string
        grantedAt:
          format: date-time
          readOnly: true
          type: string
        revokedAt:
          format: date-time
          readOnly: true
          type: string
      title: App Entitlement User Binding History
      type: object
      x-speakeasy-name-override: AppEntitlementUserBindingHistory
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http
    oauth:
      description: >-
        This API uses OAuth2 with the Client Credential flow.

        Client Credentials must be sent in the BODY, not the headers.

        For an example of how to implement this, refer to the
        [c1TokenSource.Token()](https://github.com/ConductorOne/conductorone-sdk-go/blob/3375fe7c0126d17e7ec4e711693dee7b791023aa/token_source.go#L101-L187)
        function.
      flows:
        clientCredentials:
          scopes: {}
          tokenUrl: /auth/v1/token
      type: oauth2

````