.png)
Granicus Integration Guide
Integrate Granicus products such as GovDelivery and Legistar with enterprise systems through product-specific REST APIs, scheduled workflows, and selected callbacks or file interfaces.
Granicus integration options at a glance
Granicus integration capabilities vary by product and tenant, with REST APIs serving as the principal integration mechanism. The Legistar Web API can expose meetings, matters, bodies, people, and related document references, while GovDelivery APIs may support subscribers, topics, and messages subject to product access. Selected products may provide callbacks, webhook-style notifications, bulk operations, imports, exports, or document URLs, but these capabilities should be confirmed for the specific account. Authentication may use API credentials, API keys, HTTP authentication, or product-specific options. Martini can consume these APIs, schedule polling workflows, receive documented callbacks, transform JSON, apply business rules, and deliver synchronized data to enterprise applications.
Common Granicus integration patterns
Common Granicus data objects used in integrations
Authentication and security considerations
Product-specific authentication
Granicus authentication varies across GovDelivery, Legistar, and other products. Confirm whether the target API requires credentials, an API key, HTTP authentication, tenant configuration, or another documented method.
Credential protection
Martini should store Granicus credentials and keys in secrets or environment configuration rather than embedding them in workflows. Access should be limited to the required tenant, jurisdiction, resources, and operations.
Data protection
- Use TLS-protected endpoints and controlled integration environments.
- Apply least-privilege permissions to integration accounts.
- Limit logs containing subscriber, constituent, or document data.
- Retain source responses and files only according to operational and privacy requirements.
Operational considerations for Granicus integrations
Pagination and incremental retrieval
Follow documented pagination or cursor parameters and checkpoint progress. Use modification timestamps, publication dates, stable identifiers, or a bounded lookback window where supported.
Rate limits and retries
Confirm limits for the applicable product. Use bounded concurrency, exponential backoff, HTTP 429 handling, and separate treatment for transient failures and permanent authorization or validation errors.
Idempotency and publication state
Upsert using stable Granicus identifiers rather than names or email addresses alone. Distinguish draft, published, canceled, postponed, and archived states before distributing civic records or notifications.
Documents and schema changes
Validate document authentication, content type, size, URL lifetime, and publication status. Use defensive mappings for optional fields, enumerations, product extensions, pagination changes, and API-version updates.
Why use Martini instead of scripts or point-to-point integrations?
Orchestrated integration logic
Scripts often combine authentication, pagination, mapping, retries, and business rules in code that is difficult to govern. Martini organizes these concerns in reusable workflows and APIs while retaining the option for custom logic when required.
Reliable synchronization
Martini can combine scheduled polling or documented callbacks with checkpoints, idempotent upserts, validation, retry policies, and operational logging. This is useful when Granicus capabilities differ by product and tenant.
Reusable enterprise services
Martini can expose controlled REST APIs for downstream applications, normalize Granicus data once, and route the resulting model to multiple targets such as portals, document repositories, reporting layers, and communication systems.