{
  "aid": "gatiflow.io:gatiflow",
  "name": "GatiFlow",
  "description": "GatiFlow turns public developer activity into structured market, talent and hiring signals. Thirteen public sources are polled on a six-hour cycle; a trend-category signal is published only once two independent sources confirm it or one source repeats it across two collection cycles, confidence is computed from source authority, diversity and persistence rather than raw mention count, and every signal carries the evidence behind it.",
  "image": "https://gatiflow.io/favicon.svg",
  "type": "Index",
  "tags": [
    "Market Intelligence",
    "Developer Signals",
    "Trends",
    "Hiring",
    "Open Source",
    "Research",
    "B2B SaaS"
  ],
  "created": "2026-09-19",
  "modified": "2026-09-28",
  "url": "https://gatiflow.io/apis.json",
  "specificationVersion": "0.19",
  "apis": [
    {
      "aid": "gatiflow.io:gatiflow-intelligence-api",
      "name": "GatiFlow Intelligence API",
      "description": "A read-only JSON API over the GatiFlow signal pipeline. Seven published operations return the current intelligence report, its retained snapshots, a point-in-time snapshot by id, a file export, the shared Daily Insights payload, the latest Deep Dive preview, and the calls made with an API key. Report content is shaped by plan: signal, trend and talent caps, per-signal velocity, evidence and snapshot retention all vary. Authentication is an API key in the X-API-Key header, with two exceptions: the latest Deep Dive preview needs no credential, and the Daily Insights payload needs the web-app session instead, so an API key receives 401 there. Rate limits and daily quotas apply per organization: every API key an organization holds draws on the same per-minute limit and the same daily quota. Pro and Business organizations can also receive watchlist alerts by webhook, described in the AsyncAPI contract.",
      "image": "https://gatiflow.io/favicon.svg",
      "humanURL": "https://gatiflow.io/api-docs",
      "baseURL": "https://api.gatiflow.io",
      "version": "2.3.0",
      "created": "2026-09-19",
      "modified": "2026-09-28",
      "tags": [
        "Market Intelligence",
        "Developer Signals",
        "Trends",
        "Hiring",
        "Open Source",
        "Research"
      ],
      "properties": [
        {
          "type": "OpenAPI",
          "name": "OpenAPI 3.1 specification",
          "description": "The published contract. Generated from the running routes and checked against them by the test suite, so it cannot drift from the API it describes.",
          "mediaType": "application/json",
          "url": "https://gatiflow.io/openapi.json"
        },
        {
          "type": "AsyncAPI",
          "name": "AsyncAPI 3.0 webhook contract",
          "description": "The intelligence:alert webhook GatiFlow sends, generated from the webhooks section of the OpenAPI contract.",
          "mediaType": "application/json",
          "url": "https://gatiflow.io/asyncapi.json"
        },
        {
          "type": "Webhooks",
          "name": "Webhooks",
          "description": "What GatiFlow sends, when it sends it, how to verify the signature and how retries work.",
          "url": "https://gatiflow.io/api-docs/webhooks"
        },
        {
          "type": "Examples",
          "name": "Code examples",
          "description": "curl, Python and JavaScript for every operation an API key, or no credential, can call.",
          "url": "https://gatiflow.io/api-docs/examples"
        },
        {
          "type": "Postman",
          "name": "Postman collection",
          "description": "One request per published operation, generated from the OpenAPI contract, with the API key wired as collection auth.",
          "mediaType": "application/json",
          "url": "https://gatiflow.io/postman_collection.json"
        },
        {
          "type": "Console",
          "name": "Interactive documentation",
          "description": "Swagger UI against the live API: authorize with an API key and call any published operation from the browser.",
          "url": "https://api.gatiflow.io/docs"
        },
        {
          "type": "GettingStarted",
          "name": "Quick start",
          "description": "Register, create a key, make the first call.",
          "url": "https://gatiflow.io/api-docs#quick-start"
        },
        {
          "type": "Deprecation",
          "name": "Versioning and deprecation policy",
          "description": "How changes ship, the notice before anything is removed, and the headers a deprecated operation sends.",
          "url": "https://gatiflow.io/api-docs#versioning"
        },
        {
          "type": "SupportLifetime",
          "name": "Support lifetime",
          "description": "How long a version is supported, security fixes included.",
          "url": "https://gatiflow.io/api-docs#versioning"
        },
        {
          "type": "SBOM",
          "name": "Software bill of materials",
          "description": "CycloneDX 1.6 list of the Python distributions installed in the running API service, built by the service itself.",
          "mediaType": "application/vnd.cyclonedx+json",
          "url": "https://api.gatiflow.io/sbom.cdx.json"
        },
        {
          "type": "JSONSchema",
          "name": "IntelligenceReport",
          "description": "JSON Schema 2020-12 of IntelligenceReport, generated from the OpenAPI contract.",
          "mediaType": "application/schema+json",
          "url": "https://gatiflow.io/schemas/IntelligenceReport.json"
        },
        {
          "type": "JSONSchema",
          "name": "ReportHistory",
          "description": "JSON Schema 2020-12 of ReportHistory, generated from the OpenAPI contract.",
          "mediaType": "application/schema+json",
          "url": "https://gatiflow.io/schemas/ReportHistory.json"
        },
        {
          "type": "JSONSchema",
          "name": "DailyInsights",
          "description": "JSON Schema 2020-12 of DailyInsights, generated from the OpenAPI contract.",
          "mediaType": "application/schema+json",
          "url": "https://gatiflow.io/schemas/DailyInsights.json"
        },
        {
          "type": "JSONSchema",
          "name": "DeepDivePreview",
          "description": "JSON Schema 2020-12 of DeepDivePreview, generated from the OpenAPI contract.",
          "mediaType": "application/schema+json",
          "url": "https://gatiflow.io/schemas/DeepDivePreview.json"
        },
        {
          "type": "JSONSchema",
          "name": "UsageLog",
          "description": "JSON Schema 2020-12 of UsageLog, generated from the OpenAPI contract.",
          "mediaType": "application/schema+json",
          "url": "https://gatiflow.io/schemas/UsageLog.json"
        },
        {
          "type": "JSONSchema",
          "name": "AlertEvent",
          "description": "JSON Schema 2020-12 of AlertEvent, generated from the OpenAPI contract.",
          "mediaType": "application/schema+json",
          "url": "https://gatiflow.io/schemas/AlertEvent.json"
        },
        {
          "type": "JSONSchema",
          "name": "ErrorResponse",
          "description": "JSON Schema 2020-12 of ErrorResponse, generated from the OpenAPI contract.",
          "mediaType": "application/schema+json",
          "url": "https://gatiflow.io/schemas/ErrorResponse.json"
        },
        {
          "type": "JSONSchema",
          "name": "StaleDataError",
          "description": "JSON Schema 2020-12 of StaleDataError, generated from the OpenAPI contract.",
          "mediaType": "application/schema+json",
          "url": "https://gatiflow.io/schemas/StaleDataError.json"
        },
        {
          "type": "Documentation",
          "name": "API documentation",
          "description": "Use cases, quick start, authentication, rate limits and the endpoint list.",
          "url": "https://gatiflow.io/api-docs"
        },
        {
          "type": "SignUp",
          "name": "Create an account",
          "description": "An account is required to issue an API key. Registration opens a 14-day Starter trial once the email address is verified.",
          "url": "https://gatiflow.io/register"
        },
        {
          "type": "Authentication",
          "name": "Authentication",
          "description": "API key with the gf_ prefix, sent in the X-API-Key header. The Daily Insights payload (GET /api/v1/public/weekly-report) is the exception: it takes the web-app session bearer, and an API key receives 401 there. The latest Deep Dive preview takes no credential.",
          "url": "https://gatiflow.io/api-docs"
        },
        {
          "type": "RateLimits",
          "name": "Rate limits and quotas",
          "description": "Per-minute rate limits and daily quotas vary by plan and apply per organization, shared by every API key it holds. The operations that meter them report the figures in X-RateLimit-* and X-DailyQuota-* response headers; the contract states which.",
          "url": "https://gatiflow.io/api-docs"
        },
        {
          "type": "Methodology",
          "name": "How the signals are produced",
          "description": "The sources, when a trend signal is published and when it is held back, how confidence is computed, and what the numbers do not mean.",
          "url": "https://gatiflow.io/methodology"
        },
        {
          "type": "ChangeLog",
          "name": "Product changelog",
          "url": "https://gatiflow.io/changelog"
        },
        {
          "type": "TermsOfService",
          "name": "Terms of Service",
          "url": "https://gatiflow.io/terms"
        },
        {
          "type": "PrivacyPolicy",
          "name": "Privacy Policy",
          "url": "https://gatiflow.io/privacy"
        },
        {
          "type": "AcceptableUsePolicy",
          "name": "Acceptable Use Policy",
          "url": "https://gatiflow.io/aup"
        },
        {
          "type": "Compliance",
          "name": "Compliance",
          "url": "https://gatiflow.io/compliance"
        },
        {
          "type": "Opt-Out",
          "name": "Remove a developer profile",
          "description": "A named developer can be excluded from every future report. The exclusion is applied inside the pipeline, not at render time.",
          "url": "https://gatiflow.io/opt-out"
        },
        {
          "type": "LLMs",
          "name": "llms.txt",
          "description": "Plain-language index of this API and the pages that explain it, for an unattended reader.",
          "mediaType": "text/markdown",
          "url": "https://gatiflow.io/llms.txt"
        }
      ],
      "contact": [
        {
          "fn": "GatiFlow Support",
          "email": "support@gatiflow.io",
          "url": "https://gatiflow.io/api-docs"
        }
      ]
    }
  ],
  "maintainers": [
    {
      "FN": "GatiFlow",
      "email": "support@gatiflow.io",
      "url": "https://gatiflow.io"
    }
  ],
  "common": [
    {
      "type": "DeveloperPortal",
      "name": "Developer portal",
      "url": "https://gatiflow.io/api-docs"
    },
    {
      "type": "Support",
      "name": "Support",
      "url": "mailto:support@gatiflow.io"
    },
    {
      "type": "Blog",
      "name": "Academy",
      "url": "https://gatiflow.io/academy"
    },
    {
      "type": "StatusPage",
      "name": "Status",
      "url": "https://stats.uptimerobot.com/9fR5IzLq0q"
    },
    {
      "type": "RoadMap",
      "name": "Roadmap",
      "url": "https://gatiflow.io/roadmap"
    },
    {
      "type": "Security",
      "name": "Responsible disclosure",
      "url": "https://gatiflow.io/aup#responsible-disclosure"
    },
    {
      "type": "VulnerabilityDisclosure",
      "name": "Vulnerability disclosure policy",
      "url": "https://gatiflow.io/aup#responsible-disclosure"
    },
    {
      "type": "SecurityTxt",
      "name": "security.txt",
      "url": "https://gatiflow.io/.well-known/security.txt"
    },
    {
      "type": "APICatalog",
      "name": "API catalog (RFC 9727)",
      "url": "https://gatiflow.io/.well-known/api-catalog"
    },
    {
      "type": "ContentSignal",
      "name": "Content signals in robots.txt",
      "url": "https://gatiflow.io/robots.txt"
    },
    {
      "type": "Subprocessors",
      "name": "Sub-processors",
      "url": "https://gatiflow.io/privacy#processors"
    },
    {
      "type": "DataResidency",
      "name": "Where data is stored",
      "url": "https://gatiflow.io/privacy#data-residency"
    },
    {
      "type": "IncidentNotification",
      "name": "Security incident notification",
      "url": "https://gatiflow.io/privacy#incident-notification"
    },
    {
      "type": "GlobalPrivacyControl",
      "name": "Global Privacy Control",
      "url": "https://gatiflow.io/privacy#global-privacy-control"
    },
    {
      "type": "TrainingDataSummary",
      "name": "Training data",
      "url": "https://gatiflow.io/compliance#training-data"
    },
    {
      "type": "AITransparency",
      "name": "AI content declaration",
      "url": "https://gatiflow.io/compliance"
    },
    {
      "type": "DataSubjectRequest",
      "name": "Remove a developer profile",
      "url": "https://gatiflow.io/opt-out"
    },
    {
      "type": "ExitAssistance",
      "name": "Leaving the Service",
      "url": "https://gatiflow.io/terms#effect-of-termination"
    }
  ],
  "x-provenance": {
    "method": "published",
    "publisher": "GatiFlow",
    "source": "https://gatiflow.io/apis.json"
  }
}
