# State API - OpenAPI Specification Base URL: /api Version: 1.0.0 ## Authentication API Key in header: x-api-key ## Short links ### GET /links Get short links Parameters: - domain_id (optional): number - - search (optional): string - - order (optional): string - - folder_id (optional): number - - tag_id (optional): number - - all (optional): boolean - - page (optional): number - - limit (optional): number - Responses: - 200: Links response - 403: Access denied - 404: Link not found ### POST /links/import Import links Request Body: application/json Responses: - 200: Links response - 400: Failed to import links ### POST /links/folder Move links to a folder Request Body: application/json Responses: - 200: Links response - 400: Failed to move links ### POST /links/tags Assign tags to links Request Body: application/json Responses: - 200: Links response - 400: Failed to assign tags to links ## Short link ### POST /link Create short link Request Body: application/json Responses: - 200: Link response - 400: Cannot create a link - 403: Access denied - 412: Validation failed - 417: Wrong URL or domain ### GET /link Get short link by domain and slug Parameters: - undefined (optional): undefined - - undefined (optional): undefined - - undefined (optional): undefined - Responses: - 200: Link response - 403: Access denied - 404: Link not found ### GET /link/{link_id} Get short link by ID Parameters: - undefined (optional): undefined - - undefined (optional): undefined - Responses: - 200: Link response - 403: Access denied - 404: Link not found ### PUT /link/{link_id} Update short link Parameters: - undefined (optional): undefined - Request Body: application/json Responses: - 200: Link response - 400: Cannot create a link - 403: Access denied - 404: Link not found - 412: Validation failed - 417: Wrong URL or domain ### DELETE /link/{link_id} Delete short link Parameters: - undefined (optional): undefined - Responses: - 201: Success - 403: Access denied - 404: Link not found ### PUT /link/{link_id}/mobile Update mobile links (iOS, Android) Parameters: - undefined (optional): undefined - Request Body: application/json Responses: - 200: Link response - 403: Access denied - 404: Link not found ### PUT /link/{link_id}/ab Update A/B links Parameters: - undefined (optional): undefined - Request Body: application/json Responses: - 200: Link response - 403: Access denied - 404: Link not found ### PUT /link/{link_id}/geo Update geo links Parameters: - undefined (optional): undefined - Request Body: application/json Responses: - 200: Link response - 403: Access denied - 404: Link not found ## Folders ### GET /folders Get folders Parameters: - search (optional): string - - page (optional): number - - limit (optional): number - Responses: - 200: Folders list - 403: Access denied - 404: Folders not found ### POST /folders Add folder Request Body: application/json Responses: - 200: Folder - 403: Access denied ### PUT /folders/{folder_id} Save folder Parameters: - undefined (optional): undefined - Request Body: application/json Responses: - 200: Folder - 403: Access denied - 404: Folder not found ### DELETE /folders/{folder_id} Delete folder Parameters: - undefined (optional): undefined - Responses: - 201: Success - 403: Access denied - 404: Folder not found ## Tags ### GET /tags Get tags Parameters: - search (optional): string - - page (optional): number - - limit (optional): number - Responses: - 200: Tags list - 403: Access denied - 404: Tags not found ### POST /tags Add tag Request Body: application/json Responses: - 200: Tag - 403: Access denied ### PUT /tags/{tag_id} Save tag Parameters: - undefined (optional): undefined - Request Body: application/json Responses: - 200: Tag - 403: Access denied - 404: Tag not found ### DELETE /tags/{tag_id} Delete tag Parameters: - undefined (optional): undefined - Responses: - 201: Success - 403: Access denied - 404: Tag not found ## Domains ### GET /domains/available Get available domains Parameters: - search (optional): string - Responses: - 200: Domains list - 403: Access denied - 404: Domains not found ## Bio ### GET /team/bio Get bio Responses: - 200: Bio summary ### GET /team/bio/info Get bio info Responses: - 200: Bio info ### POST /team/bio/info Update bio info Request Body: application/json Responses: - 200: Bio info ### GET /team/bio/links Get bio links Responses: - 200: Bio links ### POST /team/bio/links Add bio link Request Body: application/json Responses: - 200: Bio link ### PATCH /team/bio/links Change bio links order Request Body: application/json Responses: - 200: Bio link ### PUT /team/bio/links/{link_id} Update bio link Parameters: - undefined (optional): undefined - Request Body: application/json Responses: - 200: Bio link ### DELETE /team/bio/links/{link_id} Delete bio link Parameters: - undefined (optional): undefined - Responses: - 201: Success ## Analytics ### GET /analytics/summary Get analytics summary Responses: - 200: Summary ### GET /analytics/stream Get clicks raw values Parameters: - link_id (optional): string - - domain_id (optional): number - - search (optional): string - - undefined (optional): undefined - - country (optional): string - - city (optional): string - - region (optional): string - - continent (optional): string - - browser (optional): string - - os (optional): string - - device (optional): string - - folder_id (optional): number - - tag_id (optional): number - - page (optional): number - - undefined (optional): undefined - Responses: - 200: Clicks details ### GET /analytics/values Get analytics values for a field Parameters: - undefined (optional): undefined - - link_id (optional): string - - search (optional): string - - undefined (optional): undefined - - page (optional): number - - undefined (optional): undefined - Responses: - 200: Requested values ### GET /analytics/clicks Get clicks by periods Parameters: - link_id (optional): string - - domain_id (optional): number - - search (optional): string - - undefined (optional): undefined - - country (optional): string - - city (optional): string - - region (optional): string - - continent (optional): string - - browser (optional): string - - os (optional): string - - device (optional): string - - folder_id (optional): number - - tag_id (optional): number - - page (optional): number - - undefined (optional): undefined - Responses: - 200: Clicks by period ### GET /analytics/links Get top short links Parameters: - link_id (optional): string - - domain_id (optional): number - - search (optional): string - - undefined (optional): undefined - - country (optional): string - - city (optional): string - - region (optional): string - - continent (optional): string - - browser (optional): string - - os (optional): string - - device (optional): string - - folder_id (optional): number - - tag_id (optional): number - - page (optional): number - - undefined (optional): undefined - Responses: - 200: Top short links ### GET /analytics/geo Get geo information by ip Parameters: - ip (required): string - Responses: - 200: Geo info ### GET /analytics/geo/countries Get top countries Parameters: - link_id (optional): string - - domain_id (optional): number - - search (optional): string - - undefined (optional): undefined - - country (optional): string - - city (optional): string - - region (optional): string - - continent (optional): string - - browser (optional): string - - os (optional): string - - device (optional): string - - folder_id (optional): number - - tag_id (optional): number - - page (optional): number - - undefined (optional): undefined - Responses: - 200: Top countries ### GET /analytics/geo/regions Get top regions Parameters: - link_id (optional): string - - domain_id (optional): number - - search (optional): string - - undefined (optional): undefined - - country (optional): string - - city (optional): string - - region (optional): string - - continent (optional): string - - browser (optional): string - - os (optional): string - - device (optional): string - - folder_id (optional): number - - tag_id (optional): number - - page (optional): number - - undefined (optional): undefined - Responses: - 200: Top regions ### GET /analytics/geo/cities Get top cities Parameters: - link_id (optional): string - - domain_id (optional): number - - search (optional): string - - undefined (optional): undefined - - country (optional): string - - city (optional): string - - region (optional): string - - continent (optional): string - - browser (optional): string - - os (optional): string - - device (optional): string - - folder_id (optional): number - - tag_id (optional): number - - page (optional): number - - undefined (optional): undefined - Responses: - 200: Top cities ### GET /analytics/groups Get data grouped by field(s) Parameters: - link_id (optional): string - - domain_id (optional): number - - search (optional): string - - undefined (optional): undefined - - country (optional): string - - city (optional): string - - region (optional): string - - continent (optional): string - - browser (optional): string - - os (optional): string - - device (optional): string - - folder_id (optional): number - - tag_id (optional): number - - page (optional): number - - undefined (optional): undefined - - groups (required): string - Responses: - 200: Data grouped by field(s) ## General ### GET /version Get version Responses: - 200: Version info