# generated: '2026-08-13' # method: probed # source: https://newoldstamp.com/api/graphql (open GraphQL introspection; the backend for the app.newoldstamp.com dashboard) # note: Newoldstamp's own application GraphQL API, served from their primary domain. Undocumented / no public developer program, but introspection is anonymous-open. Schema is 41 queries, 71 mutations, 4 subscriptions covering signatures, departments, campaigns, segments, Google Workspace + Microsoft 365 deployment, and billing. schema { query: Query mutation: Mutation subscription: Subscription } enum InterviewClient { g_suite exchange gmail outlook other microsoft_365 } enum InterviewIndustry { marketing_and_sales real_estate e_commerce software_and_internet hr_and_recruiting_services non_profit education_and_culture financial_services government healthcare media_and_entertainment retail transportation_and_storage travel_recreation_and_leisure construction_and_architectural_design legal manufacturing_and_production events other } enum InterviewSignature { size_1_5 size_6_10 size_11_25 size_26_50 size_51_100 size_100_plus } enum Oauth { google microsoft } enum SignUpKind { default integration } enum SignaturesFor { myself company my_clients } input DeployVerifyInput { id: ID email: String } input IconInput { name: String! file: Upload! icon: String } input OauthInput { kind: Oauth! uid: String! } input SendToInstall { id: ID! email: String! } type Banner { bannerContentType: String bannerFileName: String bannerFileSize: Int bannerUpdatedAt: ISO8601DateTime createdAt: ISO8601DateTime createdBy: ID deletedAt: ISO8601DateTime deletedBy: Int department: Department id: ID! layoutId: ID layoutType: String signature: Signature styles: JSON updatedAt: ISO8601DateTime url: String } """ The connection type for Banner. """ type BannerConnection { """ A list of edges. """ edges: [BannerEdge] """ A list of nodes. """ nodes: [Banner] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type BannerEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Banner } type BannerPreset { bannerContentType: String bannerFileName: String bannerFileSize: Int bannerPresetCategoryId: ID bannerUpdatedAt: ISO8601DateTime createdAt: ISO8601DateTime! id: ID! position: Int sidebar: Int title: String updatedAt: ISO8601DateTime! url: String visible: Boolean! } type BannerPresetCategory { bannerPresets: [BannerPreset!] id: ID! position: Int! title: String! } type ButtonPreset { body: String id: ID! kind: String! position: Int title: String } type Campaign { banner: Banner companyId: ID! createdBy: ID! departments: [Department!] endDate: ISO8601DateTime! endDateS: BigInt! id: ID! name: String! signatures: [Signature!] startDate: ISO8601DateTime! startDateS: BigInt! status: String! updatedBy: ID url: String } type Company { activatedSignaturesCount: Int activatedUsersCount: Int appsumoPlanPaddleId: Int bonusSignatures: Int duration: Int featureAnalytics: Boolean paddleCheckoutId: String paddleNextBillDate: String paddleReceiptUrl: String paddleSubscriptionId: Int paddleSubscriptionStatus: String paddleUpdateUrl: String permissions: JSON permissionsKind: String plan: Plan signaturesCount: Int status: String! typeUser: String } type CompanyMember { departmentIds: [ID!] email: String! firstName: String id: ID! invitationAccepted: Boolean! lastName: String managingAllDepartments: Boolean! managingAllSegments: Boolean! managingBillingSettings: Boolean! managingIntegrations: Boolean! managingRoles: Boolean! managingSignatures: Boolean! owner: Boolean! segmentIds: [ID!] userId: ID! } type CompanyWithError { company: Company error: JSON } """ Autogenerated return type of CsvUpload. """ type CsvUploadPayload { signatures(after: String, before: String, first: Int, last: Int): SignatureConnection } """ Autogenerated return type of Delete. """ type DeletePayload { signatures(after: String, before: String, first: Int, last: Int): SignatureConnection } type Department { campaigns: [Campaign!] countUsers: Int deletedAt: ISO8601DateTime domains: String exchangeRules: [ExchangeRule!] id: ID! kind: String layout: Signature mappingFields: JSON number: Int officeMappingFields: JSON position: Int signatures: [Signature!] signaturesCount: Int slug: String title: String! token: String! totalCounter: Int } type Deploy { departmentId: ID! gsuiteIntegrationId: ID! id: ID! status: String! } """ The connection type for Deploy. """ type DeployConnection { """ A list of edges. """ edges: [DeployEdge] """ A list of nodes. """ nodes: [Deploy] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type DeployEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Deploy } type ExchangeDepartment { name: String! usersCount: Int } type ExchangeDetail { createdAt: ISO8601DateTime! data: JSON errorLog: String id: ID! status: String! } type ExchangeRule { id: ID! kind: String! name: String! segmentId: ID signature: Signature status: String! } type ExchangeUser { connectedAt: ISO8601DateTime exchangeDetailFailed: ExchangeDetail exchangeDetailSuccess: ExchangeDetail host: String! id: ID! kind: String! lastExchangeDetail: ExchangeDetail name: String! } type Integration { adminEmail: String! autoSynced: Boolean! companyId: ID! dataDomains: JSON dataUsers: JSON domain: String! errorMessage: String id: ID! status: String! syncUsersAt: ISO8601DateTime } type JobNotifier { id: ID! identifier: String key: String notified: Boolean! result: String status: String! trackable: Trackable trackableId: ID! trackableType: String! userId: ID! } type Mutation { changePassword(resetPasswordToken: String!, password: String!): User completeCampaign(id: ID!, status: String!): Campaign! connectGsuite(autoSynced: Boolean): Integration! copyDepartment(departmentId: ID!, title: String!): Department! copyMicrosoftTemplate(id: ID!): Signature! copySignature(signatureId: ID!): Signature! createAppsumoUser(code: String!): User createCampaign(name: String!, startDate: ISO8601DateTime!, endDate: ISO8601DateTime!, departmentIds: [ID!]!, url: String!, styles: String, banner: Upload!): Campaign! createCompanyMember(email: String!, firstName: String!, lastName: String!, owner: Boolean!, managingSignatures: Boolean!, managingBillingSettings: Boolean!, managingIntegrations: Boolean!, managingRoles: Boolean!, managingAllDepartments: Boolean!, managingAllSegments: Boolean!, departmentIds: [ID!], segmentIds: [ID!]): CompanyMember createDepartment(title: String!): Department! createFreeSignature(patternId: ID!, json: String!, template: ID!, photo: Upload, icons: [IconInput!], email: String!, companySize: String, paid: Boolean): Signature! createMicrosoftUser(kind: String, name: String, host: String!, password: String, appId: String): JobNotifier! createOffice(appTenantId: String!, appSecretId: String!, appId: String!, autoSynced: Boolean): JobNotifier! createOrder(paddlePlanId: Int!): Order! createSegment(name: String!, kind: String!, departmentNames: [String!]!, externalInternalEmails: Boolean, replyForwardEmails: Boolean): Segment! createSignature(id: ID, departmentId: ID, layoutId: ID, patternId: ID, exchangeUserId: ID, json: String!, template: ID, photo: Upload, banner: Upload, icons: [IconInput!], textButtons: [IconInput!], customButtons: [IconInput!], socialButtons: [IconInput!], iconButtons: [IconInput!]): Signature! deployGsuite(departmentId: ID!, data: [DeployVerifyInput!]!): String! deployMicrosoftRule(id: ID!, templateId: ID!): JobNotifier! deployOffice(departmentId: ID!, data: [DeployVerifyInput!]!): Office! destroyBanner(id: ID!): Department! destroyBrandingLine: User! destroyCampaign(id: ID!): Department! destroyCompanyMember(id: ID!): CompanyMember destroyDepartment(id: ID!): Department! destroyMicrosoftRule(id: ID!): JobNotifier! destroyMicrosoftTemplate(id: ID!): JobNotifier! destroyMicrosoftUser(kind: String): JobNotifier! destroyOwnerAccount(newAdminsIds: [ID!]): User destroySegment(id: ID!): JobNotifier! destroySignatures(departmentId: ID, signatureIds: [ID!]!): DeletePayload! disconnectGsuite: Integration! disconnectOffice: Office! generatePaymentLink(paddlePlanId: Int!): ResponseJson! importGsuite(departmentId: ID!, emails: [String!], orgUnits: [String!], mappingFields: String!): JobNotifier! importOffice(departmentId: ID!, emails: [String!], groups: [String!], mappingFields: String!): JobNotifier! interviewUser(firstName: String!, lastName: String!, interviewSignatures: String!, interviewIndustry: String, phone: String, interviewClients: String!): User! invite(email: String!, firstName: String!, lastName: String!): User inviteGsuiteAdmin(email: String!, firstName: String!, lastName: String!): User invitePasswordUpdate(invitationToken: String!, password: String!): UserAccessToken! refreshGsuite: JobNotifier! refreshMicrosoftUser(kind: String): JobNotifier! refreshOffice: JobNotifier! refreshToken(refreshToken: String!): UserAccessToken! renameMicrosoftTemplate(id: ID!, name: String!): Signature! resetPassword(email: String!): String reverseDeploySignatures(departmentId: ID, signatureIds: [ID!]!): ReverseDeployPayload! sendFreeEditorLink(email: String!): Response! sendMicrosoftTestEmail(signatureId: ID!, emailTo: String!, fullName: String!): Response! sentSignature(signatures: [SendToInstall!]!, inviteText: String, type: String): Response! setMasterSignature(departmentId: ID!, signatureId: ID!): [Signature!]! signIn(email: String!, password: String, oauth: OauthInput, newGoogleRecaptchaToken: String!): UserAccessToken! signUp(email: String!, password: String, firstName: String!, lastName: String!, signaturesFor: SignaturesFor!, jobTitle: String!, interviewSignatures: InterviewSignature!, interviewIndustry: InterviewIndustry!, phone: String!, interviewClients: [InterviewClient!]!, newGoogleRecaptchaToken: String!, termsOfUse: Boolean!, oauth: OauthInput): UserAccessToken! signUpAppSumo(email: String!, password: String!, appSumoCode: String!, newGoogleRecaptchaToken: String!, termsOfUse: Boolean!): UserAccessToken! updateCampaign(id: ID!, name: String, startDate: ISO8601DateTime!, endDate: ISO8601DateTime!, departmentIds: [ID!]!, url: String!, styles: String, banner: Upload): Campaign! updateCompanyCheckoutId(paddleCheckoutId: ID!): Company! updateCompanyMember(id: ID!, owner: Boolean!, managingSignatures: Boolean!, managingBillingSettings: Boolean!, managingIntegrations: Boolean!, managingRoles: Boolean!, managingAllDepartments: Boolean!, managingAllSegments: Boolean!, departmentIds: [ID!], segmentIds: [ID!]): CompanyMember updateDepartment(id: ID!, title: String!): Department! updateFreeSignature(id: ID!, checkoutId: ID!, paid: Boolean!): Signature! updateGsuite(autoSynced: Boolean!): Integration! updateMicrosoftDepartments(kind: String): Response! updateOffice(autoSynced: Boolean!): Office! updatePassword(currentPassword: String!, password: String!): User updatePositionDepartment(id: ID!, position: Int!): Department! updateSegment(id: ID!, name: String!, departmentNames: [String!]!, externalInternalEmails: Boolean, replyForwardEmails: Boolean): JobNotifier! """ Only use valid statuses: 0(not_sent), 1(sent), 2(installed) """ updateSignatureStatus(signatureId: ID!, status: Int!): Signature! updateSubscription(paddlePlanId: Int!, package: Boolean): Response! updateUser(email: String, firstName: String, lastName: String, phone: String, companyName: String, jobTitle: String, companyStatus: String): User uploadBanner(file: Upload!): Banner! uploadCsvSignatures(departmentId: ID!, file: Upload!): CsvUploadPayload! verifyGsuiteDeploy(departmentId: ID!, data: [DeployVerifyInput!]!): [SignatureForDeploy!]! verifyOfficeDeploy(data: [DeployVerifyInput!]!): JSON! } type Office { addinRequests: Int! autoSynced: Boolean! deletedAt: ISO8601DateTime errorMessage: String id: ID! status: String! syncUsersAt: ISO8601DateTime } type OfficeGroup { name: String! usersCount: Int! } type OfficeUser { email: String! groups: [String!]! name: String } type Order { duration: Int id: ID! plan: Plan state: Int } """ Information about pagination in a connection. """ type PageInfo { """ When paginating forwards, the cursor to continue. """ endCursor: String """ When paginating forwards, are there more items? """ hasNextPage: Boolean! """ When paginating backwards, are there more items? """ hasPreviousPage: Boolean! """ When paginating backwards, the cursor to continue. """ startCursor: String } type Partner { createdAt: ISO8601DateTime! description: String id: ID! instruction: String logoUrl: String position: String slug: String title: String updatedAt: ISO8601DateTime! url: String } type Plan { body: String custom: Boolean id: ID! kind: String paddleIdMonth: Int paddleIdQuarter: Int paddleIdYear: Int permissions: JSON planCategory: PlanCategory pricePerMonth: Float pricePerQuarter: Float pricePerYear: Float signatures: Int trialDays: Int! } type PlanCategory { id: ID! title: String } type Query { admins: [User!]! bannerPreset: [BannerPreset!]! bannerPresetCategory: [BannerPresetCategory!]! banners(after: String, before: String, first: Int, last: Int): BannerConnection! buttonPreset: [ButtonPreset!]! campaign(id: ID!): Campaign! campaigns(fromDate: ISO8601DateTime, toDate: ISO8601DateTime, timePeriodStart: ISO8601DateTime, timePeriodEnd: ISO8601DateTime): [Campaign!]! companyMembersList: [CompanyMember!]! department(id: ID!): Department! departments: [Department!]! freeTemplates: [Template!]! gsuiteDeploys(id: ID, after: String, before: String, first: Int, last: Int): DeployConnection! gsuiteDomains: ResponseJson gsuiteInfo: Integration gsuiteMappingFields(departmentId: ID!): ResponseJson gsuiteOrgUnits: ResponseJson gsuiteSignaturesForDeploy(departmentId: ID!): [SignatureForDeploy!]! gsuiteUsers(orgUnitPath: ID, search: ID): ResponseJson jobNotifiers: [JobNotifier!]! microsoftConnectionUser(kind: String): ExchangeUser microsoftDepartmentsFile(kind: String): [Department!]! microsoftDepartmentsList(kind: String): [Department!]! microsoftSignaturesForDeploy(departmentId: ID!): JSON! microsoftTemplatesList(kind: String): [Signature!]! microsoftUsersList(kind: String!): ResponseJson! officeGroups: [OfficeGroup!] officeMappingFields(departmentId: ID!): ResponseJson officeUsers(groupName: ID, search: ID): [OfficeUser!] officeUsersCount(emails: [String!], groups: [String!]): Int packagePlans: [Plan!]! partners(id: ID): [Partner!]! paymentInfo: ResponseJson! paymentLink(paddlePlanId: Int!): ResponseJson! segments: [Segment!]! signUpValidation(email: String!, kind: SignUpKind!): Boolean! signature(id: ID, uuid: ID): Signature! signatures(departmentId: ID, status: String, filter: String, after: String, before: String, first: Int, last: Int): SignatureConnection! subscriptionPlans: [Plan!]! subscriptionPreview(paddlePlanId: Int!, package: Boolean): ResponseJson! templates: [Template!]! user: User! } type Response { message: String status: String } type ResponseJson { response: JSON } """ Autogenerated return type of ReverseDeploy. """ type ReverseDeployPayload { signatures(after: String, before: String, first: Int, last: Int): SignatureConnection } type Segment { companyId: ID! exchangeDepartments: [ExchangeDepartment!] exchangeRules: [ExchangeRule!] externalInternalEmails: Boolean! id: ID! kind: String! name: String! replyForwardEmails: Boolean! } type Signature { banner: Banner bannerS: String bodyJson: JSON createdAt: ISO8601DateTime! createdAtS: BigInt! dataJson: JSON deletedAt: ISO8601DateTime department: Department departmentId: ID email: String exchangeRule: ExchangeRule id: ID! installedAt: ISO8601DateTime installedAtS: BigInt isLayout: Boolean isLiquid: Boolean layout: Signature layoutId: ID liquidJson: JSON name: String patternId: ID patternPosition: Int! photoS: String render: String! sentAt: ISO8601DateTime sentAtS: BigInt status: Int template: Template templateId: ID updatedAt: ISO8601DateTime updatedAtS: BigInt uuid: String! } """ The connection type for Signature. """ type SignatureConnection { """ A list of edges. """ edges: [SignatureEdge] """ A list of nodes. """ nodes: [Signature] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type SignatureEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Signature } type SignatureForDeploy { email: String error: String id: ID! name: String } type Subscription { jobNotifier: JobNotifier! updatedCompanyPayment(paddlePlanId: Int!): CompanyWithError! updatedMicrosoftStatus(kind: String!): Response updatedSignatureStatus(departmentId: ID!): Signature } type Template { body: String createdAt: ISO8601DateTime iconKind: String id: ID! liquid: String number: Int options: String position: Int shared: Boolean sidebar: Int signaturePatterns: [Signature!] signaturesCount: Int templateCategory: TemplateCategory templateCategoryTitle: String title: String updatedAt: ISO8601DateTime user: User } type TemplateCategory { id: ID! position: Int title: String } type User { activatedSignaturesCount: Int activatedUsersCount: Int appsumoPlanPaddleId: Int bonusSignatures: Int campaignsCount: Int companyBeta: Boolean companyId: ID! companyName: String companyStatus: String! createdAtTimestamp: Int! departments: [Department!] departmentsCount: Int duration: Int email: String! featureAnalytics: Boolean firstName: String gsuiteInfo: Integration hash: String id: ID! interviewClients: String interviewIndustry: String interviewSignatures: String invitationAcceptedAt: ISO8601DateTime invitedById: ID jobTitle: String lastName: String membersCount: Int newEditorEnabled: Boolean officeInfo: Office paddleCheckoutId: String paddleNextBillDate: String paddleReceiptUrl: String paddleSubscriptionId: Int paddleSubscriptionStatus: String paddleUpdateUrl: String permissions: JSON permissionsKind: String phone: String plan: Plan role: String! segmentsCount: Int signaturesCount: Int signaturesFor: String typeUser: String } type UserAccessToken { accessToken: String! createdAt: Int! expiresIn: Int! refreshToken: String! } """ Represents non-fractional signed whole numeric values. Since the value may exceed the size of a 32-bit integer, it's encoded as a string. """ scalar BigInt """ An ISO 8601-encoded datetime """ scalar ISO8601DateTime """ Represents untyped JSON """ scalar JSON scalar Upload union Trackable = Company | ExchangeRule | ExchangeUser | Integration | Office | Response | Segment | Signature | Template