Govly Follows API
Follow opportunities and related workspace activity.
Follow opportunities and related workspace activity.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/govly-follows-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: Govly Tools API (Alpha) Awards Follows API
version: 1.0.0-alpha
description: 'ALPHA / UNSTABLE: This API is still in active development. Endpoint behavior, request fields, response fields, error codes, and operation names may change before the Tools API is declared stable.
REST-callable tool surface for agent and automation workflows. Agents are the primary consumer, but integrations can be built on this API. Responses are JSON for typed clients; MCP tools may render action results into text-oriented formats separately.
'
servers:
- url: https://app.govly.com
security:
- bearerApiKey: []
- headerApiKey: []
tags:
- name: Follows
description: Follow opportunities and related workspace activity.
paths:
/api/tools/v1/follows:
post:
tags:
- Follows
operationId: follow_entity
summary: Follow a Govly entity
description: 'Follow, track, or subscribe to changes for a Govly entity. For opportunities, this creates or reuses the default opportunity workspace and follows that workspace for the authenticated user.
'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- type
- id
properties:
type:
type: string
enum:
- opportunity
- opp
description: Entity type to follow. opp is accepted as an alias for opportunity.
id:
type: string
description: Govly entity ID.
notifications:
type: string
description: Notification preference for this follow. Omit to use the user's default setting.
responses:
'201':
description: Active follow on the entity's default workspace
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
type: object
required:
- workspace
- membership
properties:
workspace:
$ref: '#/components/schemas/Workspace'
membership:
$ref: '#/components/schemas/WorkspaceMember'
meta:
type: object
properties:
entityType:
type: string
entityId:
type: string
'401':
$ref: '#/components/responses/Error'
'403':
$ref: '#/components/responses/Error'
'404':
$ref: '#/components/responses/Error'
'422':
$ref: '#/components/responses/Error'
components:
schemas:
AssociatedEntity:
type: object
required:
- type
- id
properties:
type:
type: string
enum:
- opportunity
id:
type: string
Comment:
type: object
required:
- id
- body
- createdAt
- attachments
properties:
id:
type: string
body:
type: string
description: Markdown body for the comment.
attachments:
type: array
description: Workspace attachments tied to this comment.
items:
$ref: '#/components/schemas/WorkspaceAttachment'
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
ErrorEnvelope:
type: object
required:
- errors
properties:
errors:
type: array
items:
type: object
required:
- status
- code
- title
- detail
properties:
status:
type: string
code:
type: string
title:
type: string
detail:
type: string
source:
type: object
properties:
pointer:
type: string
Workspace:
type: object
required:
- id
- name
- status
properties:
id:
type: string
name:
type: string
description:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
commentsCount:
type: integer
status:
type: object
required:
- category
- label
properties:
category:
type: string
description: Coarse status bucket. Triage is the default for newly created workspaces.
label:
type: string
description: Human-readable status name. Falls back to the category label when no custom status is set.
primaryFocus:
$ref: '#/components/schemas/AssociatedEntity'
comments:
type: array
description: Recent comments. Only present on show/create/update responses, capped at the most recent 20.
items:
$ref: '#/components/schemas/Comment'
attachments:
type: array
description: Workspace attachments. Only present on show/create/update responses.
items:
$ref: '#/components/schemas/WorkspaceAttachment'
WorkspaceAttachment:
type: object
required:
- id
- workspaceId
- filename
properties:
id:
type: string
workspaceId:
type: string
commentId:
type: string
nullable: true
filename:
type: string
contentType:
type: string
byteSize:
type: integer
createdAt:
type: string
format: date-time
file:
description: Present only on the workspace attachments endpoint. Workspace show responses surface attachments without download metadata.
$ref: '#/components/schemas/AttachmentFile'
AttachmentFile:
type: object
description: Presigned download metadata. Omitted when the attachment is redacted or URLs are excluded.
required:
- url
- expiresAt
properties:
url:
type: string
format: uri
expiresAt:
type: string
format: date-time
WorkspaceMember:
type: object
required:
- id
- member
properties:
id:
type: string
state:
type: string
notifications:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
member:
type: object
required:
- type
- id
properties:
type:
type: string
enum:
- user
- team
id:
type: string
name:
type: string
email:
type: string
format: email
organization:
type: object
properties:
id:
type: string
name:
type: string
responses:
Error:
description: Error response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorEnvelope'
securitySchemes:
bearerApiKey:
type: http
scheme: bearer
bearerFormat: API key
headerApiKey:
type: apiKey
in: header
name: X-API-KEY