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

# List all projects

> This endpoint fetches projects for an organisation. Authenticate with a personal API key or JWT and pass the organisation id as the orgID query parameter.



## OpenAPI

````yaml get /v1/projects
openapi: 3.0.0
info:
  contact:
    email: support@getconvoy.io
    name: Convoy Support
    url: https://getconvoy.io/docs
  description: >-
    Convoy is a fast and secure webhooks proxy. This document contains
    datastore's API specification.
  license:
    name: Mozilla Public License 2.0
    url: https://www.mozilla.org/en-US/MPL/2.0/
  termsOfService: https://getconvoy.io/terms
  title: Convoy API Reference
  version: 26.3.5
servers:
  - url: https://us.getconvoy.cloud/api
    description: US Region
  - url: https://eu.getconvoy.cloud/api
    description: EU Region
security: []
tags:
  - description: Subscription related APIs
    name: Subscriptions
  - description: Endpoint related APIs
    name: Endpoints
  - description: Event related APIs
    name: Events
  - description: Source related APIs
    name: Sources
  - description: EventDelivery related APIs
    name: Event Deliveries
  - description: Delivery Attempt related APIs
    name: Delivery Attempts
  - description: Portal Links related APIs
    name: Portal Links
  - description: Meta Events related APIs
    name: Meta Events
  - description: Event Types related APIs
    name: EventTypes
  - description: Filters related APIs
    name: Filters
  - description: Onboard related APIs
    name: Onboard
paths:
  /v1/projects:
    get:
      tags:
        - Projects
      summary: List all projects
      description: >-
        This endpoint fetches projects for an organisation. Authenticate with a
        personal API key or JWT and pass the organisation id as the orgID query
        parameter.
      operationId: GetProjects
      parameters:
        - description: Organisation ID
          in: query
          name: orgID
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/util.ServerResponse'
                  - properties:
                      data:
                        items:
                          $ref: '#/components/schemas/models.ProjectResponse'
                        type: array
                    type: object
          description: OK
        '400':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/util.ServerResponse'
                  - properties:
                      data:
                        $ref: '#/components/schemas/handlers.Stub'
                    type: object
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/util.ServerResponse'
                  - properties:
                      data:
                        $ref: '#/components/schemas/handlers.Stub'
                    type: object
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/util.ServerResponse'
                  - properties:
                      data:
                        $ref: '#/components/schemas/handlers.Stub'
                    type: object
          description: Not Found
      security:
        - ApiKeyAuth: []
components:
  schemas:
    util.ServerResponse:
      properties:
        message:
          type: string
        status:
          type: boolean
      type: object
    models.ProjectResponse:
      properties:
        config:
          $ref: '#/components/schemas/datastore.ProjectConfig'
        created_at:
          type: string
        deleted_at:
          type: string
        logo_url:
          type: string
        name:
          type: string
        organisation_id:
          type: string
        retained_events:
          type: integer
        statistics:
          $ref: '#/components/schemas/datastore.ProjectStatistics'
        type:
          $ref: '#/components/schemas/datastore.ProjectType'
        uid:
          type: string
        updated_at:
          type: string
      type: object
    handlers.Stub:
      type: object
    datastore.ProjectConfig:
      properties:
        add_event_id_trace_headers:
          type: boolean
        circuit_breaker:
          $ref: '#/components/schemas/datastore.CircuitBreakerConfiguration'
        disable_endpoint:
          type: boolean
        max_payload_read_size:
          type: integer
        meta_event:
          $ref: '#/components/schemas/datastore.MetaEventConfiguration'
        multiple_endpoint_subscriptions:
          type: boolean
        ratelimit:
          $ref: '#/components/schemas/datastore.RateLimitConfiguration'
        replay_attacks_prevention_enabled:
          type: boolean
        search_policy:
          type: string
        signature:
          $ref: '#/components/schemas/datastore.SignatureConfiguration'
        ssl:
          $ref: '#/components/schemas/datastore.SSLConfiguration'
        strategy:
          $ref: '#/components/schemas/datastore.StrategyConfiguration'
      type: object
    datastore.ProjectStatistics:
      properties:
        endpoints_exist:
          type: boolean
        events_exist:
          type: boolean
        sources_exist:
          type: boolean
        subscriptions_exist:
          type: boolean
      type: object
    datastore.ProjectType:
      enum:
        - outgoing
        - incoming
      type: string
      x-enum-varnames:
        - OutgoingProject
        - IncomingProject
    datastore.CircuitBreakerConfiguration:
      properties:
        consecutive_failure_threshold:
          type: integer
        error_timeout:
          type: integer
        failure_threshold:
          type: integer
        minimum_request_count:
          type: integer
        observability_window:
          type: integer
        sample_rate:
          type: integer
        success_threshold:
          type: integer
      type: object
    datastore.MetaEventConfiguration:
      properties:
        event_type:
          items:
            type: string
          type: array
        is_enabled:
          type: boolean
        pub_sub:
          $ref: '#/components/schemas/datastore.PubSubConfig'
        secret:
          type: string
        type:
          $ref: '#/components/schemas/datastore.MetaEventType'
        url:
          type: string
      type: object
    datastore.RateLimitConfiguration:
      properties:
        count:
          type: integer
        duration:
          type: integer
      type: object
    datastore.SignatureConfiguration:
      properties:
        header:
          $ref: '#/components/schemas/config.SignatureHeaderProvider'
        versions:
          items:
            $ref: '#/components/schemas/datastore.SignatureVersion'
          type: array
      type: object
    datastore.SSLConfiguration:
      properties:
        enforce_secure_endpoints:
          type: boolean
      type: object
    datastore.StrategyConfiguration:
      properties:
        duration:
          type: integer
        retry_count:
          type: integer
        type:
          $ref: '#/components/schemas/datastore.StrategyProvider'
      type: object
    datastore.PubSubConfig:
      properties:
        amqp:
          $ref: '#/components/schemas/datastore.AmqpPubSubConfig'
        google:
          $ref: '#/components/schemas/datastore.GooglePubSubConfig'
        kafka:
          $ref: '#/components/schemas/datastore.KafkaPubSubConfig'
        sqs:
          $ref: '#/components/schemas/datastore.SQSPubSubConfig'
        type:
          $ref: '#/components/schemas/datastore.PubSubType'
        workers:
          type: integer
      type: object
    datastore.MetaEventType:
      enum:
        - http
        - pub_sub
      type: string
      x-enum-varnames:
        - HTTPMetaEvent
        - PubSubMetaEvent
    config.SignatureHeaderProvider:
      enum:
        - X-Convoy-Signature
      type: string
      x-enum-varnames:
        - DefaultSignatureHeader
    datastore.SignatureVersion:
      properties:
        created_at:
          type: string
        encoding:
          $ref: '#/components/schemas/datastore.EncodingType'
        hash:
          type: string
        uid:
          type: string
      type: object
    datastore.StrategyProvider:
      enum:
        - linear
        - exponential
      type: string
      x-enum-varnames:
        - LinearStrategyProvider
        - ExponentialStrategyProvider
    datastore.AmqpPubSubConfig:
      properties:
        host:
          type: string
        auth:
          $ref: '#/components/schemas/datastore.AmqpCredentials'
        bindedExchange:
          type: string
        deadLetterExchange:
          type: string
        port:
          type: string
        queue:
          type: string
        routingKey:
          type: string
        schema:
          type: string
        vhost:
          type: string
      type: object
    datastore.GooglePubSubConfig:
      properties:
        project_id:
          type: string
        service_account:
          items:
            type: integer
          type: array
        subscription_id:
          type: string
      type: object
    datastore.KafkaPubSubConfig:
      properties:
        auth:
          $ref: '#/components/schemas/datastore.KafkaAuth'
        brokers:
          items:
            type: string
          type: array
        consumer_group_id:
          type: string
        topic_name:
          type: string
      type: object
    datastore.SQSPubSubConfig:
      properties:
        access_key_id:
          type: string
        default_region:
          type: string
        endpoint:
          description: 'Optional: for LocalStack testing'
          type: string
        queue_name:
          type: string
        secret_key:
          type: string
      type: object
    datastore.PubSubType:
      enum:
        - sqs
        - google
        - kafka
        - amqp
      type: string
      x-enum-varnames:
        - SqsPubSub
        - GooglePubSub
        - KafkaPubSub
        - AmqpPubSub
    datastore.EncodingType:
      enum:
        - base64
        - hex
      type: string
      x-enum-varnames:
        - Base64Encoding
        - HexEncoding
    datastore.AmqpCredentials:
      properties:
        password:
          type: string
        user:
          type: string
      type: object
    datastore.KafkaAuth:
      properties:
        hash:
          type: string
        password:
          type: string
        tls:
          type: boolean
        type:
          type: string
        username:
          type: string
      type: object
  securitySchemes:
    ApiKeyAuth:
      in: header
      name: Authorization
      type: apiKey

````