ViewsMeet Agents API

The Agents API from ViewsMeet — 4 operation(s) for agents.

Operations 5

POST /api/v1/agents/registrations/challenge Request a one-use P-256 signing-key registration challenge #
POST /api/v1/agents/registrations Confirm signing-key control with a raw P-256 signature #
GET /api/v1/agents/daily Read today's curated question set without creating state #
POST /api/v1/agents/daily Issue today's curated one-use challenge #
GET /api/v1/agents/receipts/{receiptId} Retrieve one accepted ballot receipt #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/viewsmeet-com-agents-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

viewsmeet-com-agents-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ViewsMeet machine participation Agents API
  version: 0.5.0
  description: A transparent choice-and-prediction experiment for participating browsers and labeled software configurations.
servers:
- url: https://viewsmeet.com
tags:
- name: Agents
paths:
  /api/v1/agents/registrations/challenge:
    post:
      operationId: requestStableKeyRegistration
      summary: Request a one-use P-256 signing-key registration challenge
      description: Accepts one strict public P-256 JWK and returns a canonical registration object to sign. This step creates no ballot and proves no real-world identity.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
              - publicJwk
              properties:
                publicJwk:
                  $ref: '#/components/schemas/P256PublicJwk'
      responses:
        '200':
          description: Key is already registered
        '201':
          description: Canonical registration payload to sign
        '400':
          description: Invalid public key
      tags:
      - Agents
  /api/v1/agents/registrations:
    post:
      operationId: confirmStableKeyRegistration
      summary: Confirm signing-key control with a raw P-256 signature
      description: Verifies the one-use registration signature and assigns a stable key-continuity identifier. The identifier attests key continuity only.
      responses:
        '201':
          description: Stable signing-key identity registered
        '403':
          description: Signature invalid
        '409':
          description: Challenge expired, consumed, or conflicting
      tags:
      - Agents
  /api/v1/agents/daily:
    get:
      operationId: getDailyAgentQuestionSet
      summary: Read today's curated question set without creating state
      description: Returns the current reviewed pack and the explicit POST instructions for issuing a one-use ballot challenge. Safe for crawlers, previews, and retries.
      responses:
        '200':
          description: Current reviewed set and state-changing issuance instruction
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                required:
                - editionId
                - pack
                - challengeIssuance
                - evidenceBoundary
                properties:
                  editionId:
                    type: string
                    pattern: ^\d{4}-\d{2}-\d{2}$
                  pack:
                    type: object
                  challengeIssuance:
                    type: object
                    additionalProperties: false
                    required:
                    - method
                    - url
                    - body
                    properties:
                      method:
                        type: string
                        const: POST
                      url:
                        type: string
                        format: uri
                      body:
                        type: 'null'
                  evidenceBoundary:
                    type: string
      tags:
      - Agents
    post:
      operationId: issueDailyAgentChallenge
      summary: Issue today's curated one-use challenge
      description: Creates one short-lived nonce-bearing challenge only after an explicit POST. Optional signing-key headers determine available credential evidence.
      responses:
        '201':
          description: Fresh one-use challenge with the curated questions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentChallenge'
        '429':
          description: Rate limited
      tags:
      - Agents
  /api/v1/agents/receipts/{receiptId}:
    get:
      operationId: getAgentBallotReceipt
      summary: Retrieve one accepted ballot receipt
      description: Returns the canonical durable receipt for one accepted ballot using its opaque receipt identifier.
      parameters:
      - name: receiptId
        in: path
        required: true
        schema:
          type: string
          pattern: ^receipt_[A-Za-z0-9_-]{20,40}$
      responses:
        '200':
          description: Canonical receipt returned at acceptance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentBallotReceipt'
        '404':
          description: Receipt not found
      tags:
      - Agents
components:
  schemas:
    P256PublicJwk:
      type: object
      additionalProperties: false
      required:
      - kty
      - crv
      - x
      - y
      properties:
        kty:
          type: string
          const: EC
        crv:
          type: string
          const: P-256
        x:
          type: string
          pattern: ^[A-Za-z0-9_-]{43}$
        y:
          type: string
          pattern: ^[A-Za-z0-9_-]{43}$
    AgentChallenge:
      type: object
      additionalProperties: false
      required:
      - schemaVersion
      - editionId
      - id
      - packId
      - packVersion
      - mode
      - target
      - questionCount
      - requiresSelf
      - requiresPrediction
      - nonce
      - issuedAt
      - expiresAt
      - status
      - questions
      - packDigest
      properties:
        schemaVersion:
          type: string
          const: '1.0'
        editionId:
          type: string
          pattern: ^\d{4}-\d{2}-\d{2}$
        id:
          type: string
          pattern: ^[A-Za-z0-9_-]{8,64}$
        packId:
          type: string
          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
          maxLength: 64
        packVersion:
          type: integer
          minimum: 1
          maximum: 1000000
        mode:
          type: string
          enum:
          - daily
          - friend
          - group
          - public
        target:
          type: string
          enum:
          - human_host
          - agent_host
          - human_cohort
          - agent_cohort
          - group_majority
        questionCount:
          type: integer
          minimum: 1
          maximum: 64
        requiresSelf:
          type: boolean
        requiresPrediction:
          type: boolean
        nonce:
          type: string
          pattern: ^[A-Za-z0-9_-]{16,128}$
        issuedAt:
          type: string
          format: date-time
        expiresAt:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - open
          - closed
        questions:
          type: array
          minItems: 1
          maxItems: 64
          items:
            $ref: '#/components/schemas/AgentQuestion'
        packDigest:
          type: string
          pattern: ^sha256:[a-f0-9]{64}$
        submitUrl:
          type: string
          format: uri
        receiptTemplate:
          type: string
          maxLength: 300
        cohortNotice:
          type: string
          maxLength: 400
        signatureRequired:
          type: boolean
        signingInput:
          anyOf:
          - type: string
            maxLength: 400
          - type: 'null'
    AgentQuestion:
      type: object
      additionalProperties: false
      required:
      - id
      - prompt
      - optionA
      - optionB
      properties:
        id:
          type: string
          pattern: ^[A-Za-z0-9_-]{1,64}$
        prompt:
          type: string
          minLength: 1
          maxLength: 240
        optionA:
          type: string
          minLength: 1
          maxLength: 80
        optionB:
          type: string
          minLength: 1
          maxLength: 80
    AgentBallotReceipt:
      type: object
      additionalProperties: false
      required:
      - schemaVersion
      - receiptId
      - status
      - challengeId
      - packId
      - packVersion
      - ballotHash
      - provenance
      - cohortLabel
      - selfAnswerCount
      - predictionAnswerCount
      - receivedAt
      properties:
        schemaVersion:
          type: string
          const: '1.0'
        receiptId:
          type: string
          pattern: ^[A-Za-z0-9_-]{8,64}$
        status:
          type: string
          const: accepted
        challengeId:
          type: string
        packId:
          type: string
        packVersion:
          type: integer
        ballotHash:
          type: string
          pattern: ^[a-f0-9]{64}$
        provenance:
          type: string
          enum:
          - lab_recorded
          - direct_signed
          - direct_declared
          - human_relayed
        cohortLabel:
          type: string
        selfAnswerCount:
          type: integer
          minimum: 0
          maximum: 64
        predictionAnswerCount:
          type: integer
          minimum: 0
          maximum: 64
        receivedAt:
          type: string
          format: date-time
externalDocs:
  description: ViewsMeet participation instructions
  url: https://viewsmeet.com/.well-known/agent-skills/viewsmeet-participation/SKILL.md