Fulcra · Agentic Access

Fulcra Agentic Access

x-agentic-access generated

Fulcra exposes 67 API operations that an AI agent could call, of which 17 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.

By consequence: 50 read and 17 write.

Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.

CompanyArtificial IntelligenceContextBackendAgentsPlatform
Operations: 67 Acting: 17 Human-in-the-loop: 0 Method: generated

API Evangelist recommendations, not provider rules. These classifications are generated heuristically from each operation's method, path and name. They suggest how an agent's access could be scoped. They are not authorization, approval or human-in-the-loop requirements that the provider enforces.

By consequence

read 50 write 17

Source

Agentic Access

Raw ↑
generated: '2026-11-09'
method: generated
source: openapi/fulcradynamics-com-openapi.json
description: Recommended x-agentic-access execution contracts, classified heuristically from
  the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind
  audience per deployment. See research/curity/agentic-governance/.
summary:
  operations: 67
  by_action_class:
    connected: 50
    acting: 17
  by_consequence:
    read: 50
    write: 17
  human_in_the_loop_required: 0
operations:
- path: /data/v0/metrics_catalog
  method: get
  operationId: user_get_metrics_catalog_data_v0_metrics_catalog_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v0/time_series_grouped
  method: get
  operationId: user_get_time_series_grouped_data_v0_time_series_grouped_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v0/{fulcra_userid}/apple_location_updates
  method: get
  operationId: get_apple_location_updates_data_v0__fulcra_userid__apple_location_updates_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v0/{fulcra_userid}/apple_location_visits
  method: get
  operationId: get_apple_location_visits_data_v0__fulcra_userid__apple_location_visits_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v0/{fulcra_userid}/apple_workouts
  method: get
  operationId: get_apple_workouts_data_v0__fulcra_userid__apple_workouts_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v0/{fulcra_userid}/calendar_events
  method: get
  operationId: get_calendar_events_data_v0__fulcra_userid__calendar_events_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v0/{fulcra_userid}/calendars
  method: get
  operationId: get_user_calendars_data_v0__fulcra_userid__calendars_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v0/{fulcra_userid}/gmaps_location_updates
  method: get
  operationId: get_gmaps_location_updates_data_v0__fulcra_userid__gmaps_location_updates_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v0/{fulcra_userid}/gmaps_location_updates/bounds
  method: get
  operationId: get_gmaps_location_updates_bounds_data_v0__fulcra_userid__gmaps_location_updates_bounds_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v0/{fulcra_userid}/location_at_time
  method: get
  operationId: get_closest_location_data_v0__fulcra_userid__location_at_time_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v0/{fulcra_userid}/location_time_series
  method: get
  operationId: get_location_time_series_data_v0__fulcra_userid__location_time_series_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v0/{fulcra_userid}/location_updates
  method: get
  operationId: get_location_updates_data_v0__fulcra_userid__location_updates_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v0/{fulcra_userid}/metric_samples
  method: get
  operationId: get_metric_samples_data_v0__fulcra_userid__metric_samples_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v0/{fulcra_userid}/metric_time_series
  method: get
  operationId: user_get_metric_time_series_data_v0__fulcra_userid__metric_time_series_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v0/{fulcra_userid}/sleep_agg
  method: get
  operationId: get_sleep_agg_data_v0__fulcra_userid__sleep_agg_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v0/{fulcra_userid}/sleep_cycles
  method: get
  operationId: get_sleep_cycles_data_v0__fulcra_userid__sleep_cycles_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v0/{fulcra_userid}/sleep_cycles_extended
  method: get
  operationId: get_sleep_cycles_extended_data_v0__fulcra_userid__sleep_cycles_extended_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v0/{fulcra_userid}/sleep_stage_metadata
  method: get
  operationId: get_sleep_stage_metadata
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v0/{fulcra_userid}/sleep_stages
  method: get
  operationId: get_sleep_stages_data_v0__fulcra_userid__sleep_stages_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v1/catalog
  method: get
  operationId: catalog_data_v1_catalog_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v1/catalog/{data_type}/{api_version}
  method: get
  operationId: catalog_get_data_type_data_v1_catalog__data_type___api_version__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v1/catalog/{data_type}/{api_version}/schema
  method: get
  operationId: catalog_data_type_schema_data_v1_catalog__data_type___api_version__schema_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v1/records
  method: get
  operationId: record_query_data_v1_records_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v1/updates
  method: get
  operationId: get_updates_data_v1_updates_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v1alpha1/data_available
  method: get
  operationId: list_data_available_data_v1alpha1_data_available_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v1alpha1/data_sources
  method: get
  operationId: list_fulcra_data_sources_data_v1alpha1_data_sources_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v1alpha1/event/{data_type}
  method: get
  operationId: user_get_records_data_v1alpha1_event__data_type__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v1alpha1/event/{data_type}/agg/{resolution}
  method: get
  operationId: user_get_event_agg_data_v1alpha1_event__data_type__agg__resolution__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v1alpha1/insight
  method: get
  operationId: get_sleep_insights_data_v1alpha1_insight_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v1alpha1/metric/{data_type}
  method: get
  operationId: user_get_metric_data_v1alpha1_metric__data_type__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v1alpha1/metric/{data_type}/agg/{resolution}
  method: get
  operationId: user_get_metric_agg_data_v1alpha1_metric__data_type__agg__resolution__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /ingest/v1/record
  method: post
  operationId: record_single_type_ingest_v1_record_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /ingest/v1/record/{data_type}
  method: post
  operationId: record_type_ingest_v1_record__data_type__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /input/v1/data_type
  method: get
  operationId: get-data-types
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /input/v1/data_type/{base_type}
  method: post
  operationId: create-data-type
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /input/v1/data_type/{base_type}/{data_type_id}
  method: get
  operationId: get-data-type
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /input/v1/data_type/{base_type}/{data_type_id}
  method: put
  operationId: update-data-type
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /input/v1/file
  method: get
  operationId: input-v1-file-get-file-upload-inputs
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /input/v1/file
  method: post
  operationId: input-v1-file-create-file-upload-input
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /input/v1/file/recent_changes
  method: get
  operationId: input-v1-file-get-recent-file-changes
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /input/v1/file/{input_id}
  method: delete
  operationId: input-v1-file-delete-file-upload-input
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /input/v1/file/{input_id}
  method: get
  operationId: input-v1-file-get-file-upload-input
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /input/v1/file/{input_id}/download
  method: get
  operationId: input-v1-file-download-file-upload-input
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /input/v1/file/{input_id}/restore
  method: post
  operationId: input-v1-file-restore-file-upload-input
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /input/v1/file_upload
  method: get
  operationId: input-v1-file_upload-get-file-upload-inputs
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /input/v1/file_upload
  method: post
  operationId: input-v1-file_upload-create-file-upload-input
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /input/v1/file_upload/recent_changes
  method: get
  operationId: input-v1-file_upload-get-recent-file-changes
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /input/v1/file_upload/{input_id}
  method: delete
  operationId: input-v1-file_upload-delete-file-upload-input
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /input/v1/file_upload/{input_id}
  method: get
  operationId: input-v1-file_upload-get-file-upload-input
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /input/v1/file_upload/{input_id}/download
  method: get
  operationId: input-v1-file_upload-download-file-upload-input
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /input/v1/file_upload/{input_id}/restore
  method: post
  operationId: input-v1-file_upload-restore-file-upload-input
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /user/v1alpha1/annotation
  method: get
  operationId: user_get_annotations_user_v1alpha1_annotation_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /user/v1alpha1/annotation
  method: post
  operationId: user_create_annotation_user_v1alpha1_annotation_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /user/v1alpha1/annotation/{annotation_id}
  method: delete
  operationId: user_delete_annotation_user_v1alpha1_annotation__annotation_id__delete
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /user/v1alpha1/annotation/{annotation_id}
  method: get
  operationId: user_get_annotation_user_v1alpha1_annotation__annotation_id__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /user/v1alpha1/annotation/{annotation_id}
  method: put
  operationId: user_update_annotation_user_v1alpha1_annotation__annotation_id__put
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /user/v1alpha1/annotation/{annotation_id}/cancel_deletion
  method: post
  operationId: user_cancel_annotation_deletion_user_v1alpha1_annotation__annotation_id__cancel_deletion_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /user/v1alpha1/info
  method: get
  operationId: get_user_info
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /user/v1alpha1/preferences
  method: get
  operationId: get_user_preferences
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /user/v1alpha1/preferences
  method: post
  operationId: set_user_preferences
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /user/v1alpha1/schema/annotation
  method: get
  operationId: user_get_annotation_schema_user_v1alpha1_schema_annotation_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /user/v1alpha1/schema/measurement
  method: get
  operationId: user_get_measurement_schema_user_v1alpha1_schema_measurement_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /user/v1alpha1/tag
  method: get
  operationId: get_tags_user_v1alpha1_tag_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /user/v1alpha1/tag
  method: post
  operationId: create_tag_user_v1alpha1_tag_post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /user/v1alpha1/tag/id/{tag_id}
  method: delete
  operationId: delete_tag_user_v1alpha1_tag_id__tag_id__delete
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /user/v1alpha1/tag/id/{tag_id}
  method: get
  operationId: get_tag_by_id_user_v1alpha1_tag_id__tag_id__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /user/v1alpha1/tag/name/{tag_name}
  method: get
  operationId: get_tag_by_name_user_v1alpha1_tag_name__tag_name__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none

Work with this as data

Every access contract here is available over the APIs.io API and to AI agents over MCP. Agentic Access is not yet its own endpoint on the v1 API. Reach it through catalog search and the tag graph, or the MCP server.

MCP server

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

https://apis.io/mcp

Tools for agentic access

3 MCP tools reach this
  • 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
Search the catalog
curl "https://apis.io/api/v1/search?q=fulcradynamics-com-agentic-access&limit=10"
Everything under a tag
curl "https://apis.io/api/v1/tags/fulcradynamics-com-agentic-access"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.